MySQL高级查询语言
使用DDL语句修改表?
常用修改语法:
#修改表名:ALTER TABLE 旧表明 RENAME [TO] 新表明; TO:可选项
#添加字段:ALTER TABLE 表名 ADD 字段名 数据类型 [属性]; 属性:可选项
#修改字段:ALTER TABLE 表名 CHANGE 原字段名 新字段名 数据类型 [属性];
#删除字段:ALTER TABLE 表名 DROP 字段名;
示例:
添加主键:
ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY 表名(主键字段)
添加外键:
ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY (外键字段)REFERENCES 关联表名(关联字段)
DLL语句:
插入单条数据记录:
INSERT INTO 表名 [(字段名列表)] VALUSE (值列表);
注意:字段名是可选的。如果省略则依此插入所有字段
多个列表和多个值之间使用逗号分隔值列表和字段名列表一一对应
如插入的是表中部分数据,字段名列表必填:
插入多条数据记录:
INSERT INTO 新表 (字段名列表)VALUES (值列表1),(值列表2);注意:为避免表结构发生变化引发的错误,建议插入数据时写明具体字段名;
将查询结果插入新表:
(1)新表必须存在:
(2)新表可以不存在:
(3)更新数据记录?
(4)删除数据记录?
经验:TRUNCATE 语句删除后将重置自增列,表结构及其字段约束,索引保持不变,执行速度比DELETE语句快
DQL语句:
LIMIT 子句和常用函数?
语法:
LIMIT子句:
MySQL查询语句中使用LIMIT子句限制结果集
注意位置偏移量从0开始
示例:
常用函数--聚合函数?
常用函数--字符串函数?
常用函数--时间日期函数?
常用函数--数学函数?
简单子查询?
查询比李斯文小的学生
子查询是一个嵌套在 SELECT INSERT UPDATE或 DELETE 语句或其他子查询中的查询
子查询在WHERE 语句中的一般用法
SELECT .....FROM 表1 WHERE 字段1 比较运算符 (子查询)
注意:
先执行子查询,返回所有来自子查询的结果
在执行外围的父查询,返回查询的最终结果
将子查询和比较运算符联合使用,必须保证子查询返回的值不能多于一个
示例:
IN子查询?
比较运算符后面的子查询只能返回单个数值
IN子查询可跟随返回多条记录的子查询
其中示例: