#求最高工资的员工信息
SELECT * FROM emp WHERE sal = (SELECT max(sal) FROM emp);
#删除工资最低的员工信息
DELETE FROM emp WHERE sal = (SELECT e.s FROM (SELECT min(sal) s FROM emp) e);
28、分组语句:GROUP BY colname1,colname2 ASC(默认升序)/DESC(降序)
例如:SELECT sal FROM emp GROUP BY sal DESC;
#查看每一个职位的最高工资
SELECT job,max(sal) FROM emp GROUP BY job;
29、分组条件语句:HAVING,是对分组之后的条件限制,且HAVING里可以使用聚合函数,HAVING后出现的列名(可以使用别名)必须要在SELECT语句中出现,但是WHERE语句不能使用别名
#查看最高工资超过10000的职位
SELECT job,max(sal) '最高工资' FROM emp GROUP BY job HAVING 最高工资 > 10000;
Day3
30、事务(transaction):可以一条SQL语句或一组SQL语句
事务的提交:commit;
INSERT,UPDATE,DELETE语句都需要提交事务(COMMIT;),事务中的SQL语句才会生效
查看当前数据库是否设置自动提交事务
SHOW variables LIKE 'autocommit';
关闭事务自动提交:SET autocommit = OFF;
事务ACID特性
Atomicity(原子性),Consistency(一致性),Isolation(隔离性),Durability(持久性)
31、排序语句:ORDER BY colname1,colname2 ASC(默认升序)/DESC(降序)
例如:SELECT * FROM student ORDER BY mark DESC;
32、限制语句:LIMIT
例如:SELECT * FROM student ORDER BY mark DESC LIMIT 5;
其中LIMIT 5:表示返回前5条(包括第五条)数据
例如:SELECT * FROM student LIMIT 2,5;
其中LIMIT 2,5:表示从第3行(包括第三行)开始,往后查询5条记录
33、去重语句:DISTINCT 必须放在SELECT语句后的第一个
例如:SELECT DISTINCT sname FROM student; 表示对sname列的值进行去重
例如:SELECT DISTINCT sname,mark FROM student; 表示对sname和mark两列数据都相同时 才会去重
#统计不同姓名的学生人数
SELECT count(DISTINCT sname) FROM student;
34、SELECT查询语句的语法结构和执行顺序
(5)SELECT (7)DISTINCT (6)聚合函数
(1)FROM 表名
(2)WHERE 条件语句
(3)GROUP BY 分组语句
(4)HAVING 分组条件语句
(8)ORDER BY 排序语句
(9)LIMIT 限制语句
35、新增列
新增一列:ALTER TABLE tbname ADD COLUMN colname 类型 约束条件;
新增多列:ALTER TABLE tbname ADD COLUMN (colname1 类型 约束条件, colname1 类型 约
束条件,…); 默认加在列尾
新增列在首列:ALTER TABLE tbname ADD COLUMN colname 类型 约束条件 FIRST;
新增列在某列之后:ALTER TABLE tbname ADD COLUMN colname1 类型 约束条件 AFTER
colname2;
36、删除列
ALTER TABLE tbname DROP COLUMN colname;
37、修改列类型
ALTER TABLE tbname MODIFY COLUMN colname 新类型;
38、修改列名称
ALTER TABLE tbname CHANGE COLUMN 旧名称 新名称 原类型 原约束;
39、修改表名称
ALTER TABLE oldtbname1 RENAME newtbname2;
RENAME TABLE oldtbname1 TO newtbname2;