第5章 MySQL表数据的增删改查
5-1 DML语句之插入表数据
5-2 蠕虫复制
5-3 DML语句之表数据的修改和删除
5-4 DQL语句之简单查询
5-1 DML语句之插入表数据
DML语句
DML(Data Manipulation Language数据操作语言 用来对数据库中表的数据进行增删改。关键字:insert,
delete, update等
插入记录
1.关键字说明
INSERT INTO 表名-表示往哪张表中添加数据
(字段名1,字段名2,–)–要给哪些字段改置
VALUES(值1,值2,–);–没置几体的值
2.注意
- 值与字段必须对应,个数相同,类型相同
- 值的数据大小必须在字段的长度范围内
- 除了数值类型外,其它的字段类型的值必须使用引号引起。(建议单引号)
- 如果要插入空值,可以不写字段,或者插入null
插入全部字段
- 所有的字段名都写出来
INSERT INTO 表名(字段名1,宁段名2,字段名3…) VALUES (值1,值2,值3);- 不写字段名
INSERT INTO 表名 VALUES C值1,值2,值3-);
插入部分数据
INSERT INTO 表名 (字段名1,字段名2,…) VALUES (值1,值2,…);
没有添加数据的字段会使用NULL
具体操作:
创建db2数据库,并使用。
CREATE DATABASE db2 ;
usE db2;
创建完整学生信息表,包括学员的id,姓名,年龄,性别,家庭地址,电话号码,生日,数学成绩,英语成绩
CREATE TABLE student (
id int,
name varchar(20),
age int,
sex char(1) ,
address varchar(200),
phone varchar(20),
birthday date,
math doub1e,
english double
);
插入部分数据,往学生表中添加id, name, age, sex,address数据
INSERT INTO student (id , name ,age,sex, address)values(1, ‘张三’,19,‘男’,'北京市");
提示:使用SELECT * FROM表名;测试是否插入成功
5-2 蠕虫复制
什么是蠕虫复制
在已有的数据基础之上,将原来的数据进行复制,插入到对应的表中
语法格式:INSERT INTO 表名1SELECT * FROM表名2;
作用:将表名2中的数据复制到表名1中
具体操作:
- 创建student2表,student2结构和student表结构一样
CREATE TABLE student LIKE student2;
- 将student表中的数据添加到student2表中
INSERT INTO student SELECT * FROM student2;
注意:如果只想复制student表中name,age字段数据到student2表中使用如下格式
INSERT INTO student2(name ,age)SELECT name ,age FROM student;
5-3 DML语句之表数据的修改和删除
更新表记录
1.不带条件修改数据
UPDATE表名SET字段名=值;
2.带条件修改数据
UPDATE表名SET字段名=值WHERE字段名=值;
3.关键字说明
UPDATE:修改数据
SET:修改哪些字段
WHERE:指定条件
4.具体操作:
不带条件修改数据,将所有的性别改成女
UPDATE student SET sex=‘女’;
一次修改多个列,把id为3的学生,年龄改成26岁,address改成北京
UPDATE student SET age=26,address=‘北京’ WHERE id=3;
删除表记录
1.不带条件删除数据 DELETEFROM丧名;
2.带条件翩除数据 DELETEFROM表名WHERE字段名=值;3.具体操作
- 带条件删除数据,删除id为3的记录
DELETE FROM student WHERE id=3 ;- 不带条件删除数据,删除表中的所有数据
DELETE FROM student;
I
truncate删除表记录
TRUNCATE TABLE表名;
truncate和delete的区别:
- delete是将表中的数据一条—条删除
- truncate是将整个表摧毁,重新创建一个新的表,新的表结构和原来表结构一模一样
5-4 DQL语句之简单查询
**DQL(Data Query Language)**数据查询语言
用来查询数据库中表的记录(数据)。关键字:select,where等
注意:查询不会对数据库中的数据进行修改,只是一种显示数据的形式
查询表中所有数据
1、使用*表示所有列:SELECT * FROM 表名;
2、写出要查询的每列的字段名称:SELECT id,name,age FROM 表名;
查询指定列的数据:SELECT id,name,age,…… FROM 表名;
注:2比1效率高,1要检索除字段外的所有信息
别名查询
1、查询时给列、表指定别名需要使用AS关键字
2、使用别名的好处是方便观看和处理查询到的数据
SELECT 字段名1 AS 别名,字段名2 AS 别名…… FROM 表名;
其中AS可以省了不写
清除重复值
1.查询指定列并且结果不出现重复数据
SELECT DISTINCT 字段名1,字段名2 FROM 表名;
2.查询结果参与运算
1、某列数据和固定值运算:SELECT 列名1+固定值 FROM 表名;
2、某列数据和其他列数据参与运算:SELECT 列名1+列名2 FROM 表名;
注意:参与运算的必须是数值类型
需求:数学+英语成绩
select math+english (as) 总成绩from student;
需求:年龄+10
select name 姓名,age+10 as 年龄 from student;