SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。 清屏:cls
MySQL基础 启动MySQL net start mysql 关闭MySQL net stop mysql 登录 mysql -uroot -p 退出 mysql>exit; mysql>quit; mysql>\p; 显示当前服务器版本 SELECT VERSION(); 显示当前时间 SELECT NOW(); 显示当前用户 SELECT USER(); MySQL默认的端口号是:3306 MySQL超级用户是:root 创建数据库:CREATE DATABASE 修改数据库:ALTER DATABASE 删除数据库:DROP DATABASE 数据类型 整型:TINYINT SMALLINT MEDIUMINT INT BIGINT 浮点型: FLOAT[(M,D)] DOUBLE[(M,D)] M为数字总位数,D为小数点后面的位数 字符型:VERCHAR(M) 数据表 查看有什么数据库:SHOW DATABASES; 打开数据库:USE 数据库名称 查看当前数据库:SELECT DATABASES; 创建数据表:CREATE TABLE[IF NOT EXISTS]table_name( ageTINYINT UNSGINED(无符号位), ...... ) 查看数据表列表:SHOW TABLES[FORM db_name];使用form可以查看别的数据库中的表 查看数据表结构:SHOW COLUMNS FORM tbl_name; 插入记录;INSERT [INTO] tbl_name[(coi_name,...)] VALUES(VAL,...); 查找记录:SELECT expr,...FORM tbl_name(WHERE .....); 空值与非空 CREATE TABLE[IF NOT EXISTS]table_name( age1 TINYINT UNSGINED(无符号位) NOT NULL, age2 TINYINT UNSGINED(无符号位) NULL,//默认是可以为空 ...... ) 自动编号AUTO_INCREMENT 1自动编号,且必须与主键组合使用 2默认情况下,起始值为1,增量为1 主键PRIMARY KEY 1每张表只能有一个主键 主键保证记录的唯一性 主键自动为NOT NULL CREATE TABLE[IF NOT EXISTS]table_name( age1 TINYINT UNSGINED(无符号位) PRIMARY KEY, ...... ) 唯一约束UNIQUE KEY 默认约束:DEFAULT 更新记录UPDATE 语法:UPDATE tb_name SET age=age+10 WHERE name="chaihuo"; 删除记录FELETE 语法:DELETE FORM tb_name WHERE name="chaihuo"; 查询结果分组GROUP BY 语法:SELECT sex FORM users BY sex; HCAING分组条件 语法:SELECT sex,age FORM users BY sex HAVING age>35; 主要:此时HAVING后面只有两种情况1)聚合函数2)在select后面 对查询结果进行排序ORDER BY 语法:SELECT * FORM users ORDER BY id DESC; 运算符和函数 字符运算符 CONCAT()字符连接 CONCAT_WS()使用指定的分隔符进行字符连接 FORMAT()数字格式化 LOWER()UPPER()转换成小/大写字母 LEFT() RIGHT()获取左/右侧字符 LENGTH()获取字符串长度 SUBSTRING()字符串截取 [NOT] LIKE 模式匹配 REPLACE()字符串替换 数值运算符与函数 CEIL() 进一取整 DIV 整数除法 FLOOR()舍一取整 MOD 取余数 POWER() 幂运算 ROUND()四舍五入 比较运算符与函数 [NOT] BETWEEN...AND... [NOT]IN() IS[NOT]NULL 信息函数 CONNECTION_ID() 连接id DATEBASE()当前数据库 LAST_INSERT_ID()最后插入记录的Id号 USER()当前用户 VERSON()版本信息 聚合函数 AVG()平均值 COUNT()计数 MAX() MIN() SUM() 加密函数 MD5()信息摘要算法 PASSWORD()密码算法 子查询和连接 将查询结果写入数据表 INSERT[INTO] tbl_name[(col_name,...)] SELECT... 例子:INSERT tdb_goods(cate_name) SELECT good_cake FORM table GROUP BY good_cake; 多表更新 UPDATE table1 INNER JOIN table2 ON table1_name=table2_name SET table1_id=table2_di; CREATE...SELECT 创建数据表同时将查询结果写入到数据表 CREATE TABLE table_name [(create_definine)] select_statement 例:CREATE TABLE table1( id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20) NOT NULL) SELECT SELECT good_cake FORM table GROUP BY good_cake; ) 存储引擎 通过修改MySQL配置文件实现 1)-ddfault-storage-engine=engine 2)通过创建数据表命令实现 CREATE TABLE[IF NOT EXISTS]table_name( age1 TINYINT UNSGINED(无符号位) NOT NULL, age2 TINYINT UNSGINED(无符号位) NULL,//默认是可以为空 ...... )ENGINE=engine; 通过修改数据表命令实现 -ALTER TABLE table_name ENGINE[=]engine_name; 存储引擎 MyISAM:存储现在可达256TB,支持索引。表级锁定,数据压缩 InnoDB:存储限制为64TB,支持事务和索引。锁颗粒为行锁 以上就是MySQL中的基础知识的详细内容,更多请关注php中文网其它相关文章!
学习教程快速掌握从入门到精通的SQL知识。
|