DML-添加数据
1、插入数据时,指定的字段顺序需要与值的顺序是一一对应的。
2、字符串和日期型数据应该包含在单引号内。
3、插入的数据大小应该在字段规定范围内。
例:
一一对应插入数据:
Insert into employee ( id , workno , name , gender , age , idcard , entrydate ) values ( 1 , ’1’ , ’Itcast’ , ’男’ , ’10’ , ’123456789’ , ’2000-02-01’ );
直接插入数据,其中插入信息应于表中一一对应
Insert into employee values (1,’1’,’Itcast’,’男’,’18’,’123456789’,’2005-02-01’);
也可同时插入多条数据.
Insert into employee values (1,’1’,’Itcast’,’男’,’18’,’123456789’,’2005-02-01’), (1,’ (1,’1’,’jsbst’,’女’,’18’,’123456789’,’2005-02-01’),(1’,’jabast’,’女’,’17’,’123454329’,’2006-02-01’);
修改数据
修改语句的条件可以有也可以没有,如果没有,则默认修改表中的所有数据。
1、将employee表中所有id=1的员工名字修改为happy;
update employee set name=’happy’ where id=1;
2、将employee表中所有id=1的员工名字修改为小明,性别改为男;
update employee set name=’小明‘,gender=’男’ where id=’1’;
3、将employee表中所有员工的入职日期改为2008-01-01
update employee set entrydate=’2008-01-01’;
删除数据
1、删除employee表中姓名为李华的所有员工
delete from employee where gender=’女‘;
2、删除所有员工
delete from employee;
查询
条件查询:
1、查询所有年龄在15到20岁的员工(*表示查询所有信息)
select * from emp where age between 15 and 20;
2、查询所有性别为女并且年龄小于25的员工;
select * from emp where gender=’女‘ and age < 25;
3、查询所有年龄为18,20,40的员工
select * from emp where age in (18,20,40);
4、查询姓名为两个字的员工信息
select * from emp where name like’_ _’;(有几个字符及有几个下划线)
5、查询身份证最后一位为X的员工信息
select * from emp where idcard like ‘%X’;(%代表任意字符)
6、补充
不是=not=!;
不等于= != =<>
并且=&&=and
聚合函数
count(条件):统计数量
max(条件):最大值
min(条件):最小值
avg(条件):平均值
sum(条件):求和
例:
1、统计该企业员工的数量
select count(*) from emp;(count在统计数量时值为null的不参与运算)
2、计算企业员工的平均年龄
select avg(age) from emp;
3、计算企业员工的最大年龄
select max(age) from emp;
4、统计西安地区员工年龄之和
select sum(age)from emp where workaddress=’西安‘;
分组查询
where与having区别
1、执行时机不同:where是分组之前进行过滤,若不满足where条件,不参与分组,而having是分组之后对结果进行过滤;
2、判断条件不同:where不能对聚合函数进行判断,而having可以。
例:
根据性别分组,统计男性员工和女性员工的数量
select gender(查询结果显示性别), count(*)(分别计算男女员工的数量) from emp group by gender;
根据性别分组,统计男员工和女员工的平均年龄
select gender,avg(*) from emp group by gender;
查询年龄小于45的员工,并根据地址分组,获取员工数量大于等于3的工作地址
select workaddress,count(*)(获取进行所有判断后所得的员工数量的值并显示出来) from emp where age < 45 group by workaddress having count(*) >=3(对分组后员工值进行数量判断);
注意各种关键字写的顺序如group by为分组关键字,在where后having前。
排序查询
关键字:order by, asc (升序),desc (降序);
例:
根据年龄对公司员工进行升序排序
select * from emp order by age asc ;
根据年龄对公司员工进行升序排序,年龄相同,再按照入职时间进行降序排序
select * from emp order by age asc , entrydate desc ;
分页查询
起始索引从0开始,起始索引=(查询页码-1)*每页显示记录数
分页查询是数据库的方言,不同的数据库有不同的实现,mysql中是如果查询的是第一页数据,起始索引可以省略,直接简写为limit 10(每页展示的记录数)。
例:
查询第一页员工数据,每页展示10条记录
select * from emp limit 0(起始索引),10(每页展示的记录数);
查询第二页员工数据,每页显示10条记录
select * from emp limit 10,10;
编写顺序为:
select-> from -> where -> group by -> having -> order by -> limit