欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SQL DML数据操作语言介绍

程序员文章站 2022-07-05 22:03:19
SQL 对大小写不敏感 DML数据操作语言 1. SELECT - 从数据库表中获取数据 select LastName, FirstName from Persons...

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)
)

索引

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

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