一、数据初始化和select语法 insert into T_Employees(number,name,age,salary) VALUES('DEC001','TOM',25,8300); INSERT INTO T_Employees(number,name,age,salary) VALUES('DEC002','jerry',28,9300.80); INSERT INTO T_Employees(number,name,age,salary)VALUES('SALES001','John',23,5000); INSERT INTO T_Employees(number,name,age,salary)VALUES('SALES002','kerry',28,6200); INSERT INTO T_Employees(number,name,age,salary)VALUES('SALES003','stone',22,1200); INSERT INTO T_Employees(number,name,age,salary)VALUES('hr001','jane',23,2200.88); INSERT INTO T_Employees(number,name,age,salary)VALUES('hr001','tina',25,5200.36); INSERT INTO T_Employees(number,name,age,salary)VALUES('it001','smith',28,3900); INSERT INTO T_Employees(number,age,salary)VALUES('it002',27,2800); 二、select语法 1、select * from T_Employees 2、只检索需要的列:select number from T_Employees、select name,age from T_Employees 3、列别名:select number as 编号,name as 姓名,age as age111 from T_Employees 4、计算列:select number as 编号,name as 姓名,age as age111,age+10 十年后年龄,1+1,now() from T_Employees 5、使用where:select name from T_Employees where salary<5000. 6、还可以检索不与任何表关联的数据:select 1+1;select now();

三、聚合函数 (无关大小写) 1、sql聚合函数:max,min,avg(平均值),sum、count(数量) 2、select MAX(salary) from T_Employees where age>25 3、最低工资和最高工资:select MIN(Salary),MAX(salary) from T_Employees 4、大于25岁的员工人数:select count(*)from T_Employees where age>25 5、全体员工工资总和和平均工资:select sum(salary),avg(salary)from T_Employees

四、order by 1、order by子句位于select语句的末尾,它允许指定按照一个列or多个列进行排序,还可以指定排序方式是升序(asc)还是降序(desc) 2、按照年龄升序排序所有员工信息的列表:select * from T_Employees order by age desc,salary asc 3、按年龄从大到小排序,年龄一样则按照工资从大到小select * from T_Employees order by age desc,salary desc 4、oder by子句要放在where子句后,select * from T_Employees where age>23 order by age desc,salary desc

五、like模糊匹配 1、单字符匹配的通配符尾半角下划线“_”,匹配单个出现的字符。select * from T_Employees where name like'_erry' 2、多字符“%”,它匹配任意次数(零or多个)。select * from T_Employees where name like'%e%' 3、like性能差,容易全表扫描。

六、null 1、数据库中,一个列没有指定值,那么值就是null,数据库中的null表示“不知道”,而不是表示没有,因为select null+1就是null 2、select * from T_Employees where name=null; select * from T_Employees where name!=null;都没有任何址返回,因为数据库也“不知道” 3、提问:T_Employees表中name列的值是null,查询结果是什么?select name+‘a’ from T_Employees 答案:null,null和任何的东西做任何的运算都是null 4、sql中使用is null,is not null来进行null判断 select * from T_Employees where name is null select * from T_Employees where name is not null

七、limit 放最后的位置,行号从0开始 select * from T_Employees where name is not null ORDER BY salary DESC LIMIT 2,5

八、group by 一般和聚合函数一起使用,如果有where子句,则group by必须放在后面 select age from T_Employees group by age