创建数据库 CREATE {DATABASE|SCHEMA} db_name; 检测数据库名称是否存在,不存在则创建 CREATE DATABASE [IF NOT EXISTS] db_name; 在创建数据库的同时指定编码方式 CREATE DATABASE [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset; 注意 数据库名称最好有意义 名称不要包含特殊字符或者是MySQL关键字 查看当前服务器下全部数据库 SHOW DATABASES|SCHEMAS; 查看指定数据库的详细信息 SHOW CREATE DATABASE db_name; 修改指定数据库的编码方式 ALTER DATABASE db_name [DEFAULT] CHARACTER SET [=] charset; 打开指定数据库 USE db_name; 得到当前打开的数据库 SELECT DATABASE()|SCHEMA(); 删除指定的数据库 DROP DATABASE db_name; 如果数据库存在则删除 DROP DATABASE [IF EXISTS] db_name;
ORDER BY 排序 ORDER BY 字段名称 ASC|DESC LIMIT 限制结果集显示条数 LIMIT 值 显示结果集的前几条记录 LIMIT offset,row_count 从offset开始,显示几条记录,offset从0开始
多表查询
笛卡尔积的形式
内连接的形式 查询两个表中符合连接条件的记录 SELECT 字段名称,... FROM tbl_name1 INNER JOIN tbl_name2 ON 连接条件
外连接的形式 左外连接 SELECT 字段名称,... FROM tbl_name1 LEFT [OUTER] JOIN tbl_name2 ON 条件; 先显示左表中的全部记录,再去右表中查询复合条件的记录,不符合的以NULL代替 右外连接 SELECT 字段名称,... FROM tbl_name1 RIGHT [OUTER] JOIN tbl_name2 ON 条件; 先显示右表中的全部记录,再去左表中查询复合条件的记录,不符合的以NULL代替
外键约束的参照操作 CASCADE 从附表删除或更新,子表也跟着删除或者更新,级联的操作 SET NULL 从附表删除或者更新记录,并设置子表的外键列为NULL。 NO ACTION | RESTRICT 拒绝对父表做更新或者删除操作 动态添加外键 动态添加外键 ALTER TABLE tbl_name [CONSTRAINT 外键名称] ADD FOREIGN KEY(外键字段) REFERENCES 主表(主键字段); 动态添加外键之前表中的记录一定合法的记录,没有脏值,否则外键添加不成功 动态删除外键 ALTER TABLE tbl_name DROP FOREIGN KEY fk_name;
特殊形式的查询 子查询 SELECT 字段名称 FROM tbl_name WHERE col_name=(SELECT col_name FROM tbl_name) 内层语句查询的结果可以做为外层语句查询的条件 由IN引发的子查询 由比较运算符引出子查询 由EXISTS引发的子查询 ANY SOME ALL
联合查询 UNION SELECT 字段名称,... FROM tbl_name1 UNION SELECT 字段名称... FROM tbl_name2; UNION ALL SELECT 字段名称,... FROM tbl_name1 UNION ALL SELECT 字段名称... FROM tbl_name2; UNION ALL 是简单的合并,UNION会去掉表中重复记录