1.插入表记录
单条
insert into 表(字段列表) values(字段列表);
多条
insert into 表(字段列表) values(字段列表),(字段列表),(字段列表);
规则:
1)字段值要与字段类型匹配
2)字符类型要用""或''括起来
3)要给所有字段赋值可以省略字段列表,insert into 表 values(字段列表);
4)给部分字段赋值必须明确标出字段列表并且按顺序赋值,insert into 表(字段1,字段2) values(字段1,字段2);
5)没有赋值的字段使用默认值或者设置了自增长值
2.查询表记录
查看所有记录
select 字段1,字段2...字段n from 数据库.表;
按条件查询
select 字段1,字段2...字段n from 数据库.表 where 条件表达式;
规则:
1)*可以代表所有字段
2)查看当前库表可以省略库名
3)字段列表决定显示列个数
4)条件决定显示行个数
3.更新表记录
批量更新
update 库名.表名 set 字段名1=新值,字段名2=新值....字段名n=新值;
条件更新
update 库名.表名 set 字段名1=新值,字段名2=新值....字段名n=新值 where 条件表达式
规则:
1)字段值要与字段类型匹配
2)字符类型要用""或''括起来
3)若不加where条件匹配,将会更新所有记录
4.删除表记录
删除所有
delete from 库名.表名;
删除条件匹配记录
delete from 库名.表名 where 条件表达式;
规则:
1)不加条件删除所有
条件匹配规则
1.数值比较
2.字符比较
3.逻辑匹配
4.范围匹配/去重显示
between 1 and 10相当于 where a>=1 and a<=10
5.模糊查询
where 字段名 like '通配符'
通配符有2
'_':表示一个字符
'%':标识0-n个字符
如 where name like '_ _ _ _' 代表匹配四个字符长度的所有name
6.正则表达式
where regexp '正则表达式'
正则元字符: ^ [ ] . * | $
例子:
以a开头 ^a
以a结尾 a$
以a开头或以a结尾 ^a | a$
匹配任意一个字符 aa. //可以是 aaa aab aac 第三个位置任意
匹配0-n个字符 a* //可以是aa aaa aaa 从第二个字符起任意
7.四则运算
8.聚集函数
Mysql内置统计函数
统计平均值:avg()
统计数量:count()
统计字段值之和:sum()
列出最小值:min()
列出最大值:max()
9.查询结果排序
select ... order by 字段名 [asc|desc];
asc : 升序
desc:降序
如1-100 , asc 显示为1,2,3,4...100 .desc 显示为100,99,98...1
10.分组
select ... group by 字段名;
例:如果字段名中有性别之分,如男女,则将男作为一组,女作为一组
11.对查询结果过滤
select ... having 表达式
如select ... having name = 'tom' 对tom进行过滤,显示除tom之外的所有
12.限制显示行
select ... limit 数字1
select ... limit 数字1,数字2
第一个数字是起点,第二字数字是显示的个数
例:
显示第3行 select ... limit 3
显示3-5行 select ... limit 3,3
我们用mysql做分页可以这么写,如我总共有100条记录我们想分10页,每页10条记录,我想查看第45条
那就是第四页的第5条,由于页数是已知的,我们需要计算成当前页之前有多少条记录,那么就是4*10(页*每页记录数)
查询语句可以这么写 select .... limit 40,5