表的增删改查
1、增加
语法:
insert into table_name[(column[,column……])] values (value[,value……]);
示例:创建一个商品表并插入两条记录
使用插入语句时应该注意:
(1)插入数据应与字段数据类型相同
例:将‘a’插入到字段id列则会报错。
(2)数据的大小应该在规定的范围内
例如:我们指定good_name的大小我varchar(50),则不能超过其大小。
(3)在values中列出的数据位置必须与被加入列位置相对应
若插入元素前后不对应,则会出现我们预期之外的结果。
(4)字符、日期类诗句应该包含在单引号中
如:插入字符类数据时不加单引号,则会插入不成功。
(5)要所有字段插入值时可以不指定字段名(如果没有给出字段名称,values中必须给出所有字段的值)
(6)批量插入(一次性插入多条数据)用逗号隔开
(7)在约束中无not null约束时可插入为空的元素,不写,或者 insert into table values(null)
(8)给表中某几个字段添加值,需要指定字段名。
注意:
在进行数据插入时,假设主键对应的值已经存在,则插入失败。
在主键冲突时我们可以有两种处理方式:
1)更新操作
2)替换冲突值,若没有冲突直接插入
2、修改
语法:
update table_name set col1_name[,col2_name,……] [where condition]
(1)修改某字段的所有值
(2)修改指定id指定字段的值
在进行修改的时候也可以进行算术运算
(3)限制更新的数量
如:对id是奇数的price进行更新且只更新两条
3、删除
语法:
delete from table_name where condition
(1)删除指定字段
(2)删除表中所有数据,表结构存在
首先进行表的备份
1)复制表的结构
创建和goods表结构一样的表
2)复制表中数据
3)删除
方式一:删除表中所有数据
方式二:删除表中所有数据
删除表中所有数据的两种方式的区别
删除方式 | 删除某一列 | 是否可含where子句 | 返回值 |
delete | 不能删除某一列的值<可用删除某一个字段来实现> | 可加where子句 | 返回删除的记录数 |
truncate | 不能删除指定列 | truncate只能加表名,不能加where子句 | 返回值为0 |
4、查找
语法:
select [distinct] *| {column1,column2,...} from table_name;
distinct表示去除重复行
创建一个student表并插入下列数据:
(1)指定列查询
Select * from table_name表示查询所有列
Select col_name[,col_name……]表示指定列查找
(2)若含有重复的行则去除
Distinct可去除结果中有重复的行
(3)给列起别名
(4)求总成绩
Seletc语句可参数数值运算
以下为使用where子句对查询结果进行过滤
Where子句中常用的运算符:
(5)给某个指定姓的同学成绩进行修改
指定字符串以什么开头时可用like,‘like%’中“%”可表示任意个字符,‘like_’中“_”表示一个字符。
(6)查询指定姓的同学的成绩
(7)查询某个成绩>某个值的学生
(8)查询总分大于指定值的同学
查询时使用where子句,不可以用别名来代替所要查找的条件,否则得不到增正确的结果。
(9)查询英语成绩在80-90之间的学生
当我们所要查找的数据在某个区间范围内时,可以使用between……and来代替使用比较运算符和逻辑运算符的组合查找。
(10)查询数学成绩为89.90.91的学生
当我们查询几个特定的值时,可以使用in(要查找的值)
(11)Order by子句的使用(排序)
在末尾插入,asc表示升序排列,desc表示降序排列,若不指定默认升序。
使用order by子句时,可以使用别名来进行查询过滤。因为order by是先进行计算,再进行排序操作。
(12)Count聚合函数
Count(*)会统计总共的记录数,count(列名)会排除为null的情况。
返回某一行行的总数
(13)Sum求和函数的使用
求出指定字段的总和
(14)Avg平均函数的使用
我们可以使用avg()函数取代传统的用总分/总人数的球平均值的做法。
(15)Max、Min最大最小函数的使用
(16)Group by子句的使用(对列进行分组)