sql
id: sql sidebar_position: 4
SQL 语言基础
捂热你的鼠标,连好你的键盘,接下来我们用的是——真家伙!
以此表(MyFavSong)为例:
-
键:
Sno(歌曲编号) -
列:
Sname(歌手名),Aname(专辑名) -
表头:
Sno, Sname, Aname -
行:例如
('001', 'DingZ', 'ZOOD')
SQL 语言简介
SQL 语言是结构化查询语言 (Structured Query Language) 的简称,是一种用于存取数据以及查询、更新和管理关系数据库系统的数据库语言。SQL 是一门 ANSI 的标准计算机语言,可以与不同的数据库程序协同工作,如 MS Access、DB2、Informix、MS SQL Server、Oracle、Sybase 等。SQL 的范围包括数据插入、查询、更新和删除,数据库模式创建和修改,以及数据访问控制。
数据插入(INSERT)
INSERT INTO 语句用于向表中插入(增)新记录。
INSERT INTO 语句可以有两种编写形式。
第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:
INSERT INTO table_name
VALUES (value1,value2,value3,...);
第二种形式需要指定列名及被插入的值:
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
参数说明:
table_name:需要插入新记录的表名。column1,column2, ...:需要插入的字段名。value1,value2, ...:需要插入的字段值。
是不是感觉很简单?但如果您感觉不够直观,别急...
演示数据库
在本教程中,我们将使用 YZJ_test 样本数据库。
下面是选自 "MyFavSong" 表的数据:
| Sno | Sname | Aname |
|---|---|---|
| 001 | DingZ | ZOOD |
INSERT INTO 实例
假设我们要向 "MyFavSong" 表中插入一个新行。
我们可以使用下面的 SQL 语句:
INSERT INTO MyFavSong
VALUES ('002','DingZ','IGS');
| Sno | Sname | Aname |
|---|---|---|
| 001 | DingZ | ZOOD |
| 002 | DingZ | IGS |
在指定的列插入数据
我们也可以在指定的列插入数据。
下面的 SQL 语句将插入一个新行,在 "Sno"、"Sname" 和 "Aname" 列插入数据:
INSERT INTO MyFavSong (Sno,Sname,Aname)
VALUES ('003','DingZ','Yan_Dis');
| Sno | Sname | Aname |
|---|---|---|
| 001 | DingZ | ZOOD |
| 002 | DingZ | IGS |
| 003 | DingZ | Yan_Dis |
数据删除(DELETE)
DELETE 语句用于删除(删)表中的行。
SQL DELETE 语法
DELETE FROM table_name
WHERE condition;
参数说明:
table_name:要删除的表名称。condition:删除条件,用于指定哪些数据要删除。
还是不够直观?继续有请我们的图片示例...
演示数据库
在本教程中,我们将使用 YZJ_test 样本数据库。
下面是选自 "MyFavSong" 表的数据:
| Sno | Sname | Aname |
|---|---|---|
| 001 | DingZ | ZOOD |
| 002 | DingZ | IGS |
| 003 | DingZ | Yan_Dis |
SQL DELETE 实例
假设我们要从 "MyFavSong" 表中删除歌手名为 "DingZ" 且专辑名为 "IGS"的专辑。
我们使用下面的 SQL 语句:
DELETE FROM MyFavSong
WHERE Sname='DingZ' AND Aname='IGS';
| Sno | Sname | Aname |
|---|---|---|
| 001 | DingZ | ZOOD |
| 003 | DingZ | Yan_Dis |
删除所有数据
您可以在不删除表的情况下,删除表中所有的行。这意味着表结构、属性、索引将保持不变:
DELETE FROM table_name;
注释:在删除记录时要格外小心!因为您不能重来!
数据更新(UPDATE)
UPDATE 语句用于更新(改)表中已存在的记录。
SQL UPDATE 语法
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
参数说明:
table_name:要修改的表名称。column1,column2, ...:要修改的字段名称,可以为多个字段。value1,value2, ...:要修改的值,可以为多个值。condition:修改条件,用于指定哪些数据要修改。
如果您还是没法完全理解,请庆幸我的示例部分写得很完整...
演示数据库
在本教程中,我们将使用 YZJ_test 样本数据库。
下面是选自 "MyFavSong" 表的数据:
| Sno | Sname | Aname |
|---|---|---|
| 001 | DingZ | ZOOD |
| 002 | DingZ | IGS |
| 003 | DingZ | Yan_Dis |
SQL UPDATE 实例
假设我们要把 "MyFavSong" 中 'Mr.DingZ' 的 '002' 号专辑由 'IGS' 改为 'LT_Road'。
我们使用下面的 SQL 语句:
UPDATE MyFavSong
SET Aname = 'LT_Road'
WHERE Sno = '002'
AND Sname = 'DingZ';
| Sno | Sname | Aname |
|---|---|---|
| 001 | DingZ | ZOOD |
| 002 | DingZ | LT_Road |
| 003 | DingZ | Yan_Dis |
Update 警告!
在更新记录时要格外小心!在上面的实例中,如果我们省略了 WHERE 子句,如下所示:
UPDATE MyFavSong
SET Aname = 'LT_Road'
执行以上代码会将 "MyFavSong" 表中所有数据的 "Aname" 改 'LT_Road' 。
执行没有 WHERE 子句的 UPDATE 要慎重,再慎重。
| Sno | Sname | Aname |
|---|---|---|
| 001 | DingZ | LT_Road |
| 002 | DingZ | LT_Road |
| 003 | DingZ | LT_Road |
数据查询(SELECT)
SELECT 语句用于从数据库中选取(查)数据。
结果被存储在一个结果表中,称为结果集。
SELECT column1, column2, ...
FROM table_name;
或者,如果您想一步查询所有字段的话 (可也能您只是很懒)
SELECT *
FROM table_name;
参数说明:
column1,column2, ...:要选择的字段名称,可以为多个字段。如果不指定字段名称,则会选择所有字段。table_name:要查询的表名称。
还不懂?还好本章节的最后这部分的示例质量也足够上乘!
演示数据库
在本教程中,我们将使用 YZJ_test 样本数据库。
下面是选自 "MyFavSong" 表的数据:
| Sno | Sname | Aname |
|---|---|---|
| 001 | DingZ | ZOOD |
| 002 | DingZ | IGS |
| 003 | DingZ | Yan_Dis |
SELECT Column 实例
下面的 SQL 语句从 "MyFavSong" 表中选取 "Sno","Sname","Aname"列:
SELECT Sno,Sname,Aname
FROM MyFavSong;

SELECT * 实例
下面的 SQL 语句从 "MyFavSong" 表中选取所有列:
SELECT *
FROM MyFavSong;
