本文包括对数据表中数据的增删改查基本操作
基础
可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。
SQL (结构化查询语言)是用于执行查询的语法。但是 SQL 语言也包含用于更新、插入和删除记录的语法。
查询和更新指令构成了 SQL 的 DML 部分:
SELECT - 从数据库表中获取数据
UPDATE - 更新数据库表中的数据
DELETE - 从数据库表中删除数据
INSERT INTO - 向数据库表中插入数据
SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。
SQL 中最重要的 DDL 语句:
CREATE DATABASE - 创建新数据库
ALTER DATABASE - 修改数据库
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引
select
SELECT 列名称 FROM 表名称
获取指定一列或多列
SELECT * FROM 表名称
获取所有列
SELECT LastName,FirstName FROM Persons
SELECT DISTINCT
去掉重复的
SELECT DISTINCT 列名 FROM 表名
SELECT DISTINCT Company FROM Orders
WHERE 子句
用于规定选择的标准
在select后加子句:WHERE 列 运算符 值
运算符:
= 等于
<> 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于
BETWEEN 在某个范围内
LIKE 搜索某种模式
SELECT * FROM Persons WHERE City='Beijing'
用单引号环绕文本值,数字不要引号
AND & OR 运算符
可以多个条件一起过滤
# 查找姓为 thomos 名为carter的人
SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter'
SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William')
AND LastName='Carter'
ORDER BY 子句
根据指定的列对结果集进行排序。默认升序,降序用DESC 关键字
# 优先使用公司名排序,公司名相同的用号码排序
SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber
# 优先使用公司名逆序排序,公司名相同的用号码顺序排序
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC
INSERT INTO 语句
插入新的行
指定值
INSERT INTO 表名称 VALUES (值1, 值2,....)
指定列名和值,不指定的列值为空
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees')
update
修改数据,修改一列或多列
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
# 为 lastname 是 "Wilson" 的人添加 firstname:
UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson'
# 修改地址 城市
UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing' WHERE LastName = 'Wilson'
DELETE 语句
删除行
DELETE FROM 表名称 WHERE 列名称 = 值
DELETE FROM Person WHERE LastName = 'Wilson'
删除所有行:
DELETE FROM table_name
DELETE * FROM table_name