SQL 基础教程
SQL SELECT使用语法:
SELECT主要用于从数据库中去相应的数据,根据相应的要求取数据,将取来的数据形成一个表。
以下的 SQL 语句从 "JERRY" 表中选取所有列:
实例1:SELECT * FROM JERRY
实例2:SELECT [姓名],[地市] FROM JERRY (SELECT (字段1),(字段2)FROM (表)
SQL SELECT DISTINCT使用语法
DISTINCT用于返回不同值,在一个列表中一个字段有可能会出现相同值,(DISTINCT)返回不同值。
从 "JERRY" 表的 "电话" 字段中选取唯一不同的值,也就是去掉 "电话" 列重复值:
实例:SELECT DISTINCT 电话 FROM JERRY
SQL WHERE使用语法
WHERE 子句用于过滤记录,提取那些满足条件的记录。
从 "JERRY" 表的中选取地市为 "广西" 的所有记录:
实例:SELECT * FROM JERRY [地市] WHERE [地市]='广西'
SQL AND & OR使用语法
AND & OR基于一个以上的条件,如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。
AND实例: SELECT * FROM JERRY [地市] WHERE [地市]='广西' AND 电话='123'
OR实例:SELECT * FROM JERRY [地市] WHERE [地市]='广西' or 电话='8888'
AND & OR实例:SELECT * FROM JERRY [地市] WHERE [地市]='广西' AND 电话='123'or 电话='8888'
SQL ORDER BY使用语法
ORDER BY 关键字用于对结果集进行排序, DESC降序、ASC升序。
从 "JERRY" 表中选取所有网站,并按照 "电话" 列降序排序:
(倒序) ORDER BY实例:SELECT * FROM JERRY ORDER BY 电话 DESC
(升序) ORDER BY实例:SELECT * FROM JERRY ORDER BY 电话 ASC
SQL INSERT INTO使用语法
INSERT INTO 语句用于向表中插入新记录。
向 "JERRY" 表中插入一个新行
SQL UPDATE使用语法
UPDATE 语句用于更新表中已存在的记录。
将 JERRY 表中所有数据的 “小明” 改为 “张飞”,“电话” 改为 “7777”。
实例:UPDATE JERRY SET 姓名='张飞',电话='7777' WHERE [地市]='湖南'
SQL DELETE使用语法
DELETE 语句用于删除表中的行,有WHERE规定那条记录或者哪些记录被删除,如果省了WHERE,所有的记录都会被删除。
将 JERRY 表中所有数据电话为“7777”的记录。
实例:DELETE FROM JERRY WHERE 电话='7777'
SQL 高级教程
SQL SELECT TOP使用语法:
SELECT TOP 子句用于规定要返回的记录的数目。
从 "JERRY" 表中选取头两条记录.
实例:SELECT TOP 3 * FROM JERRY
从 "JERRY" 表中选取50%条记录.
实例:SELECT TOP 50 PERCENT * FROM JERRY
SQL LIKE使用语法:
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
姓名字段 以‘小’ 开头 的记录
实例1:SELECT * FROM JERRY WHERE 姓名 LIKE '小%'
姓名字段 以‘花’ 结尾 的记录
实例2:SELECT * FROM JERRY WHERE 姓名 LIK '%花'
姓名字段 含有 ‘花’ 的记录
实例3:SELECT * FROM JERRY WHERE 姓名 LIKE '%花%'
姓名字段 (不)含有 ‘花’ 的记录
实例4:SELECT * FROM JERRY WHERE 姓名 not LIKE '%花%'
SQL 通配符使用语法:
通配符一般可用于替代字符串中的任何其他字符。
通配符 | 描述 |
% | 代替0个或是多个字符 |
- | 代替一个字符 |
charlist | 字符列中的任何单一字符 |
【^charlist】或【!charlist】 | 不在字符列中的任何单一字符 |
实例:SELECT * FROM JERRY WHERE 姓名 LIKE '_花’
SQL IN使用语法:
IN 操作符允许WHERE 子句中规定多个值。
实例:SELECT * FROM JERRY WHERE 姓名 IN ('小红','小兰')
SQL BETWEEN使用语法:
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
实例1:SELECT * FROM JERRY WHERE 英文 BETWEEN '3' and '7'
实例2:SELECT * FROM JERRY WHERE 开始时间 BETWEEN '2021-01-11' and '2021-05-30'
SQL 别名使用语法:
通过使用 SQL,可以为表名称或列名称指定别名。
实例:SELECT 姓名 AS a,性别 as b,电话 as d,地市 as e,开始时间 AS c FROM JERRY
SQL 连接(JOIN)使用语法:
SQL join 用于把来自两个或多个表的行结合起来。
LEFT JOIN、RIGHT JOIN、INNER JOIN、OUTER JOIN 相关的 7 种用法。
不同的 SQL JOIN
-
INNER JOIN:如果表中有至少一个匹配,则返回行
-
LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
-
RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
-
FULL JOIN:只要其中一个表中存在匹配,则返回行
SQL INNER JOIN使用语法:
INNER JOIN(右连接) 关键字在表中存在至少一个匹配时返回行。
表1“JERRY”
表2“JERRY_copy1”
实例:SELECT* FROM JERRY a INNER JOIN JERRY_copy1 b ON a.id=b.id
SQL LEFT JOIN使用语法:
LEFT JOIN (左连接)关键字从左表(JERRY1)返回所有的行,即使右表(JERRY_copy1)中没有匹配。如果右表中没有匹配,则结果为 NULL。
实例:SELECT* FROM JERRY a LEFT JOIN JERRY_copy1 b ON a.id=b.id
SQL RIGHT JOIN使用语法:
RIGHT JOIN 关键字从右表(JERRY_copy1)返回所有的行,即使左表(JERRY1)中没有匹配。如果左表中没有匹配,则结果为 NULL。
实例:SELECT* FROM JERRY a RIGHT JOIN JERRY_copy1 b ON a.id=b.id
SQL FULL JOIN使用语法:
FULL OUTER JOIN 关键字只要左表(JERRY1)和右表(JERRY_copy1)其中一个表中存在匹配,则返回行.
FULL OUTER JOIN 关键字结合了 LEFT JOIN 和 RIGHT JOIN 的结果。
实例:SELECT* FROM JERRY a FULL OUTER JOIN JERRY_copy1 b ON a.id=b.id
SQL UNION使用语法:
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
表1“JERRY”
表2“JERRY_copy1”
实例:
SELECT 姓名 FROM JERRY
UNION
SELECT 姓名 FROM JERRY_copy1
ORDER BY 姓名
SQL SELECT INTO使用语法:
从一个表复制信息到另一个表。
SELECT INTO 语句从一个表复制数据,然后把数据插入到另一个新表中。
实例:
CREATE TABLE 新表
AS
SELECT * FROM 旧表
SQL INSERT INTO SELECT使用语法:
从一个表复制信息到另一个表。
INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到另一个新表中。
INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中。目标表中任何已存在的行都不会受影响。
SQL CREATE DATABASE使用语法:
CREATE DATABASE 语句用于创建数据库。
CREATE DATABASE (数据库名)
SQL CREATE TABLE使用语法:
CREATE TABLE 语句用于创建数据库中的表。
表由行和列组成,每个表都必须有个表名。
实例:
CREATE TABLE JERRY
(
姓名 varchar(255),
性别 varchar(255),
电话 varchar(255),
地市 varchar(255),
ID int,
)
SQL 约束使用语法:
-
NOT NULL - 指示某列不能存储 NULL 值。
-
UNIQUE - 保证某列的每行必须有唯一的值。
-
PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
-
FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。
-
CHECK - 保证列中的值符合指定的条件。
-
DEFAULT - 规定没有给列赋值时的默认值。
实例:
CREATE TABLE JERRY
(
ID int NOT NULL,
姓名 varchar(255),
性别 varchar(255),
电话 varchar(255),
地市 varchar(255)
PRIMARY KEY (ID) //PRIMARY KEY约束
)
SQL NOT NULL使用语法:
NOT NULL 约束强制列不接受 NULL 值。
NOT NULL 约束强制字段始终包含值。如果不向字段添加值,就无法插入新记录或者更新记录。
下面的 SQL 强制 "ID" 列、 "电话" 列以及 "姓名" 列不接受 NULL 值:
实例:
CREATE TABLE JERRY
(
ID int NOT NULL,
姓名 varchar(255) not null,
性别 varchar(255) ,
电话 varchar(255) not null ,
地市 varchar(255) not null
)
SQL UNIQUE使用语法:
UNIQUE 约束唯一标识数据库表中的每条记录。
UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。
PRIMARY KEY 约束拥有自动定义的 UNIQUE 约束。
实例:
CREATE TABLE JERRY
(
ID int NOT NULL,
姓名 varchar(255) not null,
性别 varchar(255) ,
电话 varchar(255) not null ,
地市 varchar(255) not null,
UNIQUE (ID )
)
SQL PRIMARY KEY使用语法:
PRIMARY KEY 约束唯一标识数据库表中的每条记录。
主键必须包含唯一的值。
主键列不能包含 NULL 值。
每个表都应该有一个主键,并且每个表只能有一个主键。
实例:
CREATE TABLE JERRY
(
ID int NOT NULL,
姓名 varchar(255) not null,
性别 varchar(255) ,
电话 varchar(255) not null ,
地市 varchar(255) not null,
PRIMARY KEY (ID )
)
SQL FOREIGN KEY使用语法:
一个表中的 FOREIGN KEY 指向另一个表中的 UNIQUE KEY(唯一约束的键)。
让我们通过一个实例来解释外键。
实例:
CREATE TABLE JERRY
(
JERRY_copy1_ID int NOT NULL,
JERRY_ID int NOT NULL,
JERRY_copy1_ID int,
PRIMARY KEY (JERRY_copy1_ID),
FOREIGN KEY (ID) REFERENCES JERRY(ID)
)