数据库操作记载
基础语法
操作用法
SELECT - 从数据库表中获取数据
UPDATE - 更新数据库表中的数据
DELETE - 从数据库表中删除数据
INSERT INTO - 向数据库表中插入数据
CREATE DATABASE - 创建新数据库
ALTER DATABASE - 修改数据库
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引
SELECT
语法:
SELECT 列名称 FROM 表名称
例子:
SELECT LastName,FirstName FROM Persons
DISTINCT
释义:
关键词 DISTINCT 用于返回唯一不同的值
语法:
SELECT DISTINCT 列名称 FROM 表名称
WHERE
语法:
SELECT 列名称 FROM 表名称 WHERE 列 运算符 值
例子:
SELECT * FROM Persons WHERE City='Beijing'
提示: SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值,请不要使用引号。
操作符 | 描述 |
---|---|
= | 等于 |
<>(!=) | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
BETWEEN | 在某个范围内 |
LIKE | 搜索某种模式 |
AND & OR
释义:
AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。
语法:
例子:
SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William') AND LastName='Carter'
ORDER BY
释义:
ORDER BY 语句用于根据指定的列对结果集进行排序(默认ASC升序排序)。 如果您希望按照降序对记录进行排序,可以使用 DESC关键字。
语法:
例子:
SELECT Company, OrderNumber FROM Orders ORDER BY Company
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC
INSERT
释义:
INSERT INTO 语句用于向表格中插入新的行。
语法:
INSERT INTO 表名称 VALUES (值1, 值2,....)
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
例子:
INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')
INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees')
UPDATE
释义:
Update 语句用于修改表中的数据。
语法:
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
例子:
UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing' WHERE LastName = 'Wilson'
DELETE
释义:
DELETE 语句用于删除表中的行。
语法:
DELETE FROM 表名称 WHERE 列名称 = 值
例子:
1. DELETE FROM Person WHERE LastName = 'Wilson'
删除所有行,可以在不删除表的情况下删除所有的行。这意味着表的结构、属性和索引都是完整的
2. DELETE FROM table_name 或者 DELETE * FROM table_name
进阶
TOP
释义:
TOP 子句用于规定要返回的记录的数目(对于拥有数千条记录的大型表来说,TOP 子句是非常有用的)。
语法:
SELECT TOP number|percent column_name(s) FROM table_name
例子:
SELECT TOP 2 * FROM Persons
SELECT TOP 50 PERCENT * FROM Persons //(50%)
LIKE
释义:
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
语法:
SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern
例子:
SELECT * FROM Persons WHERE City LIKE 'N%' //"%" 可用于定义通配符(模式中缺少的字母)
SELECT * FROM Persons WHERE City LIKE '%g' //"%" 通配符在前代表选取以 "g" 为末尾的匹配项
SELECT * FROM Persons WHERE City NOT LIKE '%lon%' //NOT 不包含
通配符
释义:
- 在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。
- SQL 通配符必须与 LIKE 运算符一起使用。
语法:
例子:
SELECT * FROM Persons WHERE FirstName LIKE '_eorge' //第一个字符后是"eorge"
SELECT * FROM Persons WHERE City LIKE '[ALN]%' //选取居住的城市以 "A" 或 "L" 或 "N" 开头的人
SELECT * FROM Persons WHERE City LIKE '[!ALN]%' //选取居住的城市不以 "A" 或 "L" 或 "N" 开头的人
通配符 | 描述 |
---|---|
% | 代表零个或多个字符 |
_ | 仅替代一个字符 |
[charlist] | 字符列中的任何单一字符 |
[^charlist] | |
或者 | 字符列中的任何单一字符 |
[!charlist] |
IN
释义:
IN 操作符允许我们在 WHERE 子句中规定多个值
语法:
例子:
SELECT * FROM Persons WHERE LastName IN ('Adams','Carter') *//选取姓氏为 Adams 和 Carter 的人*
BETWEEN
释义:
- BETWEEN 操作符在 WHERE 子句中使用,作用是选取介于两个值之间的数据范围。
- 不同的数据库的取决范围不一样( 有的取决于"[)“,还有的”()“,或者”[]" ) 。
- 这些值可以是数值、文本或者日期。
语法:
SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2
SELECT column_name(s) FROM table_name WHERE column_name NOT BETWEEN value1 AND value2
例子:
SELECT * FROM Persons WHERE LastName BETWEEN 'Adams' AND 'Carter'
SELECT * FROM Persons WHERE LastName NOT BETWEEN 'Adams' AND 'Carter'
Alias
释义:
通过使用 SQL,可以为列名称和表名称指定别名(Alias)。
语法:
1. 表的 SQL Alias 语法
SELECT column_name(s) FROM table_name AS alias_name
2. 列的 SQL Alias 语法
SELECT column_name AS alias_name FROM table_name
例子:
1. SELECT po.OrderID, p.LastName, p.FirstName FROM Persons AS p, Product_Orders AS po
2. SELECT LastName AS Family, FirstName AS Name FROM Persons
JOIN
释义:
SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。
语法:
例子:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P
ORDER BY Persons.LastName
除了我们在上面的例子中使用的 INNER JOIN(内连接),还有其他的 JOIN 类型,以及它们之间的差异:
JOIN: 如果表中有至少一个匹配,则返回行
LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
FULL JOIN: 只要其中一个表中存在匹配,就返回行
…
释义:
语法:
例子:
常用梳理
Key主键 —— 唯一标识
以时间为例
create table 表名(时间 datetime PRIMARY KEY)