mysql对数据库的增删改

avatar
作者
猴君
阅读量:0

目录

DML语句:

增加数据(insert语句)

增加数据(insert into select)

修改数据(update语句)

 【where 子句条件】

删除数据(delete语句)

删除数据(truncate语句)

-- delete truncate drop 区别

DQL语言

查询语句语法规则

where 子句:

like 关键字:

in关键字

null值查询

常用的聚合函数

例子:

group by 和having 分组

group by :

having : 

Order by

limit关键字

limit实现分页显示的方式

扩展了解


DML语句:

数据删除:delete 主要功能是删除数据库中已有的记录,可以依照条件去做修改

数据增加:insert 主要功能是给数据库表增加记录

数据修改:update 主要功能是修改数据库表中已有的记录,可以根据条件去修改

增加数据(insert语句)

insert into 表名 (字段名,字段名,...,字段名)  values/value (值,...,值)

其中:

()” 包含的内容可以省略;

• 字段或值之间用英文逗号隔开;

• 可同时插入多条数据,values 后用英文逗号隔开;

• values和value的方式均可。

增加数据(insert into select)

insert into select 语句从一个表复制数据,然后把数据插入到一个已存在的表中。目标表中任何已存在的行都不会受影响。

insert into newstu(xingming,xingbie,classid) select sname,ssex,classid from student;

create table select :被插入表不能存在 ,被插入表没有任何约束

create table stu1 select sid,sname,birthday from student;

修改数据(update语句)

update 表名 set 字段名=值,字段名=值,...,字段名=值

 【where 子句条件】

 where 子句 中的条件是对表中每一条数据进行判断,

 判断成立该数据的父句执行,

判断不成立该数据的父句不执行

删除数据(delete语句)

 delete from 表名 【where 子句】

删除数据(truncate语句)

清空表 、截断表    : truncate 表名

功能:清空某一张表内的全部数据,重置自增计数器;

特点:由于没有条件约束,所以速度快,而且效率高

-- delete truncate drop 区别

-- delete 只删数据

-- truncate 不仅把数据删掉,还删除了索引

-- drop 不仅把数据删掉,还删除了索引,表结构也删了

DQL语言

DQL(Data Query Language 数据查询语言)。用途是查询数据库数据,如SELECT语句。是SQL语句中最核心、最重要的语句,也是使用频率最高的语句。其中,可以根据表的结构和关系分为单表查询多表联查 

所有的查询都会得到一张虚拟表

最简单查询:select 123;     select ‘adc’;      select 1+1;

查询语句语法规则

select [distinct] {*\表.*} from 表1  [left\right\inner join 表2 on 表之间关系] [where] [group by] [having] [order by] [limit {[位置偏移量]行数}]

distinct设定可以去掉重复记录

as表名或者字段名过长时,可以用AS关键字起别名,方便操作。

group by按组分类显示查询出的数据。

havingGROUP BY分组时依赖的分组条件。

order by将查询出来的结果集按照一定顺序排序完成。

limit:限制显示查询结果的条数。

where 子句:

select * from 表名 where 条件

条件:为筛选条件,如不指定则修改该表中的所有数据

like 关键字:

select * from 表名 where 字段 like 条件;

where 子句中,使用like关键字进行模糊查询

% 任意多的任意字符

 _ 一个任意字符

select * from student where sname like '%杨%'

select * from student where sname like '杨_'

in关键字

select * from 表名 where 字段 in (值1,值2...);

查询的字段的值,至少与IN 后的括号中的一个值相同;

null值查询

select * from 表名 where 字段 is null | not null;

NULL代表“无值”

须使用 IS NULL 或 IS NOT NULL 比较操作符去比较

常用的聚合函数

函数名

返回值

AVG(col)

返回指定列的平均值

COUNT(col)

返回指定列中非NULL值的个数

MIN(col)

返回指定列的最小值

MAX(col)

返回指定列的最大值

SUM(col)

返回指定列的所有值之和

例子:

select count(*) from student;

select sum(score) from sc;

select avg(score) from sc;

select max(score) from sc;

select min(score) from sc;

group by 和having 分组

group by :

1、对所有的数据进行分组统计;

2、分组的依据字段可以有多个,并

依次分组

having : 

与GROUP BY结合使用,进行分组 后的数据筛选

select sid, sum(score),avg(score) from sc group by sid

having 对分组聚合后的数据进行条件筛选

select sid, sum(score),avg(score) from sc  

where score < 60

group by sid

having avg(score) < 60

Order by

select * from 表名 order by 字段 desc(降序) | asc(升序);

ORDER BY 表示对SELECT语句查询得到的结果,按字段名进行排序;

limit关键字

select * from 表名 limit n,m

LIMIT关键字是MySQL特有关键字;

LIMIT限制SELECT返回结果的行数;

n 表示第一条记录的偏移量,m 表示显示记录的数量

limit实现分页显示的方式

扩展了解

在mysql中使用limit关键字,而且需要放在select语句的最后面,如果是oracle 需要基于rownum来统计行数

Select rownum,name,salary from employees where rownum<5 order by salary desc;

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!