mysql新手入门随笔3

时间:2021-01-13 11:17:18

#求最高工资的员工信息

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; 表示对snamemark两列数据都相同时 才会去重

#统计不同姓名的学生人数

SELECT count(DISTINCT sname) FROM student;

 

34SELECT查询语句的语法结构和执行顺序

5SELECT 7DISTINCT 6)聚合函数

1FROM 表名

2WHERE 条件语句

3GROUP BY 分组语句

4HAVING 分组条件语句

8ORDER BY 排序语句

9LIMIT 限制语句

 

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;