增删改查
插入数据
形式1:
insert into 表名(字段名1,字段名2,....)values (值a1,值a2, .....), (值b1,值b2, .....),..... ;
形式2:
insert into 表名1(字段名1,字段名2,....)select 字段名1,字段名2,.... from 表名2;
形式3:
insert into 表名 set 字段名1=值1,字段名2=值2, ..... ;
载入外部“形式整齐”的数据:
load data infile ‘文件完整名(含路径)’ into table 表名;
复制一个表的结构和数据:
create table 表名1 select * from 表名2;
删除数据:
delete from 表名 [where条件] [order排序] [limit限定];
truncate [table] 表名;用于直接删除整个表(结构)并重新创建该表。
修改数据:
update 表名 set 字段名1=值表达式1,字段名2=值表达式2,....[where条件] [order排序] [limit限定];
查询数据:
select [all | distinct] 字段或表达式列表 [from子句] [where子句] [group by子句] [having子句] [order by子句] [limit子句];
all:允许出现重复(默认)
distinct:不允许出现重复(去重)
from字句:指定数据的来源
where字句:
算术运算符: + - * / %
比较运算符: > >= < <= =(等于) <>(不等于)
==(等于,mysql扩展),!=(不等于,mysql扩展)
逻辑运算符: and(与) or(或) not(非)
逻辑判断
判断为true: XX is true
判断为fale: XX is false
空值的判断
判断为null: XX is null
判断为非空: XX is not null
between语法:字段XX的值在值1和值2之间(含),相当于:XX >=值1 and XX<=值2;
XX between 值1 and 值2;
int语法:相当于 XX = 值1 or XX = 值2 or XX = 值2
XX in (值1,值2,.......);
like语法:模糊查找
% 其含义是:代表任意个数的任意字符
_ 其含义是:代表1个的任意字符
like ‘%ab\%cd%’ //这里要找的是: 包含 ab%cd 字符的字符
like ‘\_ab%’ //这里要找的是: _ab开头的字符
like ‘%ab\’cd%’ //这里要找的是: 包含 ab’cd 字符的字符
例子:like ‘%关键字%’
group by字句:组内某些字段的最大值,最小值,平均值,总和值。其他字段,通常就不能用了。
group by 字段1 排序方式1,字段2 排序方式2, .....
count(*): 统计一组中的数量,通常用“*”做参数
max(字段名):获取该字段中在该组中的最大值。
min(字段名):获取该字段中在该组中的最小值。
sum(字段名):获取该字段中在该组中的总和。
avg(字段名):获取该字段中在该组中的平均值。
Group_concat(字段名):显示没有展示的部分
having 字句:where是针对表的字段的值进行“条件判断”
用在group by后面,作用和where类似
orderby字句:排序
正序: ASC(默认值),可以省略
倒序: DESC
limit字句:
limit [起始行号start], 要取出的行数num