SQL–02数据表数据的增删改查

**图形化工具:**使用cmd页面看起来不简洁,而且很容易出错,所以我们使用图形化工具,Navicat,傻瓜式安装。

也可以使用一个小一点的软件heidisql,这个占空间比Navicat小,而且功能也齐全。如下所示。

heidisql 加载mysql heidisql怎么添加数据_数据

DML数据表中数据操作(增删改)
1.增加一条数据
INSERT INTO tb_user(id,username,password) values(1,"第一个","qwers");

这个意思是说,向tb_user表中的id,username,password,三个字段添加数据分别是1,第一个,qwers。记住括号里面的字段也可以不全写完。但是记得要一一对应,而且数据的内型也要对应。

heidisql 加载mysql heidisql怎么添加数据_sql_02

在heidisql工具里面的图片上面标注的1上面点击,有一个白框,在哪里写入sql语句,然后进行选中语句,再点击2步骤,就执行。下方无报错。就说明插入进去了。在执行**select * from tb_user;**意思是说查询tb_user这个表里面的数据。

tips:给所有列添加的时候,可以省去中间括号的字段名。写成这样.

INSERT INTO tb_user values(1,"第一个","qwers");

添加多行数据的方法。记得最后一个不要写逗号。如下所示添加了三行数据。

INSERT INTO tb_user values(
 1,
 "第一个",
 "qwers"
 ),(
 2,
 "第二个",
 "qwers"
 ),(
 3,
 "第三个",
 "qwers"
);
2.修改数据
UPDATE tb_user SET PASSWORD='zxcv' WHERE username='第一个';

将tb_user表中的username字段是‘第一个’的行,其中的password字段修改为’zxcv’.

修改多条如下。中间使用逗号隔开。

UPDATE tb_user SET PASSWORD='zxcv',username='修改的' WHERE id=1;

tips:如果update语句没有加条件,就会使得表中所有数据全部都修改。

3.删除数据
DELETE FROM tb_user WHERE username='修改的';

将tb_user表中所有的username字段数据为“修改的"的行删去。

同上,一定要加where条件,不然会删除所有数据。

DML(查询数据)

查询数据有很多种查询,本篇讲述基础查询,条件查询(select),排序查询(order by),分组查询(group by),分页查询(limit)。

这里准备了一个学生表,让我们练习查询。插入了五条数据。
CREATE TABLE student(
id INT,
NAME VARCHAR(20),
age INT,
sex VARCHAR(10),
score DOUBLE(5,2),
bitrh DATE
);

INSERT INTO student(id,NAME,age,sex,score,birth) 
VALUES(1,'张三',20,'男',32,'2000-02-12'),
(2,'李四',22,'女',40,'2000-01-01'),
(3,'王五',23,'女',35,'2000-05-21'),
(4,'麻子',21,'男',32,'2000-12-03'),
(5,'小黑',20,'男',36,'2000-10-07');

1.基础查询

查询age,sex字段的所有内容,这里的字段可以修改为多个。
select age,sex from student;

查询所有的数据,用星号代替。
select * from student;

去除查询字段里面的相同数据,同意的数据会保留一次。
select distinct age from student;

查询的字段修改名字,只在查询页面修改,不修改数据表的
select age as 年龄,sex as 性别 from student;

heidisql 加载mysql heidisql怎么添加数据_数据_03

2.条件查询

查询student表中age字段大于等于20的行
SELECT * FROM student WHERE age>=20;

查询student表中age字段大于20小于23的行
SELECT * FROM student WHERE age >=20 AND age<=23;
SELECT * FROM student WHERE age BETWEEN 20 AND 23;

查询student表中age字段等于20的行
SELECT * FROM student WHERE age =20;

查询student表中age字段不等于20的行
SELECT * FROM student WHERE age!=20;
SELECT * FROM student WHERE age<>20;

查询student表中age字段等于20活着的等于21的行
SELECT * FROM student WHERE age=20 OR age=21;
SELECT * FROM student WHERE age IN(20,21);

查询student表中age字段为空的行
SELECT * FROM student WHERE age IS NULL;

查询student表中age字段为空的行
SELECT * FROM student WHERE age IS not NULL;

模糊查询,查询name字段第一个字符是张的行
SELECT * FROM student WHERE NAME LIKE '张%';

模糊查询,查询name字段第二个字符是三的行
SELECT * FROM student WHERE NAME LIKE '_三%';

模糊查询,查询name字段带张的行
SELECT * FROM student WHERE NAME LIKE '%张%';
在模糊查询中,_代表单个任意字符,%代表多个任意字符,多也可以是0个

3.排序查询

ASC是默认的。 ASC升序  DESC降序
根据年龄升序排序
SELECT * FROM student ORDER BY age;

根据年龄降序排序
SELECT * FROM student ORDER BY age DESC;

根据年龄降序排序,如果年龄一样,根据分数升序排序。--如果是多个排序,只有前边的数值一样,才会根据第二条件进行排序
SELECT * FROM student ORDER BY age desc,score asc;

4.分组查询

count(列名)–统计数量,max(列名)–最大值,min(列名)–最小值,sum(列名)–求和,avg(列名)–平均值

聚合函数
查询表中有多少行,统计的列名不能为空值,空值不会计算
SELECT COUNT(id) FROM student;

查询分数最高的数值
SELECT MAX(score) FROM student;

查询分数最低的数值
SELECT Min(score) FROM student;

查询分数平均的数值
SELECT avg(score) FROM student;
查询男女同学各自的平均分
SELECT sex,AVG(score) FROM student GROUP BY sex;

查询男女同学各自的平均分,并且计算人数
SELECT sex,AVG(score),COUNT(*) FROM student GROUP BY sex;

查询男女同学各自的平均分,并且计算人数,并且分数要大于32才能参与计算
SELECT sex,AVG(score),COUNT(*) FROM student WHERE score >32 GROUP BY sex;

查询男女同学各自的平均分,并且计算人数,并且分数要大于32才能参与计算,并且显示人数大于2的组
SELECT sex,AVG(score),COUNT(*) FROM student WHERE score >32 GROUP BY sex having count(*)>2;

5.分页查询

查询第一页的数据,每页显示三条。
SELECT * FROM student LIMIT 0,3;

查询第二页的数据,每页显示三条。
SELECT * FROM student LIMIT 3,3;

查询第三页的数据,每页显示三条。
SELECT * FROM student LIMIT 6,3;
起始索引计算=(当前页码-1)*每页显示的条数。

6.分组查询

查询第一页的数据,每页显示三条。
SELECT * FROM student LIMIT 0,3;

查询第二页的数据,每页显示三条。
SELECT * FROM student LIMIT 3,3;

查询第三页的数据,每页显示三条。
SELECT * FROM student LIMIT 6,3;
起始索引计算=(当前页码-1)*每页显示的条数。

今天也完成了。:)