mySQL增、改、删操作

按照如下脚本创建两个表单:

CREATE TABLE students(id INT, `name` VARCHAR(8), age_id INT);`students`
INSERT INTO students(id, `name`,age_id)
VALUE (1, '林一',2),(2,'王二',1),(3,'张三',3),(4,'李四',8),(5,'王五',1),(6,'赵六',9),(7,'刘七',10);

CREATE TABLE ages(id INT, age INT);
INSERT INTO ages(id, age) 
VALUE(1,12),(2,22),(3,32),(4,42),(5,52),(6,62);

创建后的表单如下:

students

ages

一、增:作用是往数据库的记录表里面写入记录值

语法一:

INSERT INTO 表名(字段1,字段2,...) VALUE(字段1的值,字段2的值,...);

注意:

1、INSERT一条记录时,要保持插入数据类型和数据表定义的类型一致,比如定义为INT类型的字段不能插入VARCHAR类型数据。且“字段n"的位置顺序要和”字段n的值“的位置顺序一一对应。

2、表结构设计中定义为不可为空胡字段必须插入记录值,如果定义为null的字段可以不写入数据。

3、"表名"后面的字段列表可以省略,如果省略,则VALUE后面就必须完全按照表单设计顺序一一列出值,不建议这么使用。

#在students表单中插入一个名为何八且age序号为3的数据记录

INSERT INTO students(id, `name`, age_id) VALUE(8, '王八', 3);

结果:

语法二:

INSERT INTO 表名

     SET 字段名1=值,字段名2=值,...;

#增加名叫”娄九“的数据到students中去

INSERT INTO students
SET id = 9, `name` = '娄九', age_id = 3;

输出结果:

以上两种语法比较(一般用语法一较多):

1、语法就可以一次性插入多条记录值,语法二不支持。

2、语法一可以支持子查询,语法二不支持。

二、修改语句:修改已有记录胡部分字段的值

1、修改单表记录

语法:update 表名 set 字段名1=新的值,字段2=新的值,...where条件;

#将students中名叫"娄九"的age_id修改为4

UPDATE students SET age_id=4 WHERE `name`='娄九';

输出结果:

2、修改多表记录

语法:92版本

update 表1 别名, 表2 别名

set 字段1=值

where 连接条件 and 筛选条件;

语法:99版本

update 表1 别名

【连接类型】join 表2 别名

on 连接条件

set 字段1=值...

where 筛选条件;

#把students中张三的年纪修改为22

UPDATE students s
INNER JOIN ages a
ON s.`age_id` = a.`id`
SET a.`age` = 22
WHERE s.`name` = '张三';

输出结果:

      

#修改没有年龄记录的同学的对应年龄的编号都为3

UPDATE students s
LEFT JOIN ages a
ON s.`age_id` = a.`id`
SET s.`age_id` = 3
WHERE a.`age` IS NULL;

三、删除操作:删除表里的记录行(都是整行的删除)

1、单表删除操作

语法:

delete from 表名 where 要删除的记录筛选条件;

#删除students中名为娄九的信息

DELETE FROM students WHERE `name`='娄九';

输出结果:

2、多表删除操作

92版本语法:

delete 别名1, 别名2

from 表1 别名1, 表2 别名2

where 连接条件  and 筛选条件

99版本语法:

delete 别名1,别名2

from 表1 别名1

【连接类型】join 表2 别名2

on 连接条件

where 筛选条件;

#删除名叫”何七“的人的年龄信息

DELETE a FROM students s
INNER JOIN ages a
ON s.`age_id` = a.`id`
WHERE s.`name` = '王八';

输出结果:

   

四、整表记录全部删除,不能加where条件

1、truncate table表名;

2、delete from 表名;

上述两个的区别:

1、delete可以加where条件,但是truncate不能。

2、truncate删除效率会高一些

3、加入删除表中有自增长字段,如果使用delete删除,再插入数据,自增长从断点值开始,用truncate则是从1开始。

4、truncate删除没有返回值,而用delete删除有返回值。

5、truncate删除不能回滚,而用delete删除可以回滚。

注意:一般不会进行整表删除操作。

发布了70 篇原创文章 · 获赞 4 · 访问量 3987

猜你喜欢

转载自blog.csdn.net/l0510402015/article/details/101020278