MySql高级查询
聚合函数
时间函数
字符串函数
数学函数
修改表名
ALTER TABLE 旧表名 RENAME[TO] 新表名;
添加字段
ALTER TABLE ADD 字段名 数据类型 属性;
删除字段
ALTER TABLE 表名 DROP 字段名;
修改字段
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 数据类型 属性;
添加主键
ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY 表名 (主键字段);
添加外键
ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY(外键字段) REFERENCES 关联表名(关联字段);
插入单条数据
INSERT INTO 表名 (表里的字段名) VALUES (值列表);
注意:VALUES里的值要和前面括号里的字段数量一致。
插入多条数据记录
INSERT INTO 表名(表里的字段名) VALUES(值列表1),(值列表2),…(值列表n);
将旧表的值插入到新表
1.需要提前创建新表
INSERT INTO 新表 (字段1,字段2…)
SELECT 字段1,字段2…
FROM 原表;
注意:新表中的字段的属性和数据类型必须要和新表中的字段一致
2.不需要提前创建
CREATE TABLE 新表(SELECT 字段1,字段2…FROM 原表);
子查询
SELECT … FROM 表1 WHERE 字段1 比较运算符(子查询);
子查询:一个查询语句嵌套在另一个查询语句中,子查询语句只能返回一个列值。
子查询常用操作符:
any(some):查询结果的任意一个值
all:查询结果的所有值
in:检索的值在查询返回结果中
exists:查询的结果不为null
注意:一般在子查询中,程序先运行在嵌套在最内层的语句,再运行外层。因此在写子查询语句时,可以先测试下内层的子查询语句是否输出了想要的内容,再一层层往外测试,增加子查询正确率。否则多层的嵌套使语句可读性很低。