insert into newuser(id,username,password,sex,age,email,salary,state,role,registtime) values(1,'zhangsan','123',1,25,'zs@itcast.cn',100,0,'teacher','2015-10-10 12:35:50');
复制代码
2.修改数据
语句:update 表名称 set 字段名称1=值1,字段名称2=值2,....字段名称n=值n[where条件语句];
注意:如果不写where条件子句的话 会把表中的所有相应字段的数据全部修改
例如:update newuser set password=111 where id=1;
复制代码
3.删除数据
语法:delete from 表名 where条件句;
注意:如果不写where条件句的话 那么会把表中的数据全部删掉
复制代码
delete from newuser和drop table user的区别?
前者是删除数据,但是表的结构还在
后者是把整个表全部删掉<br>
truncate table newuser;和delete from newuser;区别?
前者一次性将表摧毁,然后在新建表结构
后者是一条一条的将数据删除
复制代码
4.查询数据
4.1.全部查询
语法:select * from 表名;
复制代码
4.2.查询部分数据
语法:select 字段名称1,字段名称2... from 表名称;
复制代码
4.3.去重查询
语法:select distinct 字段名称 from 表名;
复制代码
4.4.聚合函数
注意:聚合函数尽量不要和其他字段混合使用
复制代码
4.41.计数函数
名称:count():统计当前表中有多少条数据
用法:select count(* 或 者字段名) from 表名;
注意:当使用字段进行统计时,如果该列中有null值,则不算一条记录
复制代码
4.4.2.求和函数
名称:sum()
用法:select sum(salary) from 表名;
注意:如果要求和的字段中有null则把null当作0进行求和
复制代码
4.4.3.最大值函数
名称:max()
用法:select max(salary) from user;
注意:null不作为数值比较
复制代码
4.4.4.最小值函数
名称:min()
用法:select min(salary) from user;
注意:null不作为数值比较
复制代码
4.4.5.平均值
名称:avg()
用法:select avg(salary) from user;
注意:如果字段中有null值,在相加时当作了0或者根本就没有算数,在相除的时候没有算此条记录
复制代码
4.5.运算查询
语法:select username,salary+1000 from user;
注意:可进行数学运算
null在进行运算的时候还是null
复制代码
ifnull函数
作用:判断是否为null
语法:select username,ifnull(salary,0)+1000 from user;
复制代码
as函数
作用:给字段起别名
语法:字段名 as 别名
注意:as可以省略不写
复制代码
4.6.排序查询
语法:order by 字段名;
注意:
默认升序(asc):order by 字段名 asc;
降序(desc):order by 字段名 desc;
例如:select * from user order by salary;
复制代码
4.7.条件查询
4.7.1.单一条件查询
语法:select * from 表名 where 字段名称='字段值';
注意:可以使用的运算符:> < >= <= !=
例如:select * from user where username='zhangsan';
复制代码
4.7.3.范围查询
语法:select * from 表名 where 字段名1='字段值' and 字段名2='字段值'......;
注意:逻辑连接关键字可以使用and、or、not;优先级:and > or
例如:
select * from user where role='技术部' and sex='女';
select * from user where role='teacher' or role='财务部';
复制代码
4.7.4.枚举查询
语法:select * from 表名 where 要查询的字段 between ... and ...
注意:即包左又包右
复制代码
语法:in(枚举字段);---满足枚举字段的就会被查出来
复制代码
4.7.5.模糊查询
语法:not in(枚举字段);排除满足枚举字段的所有字段
复制代码
4.7.6.空/非空查询
语法:like '数据';
用法:
select * from user where username like '张';---全名叫张的
select * from user where username like '张%';---姓张的
select * from user where username like '%张';---最后一个字是张的
select * from user where username like '%张%';---包含张的
select * from user where username like '_张%';---第二个字是张的
注意:%:代表多个任意字符 _代表任意一个字符
复制代码
4.8.分组查询
语法:
is null;---某字段为null
is not null;---某字段不为null
复制代码
4.9.分页查询
语法:select 字段 from 表名 group by 字段 [having(条件)] 表达式;
复制代码
5.sql语句的书写顺序与执行顺序
limit 3,5
复制代码
多表连查
1.准备数据
书写顺序:select 字段 from 表名 where 条件 group by 字段 having 条件 order by 字段;
执行顺序:from > where > group by > having > select > order by