SQL DML数据操作语言介绍

SQL 对大小写不敏感

DML数据操作语言

1. SELECT – 从数据库表中获取数据

select LastName, FirstName from Persons

select * from Persons

去重复

select distinct company from Orders

WHERE 条件

select * from Persons where City = 'Beijing'//文本单引号

select * from Persons where Year > 1990 //数值
操作符 描述
= 等于
<> 不等于
> 大于
< 小于

=

大于等于
<= 小于等于
BETWEEN 在某个范围内
LIKE 搜索某种模式

LIKE 在 WHERE 子句中搜索列中的指定模式

//选取居住在以 "N" 开始的城市里的人
SELECT * FROM Persons WHERE City LIKE 'N%'

//选取居住在以 "g" 结尾的城市里的人
SELECT * FROM Persons WHERE City LIKE '%g'

//选取居住在包含 "lon" 的城市里的人
SELECT * FROM Persons WHERE City LIKE '%lon%'

//选取居住在不包含 "lon" 的城市里的人
SELECT * FROM Persons WHERE City NOT LIKE '%lon%'

AND 和 OR 基于一个以上的条件对记录进行过滤

如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。

如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter'

SELECT * FROM Persons WHERE firstname='Thomas' OR lastname='Carter'

SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William')
AND LastName='Carter'

ORDER BY 对结果集进行排序

ORDER BY 语句默认按照升序对记录进行排序 DESC 降序

SELECT Company, OrderNumber FROM Orders ORDER BY Company

SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC

TOP 规定要返回的记录的数目

对于拥有数千条记录的大型表来说,TOP 子句是非常有用的。

//等价于MySQL的LIMIT 
SELECT * FROM Persons LIMIT 5

//选取头两条记录
SELECT TOP 2 * FROM Persons

//表中选取 50% 的记录
SELECT TOP 50 PERCENT * FROM Persons

IN 允许我们在 WHERE 子句中规定多个值

//选取姓氏为 Adams 和 Carter 的人
SELECT * FROM Persons
WHERE LastName IN ('Adams','Carter')

BETWEEN 在 WHERE 子句中使用,作用是选取介于两个值之间的数据范围

BETWEEN … AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期

//以字母顺序显示介于 "Adams"(包括)和 "Carter"(不包括)之间的人
SELECT * FROM Persons
WHERE LastName
BETWEEN 'Adams' AND 'Carter'


//显示范围之外的人
SELECT * FROM Persons
WHERE LastName
NOT BETWEEN 'Adams' AND 'Carter'

Alias(别名)

//使用表名称别名
SELECT po.OrderID, p.LastName, p.FirstName
FROM Persons AS p, Product_Orders AS po
WHERE p.LastName='Adams' AND p.FirstName='John'

//使用一个列名别名
SELECT LastName AS Family, FirstName AS Name
FROM Persons

通配符

SQL 通配符可以替代一个或多个字符

SQL 通配符必须与 LIKE 运算符一起使用

通配符 描述
% 替代一个或多个字符
_ 仅替代一个字符
[charlist] 字符列中的任何单一字符
[^charlist]或者[!charlist] 不在字符列中的任何单一字符
//选取名字的第一个字符之后是 "eorge" 的人
SELECT * FROM Persons WHERE FirstName LIKE '_eorge'

//选取居住的城市以 "A" 或 "L" 或 "N" 开头的人
SELECT * FROM Persons WHERE City LIKE '[ALN]%'


//选取居住的城市不以 "A" 或 "L" 或 "N" 开头的人
SELECT * FROM Persons WHERE City LIKE '[!ALN]%'

JOIN

根据两个或多个表中的列之间的关系,从这些表中查询数据

UNION 合并两个或多个 SELECT 语句的结果集

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。

SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2

SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档。

//制作备份复件
SELECT *
INTO Persons_backup
FROM Persons

2. UPDATE – 更新数据库表中的数据

//更新某一行中的一个列
UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson' 

//更新某一行中的若干列
UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing'
WHERE LastName = 'Wilson'

3. DELETE – 从数据库表中删除数据

//删除某行
DELETE FROM Person WHERE LastName = 'Wilson' 

//删除所有行
DELETE * FROM table_name

4. INSERT INTO – 向数据库表中插入数据

//插入新的行
INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')

//在指定的列中插入数据
INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees')

DDL数据定义语言

CREATE DATABASE – 创建新数据库 ALTER DATABASE – 修改数据库 CREATE TABLE – 创建新表

CREATE TABLE Persons
(
Id_P int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

ALTER TABLE – 变更(改变)数据库表 DROP TABLE – 删除表 CREATE INDEX – 创建索引(搜索键)

DROP INDEX – 删除索引

约束 (Constraints)

约束用于限制加入表的数据的类型。

可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句)。

NOT NULL 不接受 NULL 值

UNIQUE UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。

PRIMARY KEY 拥有自动定义的 UNIQUE 约束。

请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。

– PRIMARY KEY

每个表都应该有一个主键,并且每个表只能有一个主键。

– FOREIGN KEY

– CHECK 限制列中的值的范围

– DEFAULT 用于向列中插入默认值

CREATE TABLE Persons
(
Id_P int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255) DEFAULT 'Sandnes'
CHECK (Id_P>0)
UNIQUE (Id_P)
)

索引

您可以在表中创建索引,以便更加快速高效地查询数据。

用户无法看到索引,它们只能被用来加速搜索/查询。

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐