w3school SQL教程整理

SELECT:用于从表中选取数据

SELECT 列名称 FROM 表名称

DISTINCT:用于返回唯一不同的值

SELECT DISTINCT 列名称 FROM 表名称

WHERE:有条件地从表中选取数据

SELECT 列名称 FROM 表名称 WHERE 列 运算符 值

AND & OR:在 WHERE 子语句中把两个或多个条件结合起来

ORDER BY:用于对结果集进行排序

SELECT 列名称 FROM 表名称 ORDER BY 列名称

INSERT INTO:用于向表格中插入新的行

INSERT INTO 表名称 VALUES (值1, 值2,….))
INSERT INTO table_name (列1, 列2,…) VALUES (值1, 值2,….))

UPDATE:用于修改表中的数据

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

DELETE:用于删除表中的行

DELETE FROM 表名称 WHERE 列名称 = 值

TOP:用于规定要返回的记录的数目

SQL Server :
SELECT TOP number|percent 列名称 FROM 表名称
MySQL :
SELECT 列名称 FROM 表名称 LIMIT number
Oracle :
SELECT 列名称 FROM 表名称 WHERE ROWNUM <= number

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

SELECT 列名称 FROM 表名称 WHERE 列名称 LIKE pattern

通配符:用于在 WHERE 子句中搜索列中的指定模式

IN:在 WHERE 子句中规定多个值

SELECT 列名称 FROM 表名称 WHERE 列名称 IN (value1,value2,…)

BETWEEN :用于选取介于两个值之间的数据范围

SELECT 列名称 FROM 表名称
WHERE 列名称 BETWEEN value1 AND value2

Alias:用于为列名称和表名称指定别名(Alias)

表:SELECT 列名称 FROM 表名称 AS alias_name
列:SELECT 列名称 AS alias_name FROM 表名称

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

SELECT 列名称 FROM 左表名称
INNER JOIN 右表名称
ON 左表名称.列名称=右表名称.列名称

INNER JOIN:
在表中存在至少一个匹配时,INNER JOIN 关键字返回行

LEFT JOIN:从左表那里返回所有的行,即使在右表中没有匹配的行

RIGHT JOIN:从右表 那里返回所有的行,即使在左表中没有匹配的行

FULL JOIN:只要其中某个表存在匹配,FULL JOIN 关键字就会返回行

UNION 和 UNION ALL:用于合并两个或多个 SELECT 语句的结果集(应有相同数量同类型的列)

内容不重复:
SELECT 列名称 FROM 左表名称
UNION
SELECT 列名称 FROM 右表名称

内容重复:
SELECT 列名称 FROM 左表名称
UNION ALL
SELECT 列名称 FROM 右表名称

SELECT INTO:从一个表中选取数据,然后把数据插入另一个表中

SELECT *
INTO 新表名[IN externaldatabase]
FROM 旧表名

CREATE DATABASE:用于创建数据库

CREATE DATABASE 数据库名称

CREATE TABLE:用于创建数据库中的表

CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
….
)

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

NOT NULL:强制列不接受 NULL 值

CREATE TABLE Persons(Id_P int NOT NULL)

UNIQUE :唯一标识数据库表中的每条记录

MYSQL:
CREATE TABLE Persons
(
Id int NOT NULL,
UNIQUE (Id)
)

SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
Id int NOT NULL UNIQUE
)

添加约束
ALTER TABLE Persons
ADD UNIQUE (Id)

PRIMARY KEY:
主键必须包含唯一的值。
主键列不能包含 NULL 值。
每个表都应该有一个主键,并且每个表只能有一个主键

MYSQL:
CREATE TABLE Persons
(
Id int NOT NULL,
PRIMARY KEY (Id)
)

FOREIGN KEY:一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY

MYSQL:
CREATE TABLE Persons
(
Id int NOT NULL,
FOREIGN KEY (Id) REFERENCES Persons(Id)
)

CHECK :用于限制列中的值的范围

My SQL:
CREATE TABLE Persons
(
Id int NOT NULL,
CHECK (Id>0)
)

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

My SQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
City varchar(255) DEFAULT ‘Sandnes’
)

CREATE INDEX:用于在表中创建索引

CREATE INDEX 索引名
ON 表名称(列名称)

创建一个唯一的索引。唯一的索引意味着两个行不能拥有相同的索引值
CREATE UNIQUE INDEX 索引名
ON 表名称(列名称)

撤销索引、表以及数据库:通过使用 DROP 语句,可以轻松地删除索引、表和数据库。
1. 使用 DROP INDEX 命令删除表格中的索引
2. DROP TABLE 语句用于删除表(表的结构、属性以及索引也会被删除)
3. DROP DATABASE 语句用于删除数据库:
4. TRUNCATE TABLE 命令(仅仅删除表格中的数据):

Microsoft SQLJet (以及 Microsoft Access):
DROP INDEX 索引名 ON 表名称
MS SQL Server:
DROP INDEX 表名称.索引名
IBM DB2 和 Oracle:
DROP INDEX 索引名
MySQL:
ALTER TABLE 表名称 DROP INDEX 索引名

ALTER TABLE:用于在已有的表中添加、修改或删除列

添加列
ALTER TABLE table_name
ADD column_name datatype

删除列
ALTER TABLE table_name
DROP COLUMN column_name

AUTO INCREMENT:在新记录插入表中时生成一个唯一的数字

MySQL
CREATE TABLE Persons
(
Id int NOT NULL AUTO_INCREMENT
)

SQL Server
CREATE TABLE Persons
(
Id int PRIMARY KEY IDENTITY
)

Access
CREATE TABLE Persons
(
Id int PRIMARY KEY AUTOINCREMENT,
)

Oracle
先创建序列
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10
在插入时使用序列
INSERT INTO Persons (Id)
VALUES (seq_person.nextval)

VIEW:视图是可视化的表。

Date:日期处理

NULL :NULL 值是遗漏的未知数据。通过IS NULL 和 IS NOT NULL进行选取

NULL 函数:SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数

SQL Server / MS Access
ISNULL(列名称,0)–如果值为NULL则返回0
Oracle
NVL(列名称,0)–如果值为NULL则返回0
MySQL
IFNULL(列名称,0)–如果值为NULL则返回0

数据类型:数据类型和范围

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值