MySQL数据库(四)

MySQL数据库数据操作

四、数据操作

1、增

a.全列插入:

格式:insert into 表名values(...)

说明:主键列是自动增长,但是在全列插入时需要占位,通常使用,插入成功后以实际数据为准。

示例:insert into student values(0,”Tom”,19,1,”北京”,0)

b.缺省插入

格式:insert into表名(列1,列2......) values(值1,值2......);

示例:insert into student(name,age,address) values(“lilei”,19,”上海”);

c.同时插入多条数据

格式:insert into表名values(...),(...),...

示例:insert into student values(0,”Hanmeimei”,19,1,”北京”,0),(0,”poi”,22,1,”北京”,0),(0,”Hangeng”,33,1,”北京”,0)

2、删

格式:delete from表名where条件;

示例:delete from student where id=4;

注意:没有条件时全部删除,慎用。

3、改

格式:update表名set列1=值1,列2=值2,...... where条件

示例:update student set age=16 where id=7

注意:如果没有条件,全部列都修改,慎用

4、查

说明:查询表中的全部数据

格式:select * from表名;

示例:select * from student;

五、查(复杂,单独讲解)

1、基本语法

格式:select * from表名;

说明:

a. from关键字后面是表名,表示数据来源于这张表

b. select后面写表中的列名,如果是*表示在结果集中显示表中的所有列

c.在select后面的列名部分,可以使用as为列名起别名,这个别名显示在结果集中。

d.如果要查询多个列,之间使用逗号分隔。

示例:

Select * from student;

Select name, age from student;

Select name as a,age from student; (a只是别名,原表中名不变)

2、消除重复行

在select后面列前面使用distinct可以消除重复的行

示例:

Select gender from student;

Select distinct gender from student;(在结果集中消除重复的列)

3、条件查询

a.语法

Select * from 表名where条件

b.比较运算符

等于=

大于>

大于等于>=

小于等于

不等于!=或者

需求:查询id值大于8的所有数据

示例:Select * from student where id>8

c.逻辑运算符

And并且

Or或者

Not非

需求:查询id值大于7的女同学

示例:select * from student where id>7 and gender=0;

d.模糊查询

Like

% 表示任意多个任意字符

_ 表示一个任意字符

需求:查询姓习的同学

示例:select * from student where name like“习%”;

select * from student where name like“习__”;

e.范围查询

In 表示在一个非连续的范围内

Between ... and ... 表示在一个连续的范围内

需求:查询编号为8、10、12的学生

示例:select * from student where id in (8,10,12);

需求:查询编号为6到8的学生

示例:select * from student where id between 6 and 8;

f.空判断

注意;null与””是不同

判断空:is null

判断非空:is not null

需求:查询没有地址的同学

示例:select * from student where address is not null;

g.优先级

小括号,not比较运算符,逻辑运算符

and比or优先级高,如果同时出现并希望先选or,需要结合括号来使用

4、聚合

为了快速得到统计的数据,提供了5个聚合函数

A、count(*) 表示计算总行数,括号中可以写*和列名

B、max(列)表示求此列的最大值

C、min(列)表示求此列的最小值

D、sum(列)表示求此列的和

E、avg(列)表示求此列的平均值

需求:查询学生总数

示例:select count(*) from student; select count(id) from student;

需求:查询女生的编号最大值

示例:select max(id) from student where gender=0;

需求:查询女生的编号最小值

示例:select min(id) from student where gender=0;

需求:查询女生的年龄和

示例:select sum(age) from student where gender=0;

需求:查询所有学生的年龄平均值

示例:select avg(age) from student;

5、分组

按照字段分组,表示此字段相同的数据会被放到一个集合中。分组后,只能查询出相同的数据列。对于有差异的数据列,无法显示在结果集中。

可以对分组后的数据进行统计,做聚合运算

语法:select列1,列2,聚合...... from表名group by列1,列2,列3......;

需求:查询男女生总数

示例:select gender,count(*) from student group by gender;

分组后的数据筛选:select列1,列2,聚合...... from表名group by列1,列2,列3,.......having列1,......聚合......

示例:select gender,count(*) from student group by gender having age;

where与having的区别:

where是对from后面指定的表进行筛选,属于对原始数据的筛选

having是对group by的结果进行筛选

6、排序

语法:select * from表名order by列1 asc|desc ,列2 asc|desc , ......

说明:

a、将数据按照列1进行排序,如果某些列1的值相同,则按照列2进行排序

b、默认按照从小到大的顺序排序

c、asc升序

d、desc降序

需求:将没有被删除的数据按照年龄升序排序

示例:select * from student where isDelete=0 order by age asc;

select * from student where isDelete=0 order by age asc , id desc;

7、分页

语法:select * from表名limit start count;

说明:start索引从开始

示例:select * from student limit 0,3;

Select * from student limit 3,3;

Select *from student where gender=1 limit 0,3;

长按下方二维码关注:

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20180619G0KTVZ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券