CRUD
Insert语句
insert into `good` (id,good_name,price) values(11,'苹果手机',5000);
-- 表名 列名 列名 列名 值
- insert语句注意事项
- 插入的数据应与字段的数据类型相同
- 数据的长度应列的规定范围内,例如:不能将一个长度80的字符串加入到长度为40的列中
- 在values中列出的数据位置必须与被加入的列的排列位置相对应
- 字符和日期类型数据应包含在单引号中
- 列可以插入空值【前提是该字段允许为空】
- insert into tab_name (列名…) values(),(),()…;
- 如果是给表中的所有字段添加数据的时候,可以不写前面的字段名字
- 默认值的使用,当不给某个字段值时,如果有默认值就会添加,否则报错。
update语句
update good set price = price + 1000 where good_name = '苹果手机';
- 使用细节
- update语法可以用新值更新原有表行中的各列。
- set子句指示要修改哪些列和要赋给予哪些值。
- where子句指定应更新哪些行,如没有where子句,则更新所有的行(记录)
- 如果需要修改多个字段,可以通过set 字段1 = 值1,字段2 = 值2…
delete语句
delete from good where good_name = '苹果手机';
- 使用细节
- 如果不适用where子句,将删除表中的所有数据
- Delete语句不能删除某一列的值(可使用update设为null或者‘’)
- 使用delete语句仅删除记录,不删除表本身。如果要删除表,使用drop table 语句。
select语句
基本语法
select [distinct] *|{column1,column2,....} from table_name;
- 注意事项
- select指定查询哪些列的数据
- column指定列名
- *号代表查询所有列
- from指定查询哪张表
- distinct可选,指查询结果的时候,是否去掉重复的数据
-- 统计每个学生的总分
select `name`,(chinese+english+math) from student;
-- 给每个学生的总成绩加10分
select `name`,(chinese+english+math+10) from student;
-- 使用别名表示学生的总成绩
select `name` as '名字',(chinese+english+math) as total_score from student;
where中经常使用的运算符
-
比较运算符
> < <= >= = <> != -- 大于,小于,大于(小于)等于,不等于
between ... and ... -- 显示在某一区域的值
in(set) -- 显示在in列表中的值,例如,in(100,200) 这个set是个集合,不是表示区间
like '张pattern' not like '' -- 模糊查询
is null -- 判断是否为空
-
逻辑运算符
and -- 多个条件同时成立 or -- 多个条件任一成立 not -- 不成立,例如:where not (salary>100);
select * from student where (chinese+english+math) > 200 and math< chinese and `name` like '韩%';
-- 这个 韩% 表示是以韩开头的字符串,无论韩后面有多少个字符都可以。
-- 韩_ 表示是以韩开头的字符串,但是 韩后面只能有一个字符。
- between …and…(闭区间)
select * from student where english between 80 and 90;
使用order by 子句排序查询结果
select column1,column2,... from tablename order by column asc|desc;
- order by 指定排序的列,排序的列既可以是表中的列名,也可以是select语句后指定的列名
- asc升序【默认】,desc降序
- order by 子句应位于select语句的结尾
select * from student order by math;-- 默认是升序
select * from student order by math desc -- 按照math成绩降序排列
select `name`,(chinese+math+english) as total_score from student order by total_score;
-- 对总分按照升序进行排列
select `name`,(chinese+math+english) as total_score from student order by total_score desc;
-- 对总分按照降序进行排列