大家好,我是宁一。
今天是SQL课程的第十课。
讲讲DELETE 删除语句,用来删除表中的一条或多条记录。
基本语法:
DELETE FROM <表名> WHERE <筛选条件>;
如果省略WHERE条件,这时候DELETE就会删除整个表的记录。
注意: 这里不是删除表,只是删除表中所有数据,还会保留表结构的。
实例: 删除Teachers表中所有记录。
DELETE FROM Teachers;
如果遇到这个错误:
You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column
解决方案:
出现错误是因为Workbench默认开启了Safe Updates功能,不允许随便修改删除记录,我们先关闭该功能。
在 MySQLWorkbench-Preferences-SQL Editor-将Safe Updates前面的勾去掉。再重启Workbench软件就可以了。
加上WHERE条件,就只会删除符合条件的记录。
实例: 删除Students学生表中,生日Sage为1995-06-15的记录。
DELETE FROM Students
WHERE Sage = "1995-06-15";
可以看到最下面的运行结果,显示2条被删除了。
如果没有运行界面,可以点击WorkBench的右上角,点击中间的这个图标就可以了。
粘贴下面的语句:
-- 删除数据库
DROP database School
-- 创建数据库
CREATE database School;
-- 选择数据库
USE School;
-- 创建学生表 Students:
CREATE TABLE Students(
Sid INT ,
Sname VARCHAR(10),
Sage DATETIME,
Ssex VARCHAR(10),
Tid INT);
-- 插入语句
INSERT INTO Students VALUES
(1 , '宁一' , '1995-06-15' , '女',1),
(2 , '宁儿' , '1995-03-16' , '女',1),
(3 , '宁散' , '1995-05-19' , '男',1),
(4 , '凝思' , '1995-06-18' , '女',1),
(5 , '宁武' , '1995-06-15' , '男',1),
(6 , '宁柳' , '1994-12-01' , '男',1),
(7 , '柠七' , '1999-02-12' , '女',2),
(8 , '凝八' , '1999-03-03' , '男',2),
(9 , '柠九' , '1999-03-04' , '女',2),
(10 , '宁时' , '1999-07-12' , '男',2);
-- 创建成绩表 Scores
CREATE TABLE Scores(
Sid INT,
Cid INT,
score DECIMAL(18,1));
-- 插入语句
INSERT INTO Scores VALUES
(1, 1 , 100),(1 , 2 , 90),
(1, 3 , 99), (2 , 1 , 80),
(2, 2 , 59), (2 , 3 , 88),
(3, 1 , 81), (3 , 2 , 79),
(3, 3 , 61), (4 , 1 , 50),
(4, 2 , 48), (4 , 3 , 90),
(5, 1 , 76), (5 , 2 , 87),
(5, 2 , 99), (6 , 1 , 91),
(6, 2 , 94), (6 , 3 , 90),
(7, 1 , 89), (7 , 2 , 21),
(8, 1 , 93), (8 , 2 , 88),
(9, 1 , 91), (9 , 2 , 88),
(10, 1 , 71), (10 , 2 , 88);
-- 创建科目表 Courses
CREATE TABLE Courses(
Cid INT,
Tid INT,
Cname VARCHAR(10));
-- 插入语句
INSERT INTO Courses VALUES
(1, 2, '语文'),
(2, 1, '数学'),
(3, 3, '英语');
-- 创建教师表 Teachers
CREATE TABLE Teachers(
Tid VARCHAR(10),
Tname VARCHAR(10));
-- 插入语句
INSERT INTO Teachers VALUES
(1, '张三'),
(2, '李四'),
(3, '王五’);
下节课我们开始第三章的学习,多表连接、聚合函数、窗口函数、子查询、基本函数。
点击关注,更新课程第一时间通知哦~