MySQL--数据操作

数据操作:
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;

猜你喜欢

转载自jackpot1234.iteye.com/blog/2326023