数据操作:
1、insert:
格式1 insert into 表名(字段1,字段2,..) values(值1,值2,…) 向指定列插入值
格式2 insert into 表名 values(值1,值2,…) 向表中所有列插入值
注意:字段个数与值的个数及类型必须匹配。
1) 插入值 类型必须和 列类型匹配
2) 值长度不能超过 列定义长度
3) 值的顺序和 列顺序对应
4) 字符串和日期型值 必须写 引号
5) 插入空值 可以写 null
2、delete:
delete是用于删除表中的记录的。
格式 delete from 表名.
上述操作是将表中所有记录删除,如果要删除指定的记录需要使用where.
Delete from 表名 where 条件。
Delete 与drop 及truncate有什么区别
Drop table drop database 它是用于删除表或数据库。
Delete与truncate它们是用于删除记录的。
Delete from表名、Truncate table 表名:它们都是将表中数据全部删除。
区别是:
delete是一行一行删除记录。
Truncate是将表结构销毁,在重新创建表结构。
Delete删除是受事务控制的,而truncate是不受事务控制。
3、update:
用于修改表中的数据
格式 update 表名 set 字段名称=值 ,字段名称=值;
以上修改是对表中字段进行全部修改。在开发中一般是条件修改。
update 表名 set 字段名称=值 ,字段名称=值 where 条件.
select:
select操作是用于查询记录
格式1. select * from 表名 查询表中所有字段的值
格式2:select 字段1,字段2,.. from 表名 查询表中指定字段的值。
格式3 select distinct 字段1,字段2,。。。表名 查询出不重复的数据。
注意:distinct是用于去除重复。
格式4 表中的字段可以直接执行运算
求出三个人每一个人的三科总成绩
select name, chinese+math+english from exam;
格式5 可以给列或表起别名
select name as 姓名, (chinese+math+English) as 三科成绩from exam;
在列名或表名后使用 as 别名
select name 姓名, (chinese+math+English) 三科成绩 from exam 考试成绩表;
Select语句的书写顺序:
Select * from 表 where 条件 group by 字段 having 条件下 order by .字段。
Select语句的解析顺序:
from - where - group by - having –select- order by
where子句:
1. 关系运算符 > < >= <= = !=(<>)
2. 逻辑运算符 and or not
3. between and
select * from exam where chinese between 60 and 90;
4. in操作
select * from exam where math in(65,75)
5. is null is not null
注意:null值不可以使用=比较。
6.like操作 模糊查询
在模糊查询时可以使用两种通配符 % _
%通配所有
_ 它就通配一个字符
order by:
Order by 字段 asc/desc ,字段 asc/desc;
默认是asc 升序 desc 就是降序
注意:order by子句永远是select 语句中的最后一个。
聚合函数:
1. count 它是用于统计某一列有几行。 注意:如果某一行的值为null,不统计;在开发中经常使用的一种方式 select count(*) from 表;
2. sum 它是用于统计某一列的和;注意:如果列值中有null,sum可以对其做为0处理.
3. avg 它是用于求平均值的。
4. max min 求出某一列中最大值,最小值
group by:
group by 后面可以使用having进行条件的过滤。使用having必须使用group by。
1. having是在分组后进行过滤,where是在分组前进行过滤。
2. having后面可以使用分组函数,而where后面不可以使用分组函数。
可以使用having来替换where。注意只能在分组操作中,因为having必须在group by 后出现。
关于null做运算问题:
在mysql中如果nul与任意值做运算,结果都是null.
在开发中,我们对null做运算时,可能会将其做为0处理,怎样办?
在mysql中提供一个函数叫ifnull
select ifull(english,0) from exam;