插入数据:insert
为表插入所有数据: insert into table_name( column_list) values (values_list);
为表的指定列插入数值:向部分列插入数值,没有指定的列所插入数值是默认值
同时插入多条记录:insert into table_name( column_list) values (values_list), (values_list), (values_list)....;
将查询结果插入表中: insert into table_name( column_list) select (column_list) from table_name2 where (condition);
单表记录的更新:update
语法格式:update table_name set column_name1 = values1,column_name2 = values2 where (condition);
单表记录删除:delect
语法格式:delect from table_name [where <condition>];
想要删除表中所有记录:truncate table table_name;
truncate 直接删除原来的表,并重新创建一个新的表
查询语句:select
select select_expr[,select_expr...] [
from table_name
[where where_condition]
[group by {col_name | position} [asc | desc]...]
[having where condition]
[order by {col_name | position} [asc | desc]... ]
[limit {[offset,] row_count | row_count}]
查询所有列
select * from table_name;
查询指定记录:
select 列名1,列名2... from table_name where 查询条件;
查询结果不重复:
在select 语句中可以使用distinct 关键词指定mysql 消除重复的记录值
select distinct 列名 from 表名;
查询空值:is null
例:select * from reader where age is null;
分组查询:
对数据按照某个或多个列进行分组
[group by 列名] [having <条件表达语句>]
通常一起使用:max(),min(),sum(),avg(),count()
例:select count(*) from reader where sex="男";
select sex,count(*) from reader group by sex;
使用having 过滤分组
[having<条件表达式>]
having 限定显示记录所需满足条件,只有满足条件的分组才能显示出来
例:select sex from reader group by sex having count(sex)>2;
结果排序:
order by 列名 [asc | desc]
单列排序:按照指定某个序列排序,默认升序
select * from reader order by age;
指定方向排序:
升序 asc 降序 desc
select * from reader order by age desc;
limit 限制查询结果数量
limit [位置偏移量] 行数
说明:第一条记录偏移为0,第二条为1,依次类推
例:显示表的前3行记录
select * from reader limit 3;
显示从第3条记录开始后的2条记录
select * from reader limit 2,2;