SQL语句大全

SQL语句表


语句

语法

作用

备注


SELECT

SELECT 列名称 FROM 表名称

从表中选取数据

选取/过滤


SELECT * FROM 表名称

表中选取所有的列


SELECT DISTINCT 列名称 FROM 表名称

返回唯一不同的值


WHERE子句

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

有条件地从表中选取数据


AND和OR

运算符

SELECT 列名称 FROM 表名称 

WHERE condition

AND/OR condition

一个以上的条件对记录进行过滤


ORDER BY

子句

SELECT column_name(s)

FROM table_name

ORDER BY column_name [ASC|DESC]

对结果集进行排序


INSERT INTO

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

向表格中插入新的行

添加


INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,..)

指定所要插入数据的列


Update

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

修改表中的数据

修改


DELETE

DELETE FROM 表名称 WHERE 列名称 = 值

删除表中的行

删除


DELETE * FROM table_name 或 DELETE FROM table_name

删所有行,但表的结构、属性和索引都是完整的


TOP子句

SELECT TOP number/percent column_name(s)

FROM table_name

规定要返回的记录的数目

选取/过滤


LIKE

操作符

SELECT column_name(s)

FROM table_name

WHERE column_name LIKE pattern

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


通配符

%  _   [charlist]    [!charlist]

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


IN

操作符

SELECT column_name(s)

FROM table_name

WHERE column_name IN (value1,value2,...)

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


BETWEEN

操作符

SELECT column_name(s)

FROM table_name

WHERE column_name

BETWEEN value1 AND value2

BETWEEN...AND 

会选取介于两个值之间的数据范围


Alias

(别名)


SELECT column_name(s) FROM table_name

AS alias_name

表名称指定别名(Alias)。



SELECT column_name AS alias_name

FROM table_name

列名别名


INNER JOIN

 关键字

SELECT column_name(s) FROM table_name1

INNER JOIN table_name2 

ON table_name1.column_name=table_name2.column_name

在表中存在至少一个匹配时,

INNER JOIN 关键字返回行。

**INNER JOIN 与 JOIN 是相同的



LEFT JOIN 

关键字

SELECT column_name(s) FROM table_name1

LEFT JOIN table_name2 

ON table_name1.column_name=table_name2.column_name

LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。



RIGHT JOIN 

关键字

SELECT column_name(s) FROM table_name1

RIGHT JOIN table_name2 

ON table_name1.column_name=table_name2.column_name

RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。



FULL JOIN

关键字

SELECT column_name(s) FROM table_name1

FULL JOIN table_name2 

ON table_name1.column_name=table_name2.column_name

只要其中某个表存在匹配,

FULL JOIN 关键字就会返回行



UNION操作符

SELECT column_name(s) FROM table_name1

UNION

SELECT column_name(s) FROM table_name2

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

见3


SELECT column_name(s) FROM table_name1

UNION ALL

SELECT column_name(s) FROM table_name2

允许重复的值,请使用 UNION ALL



SELECT INTO

SELECT *

INTO new_table_name [IN externaldatabase] 

FROM old_tablename

创建表的备份复件

把所有的列插入新表



SELECT column_name(s)

INTO new_table_name [IN externaldatabase] 

FROM old_tablename

只把希望的列插入新表



CREATE DATABASE

CREATE DATABASE database_name

创建数据库



CREATE TABLE 

CREATE TABLE 表名称

(

列名称1 数据类型,

列名称2 数据类型,

....

)

创建数据库中的表



NOT NULL

约束


CREATE TABLE Persons

(

Id_P int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

NOT NULL 约束强制列不接受 NULL 值。  NOT NULL 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新纪录或者更新记录



UNIQUE约束

CREATE TABLE Persons

(

Id_P int NOT NULL UNIQUE,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

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



ALTER TABLE Persons

DROP CONSTRAINT uc_PersonID

撤销 UNIQUE 约束




PRIMARY KEY 

约束

CREATE TABLE Persons

(

Id_P int NOT NULL PRIMARY KEY,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

PRIMARY KEY 约束唯一标识数据库表中的每条记录.主键必须包含唯一的值.主键列不能包含 NULL 值。每个表应该都一个主键,并且每个表只能有一个主键。



ALTER TABLE Persons

DROP CONSTRAINT pk_PersonID

撤销 PRIMARY KEY 约束



FOREIGN KEY 

约束

CREATE TABLE Orders

(

O_Id int NOT NULL PRIMARY KEY,

OrderNo int NOT NULL,

Id_P int FOREIGN KEY REFERENCES Persons(Id_P)

)

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



CREATE TABLE Orders

(

O_Id int NOT NULL,

OrderNo int NOT NULL,

Id_P int,

PRIMARY KEY (O_Id),

CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P)

REFERENCES Persons(Id_P)

)

命名 FOREIGN KEY 约束,以及为多个列定义 FOREIGN KEY 约束



ALTER TABLE Orders

DROP CONSTRAINT fk_PerOrders

撤销 FOREIGN KEY 约束



CHECK 约束

CREATE TABLE Persons

(

Id_P int NOT NULL CHECK (Id_P>0),

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

限制列中的值的范围



CREATE TABLE Persons

(

Id_P int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')

)

命名 CHECK 约束,以及为多个列定义 CHECK 约束



ALTER TABLE Persons

DROP CONSTRAINT chk_Person

撤销 CHECK 约束



DEFAULT 约束

CREATE TABLE Persons

(

Id_P int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255) DEFAULT 'Sandnes'

)

向列中插入默认值



ALTER TABLE Persons

ALTER COLUMN City DROP DEFAULT

撤销 DEFAULT 约束



CREATE INDEX

CREATE INDEX index_name

ON table_name (column_name)

创建索引



CREATE UNIQUE INDEX index_name

ON table_name (column_name)

在表上创建一个唯一的索引



DROP

DROP INDEX table_name.index_name

删除表格中的索引

删除


DROP TABLE 表名称

删除表(表的结构、属性以及索引也会被删除):


DROP DATABASE 数据库名称

删除数据库


TRUNCATE TABLE 表名称

除去表内的数据,但并不删除表本身


ALTER TABLE

ALTER TABLE table_name

ADD column_name datatype

在已有的表中添加列



ALTER TABLE table_name 

DROP COLUMN column_name

删除表中的列



ALTER TABLE table_name

ALTER COLUMN column_name datatype

改变表中列的数据类型



AUTO INCREMENT

 字段


CREATE TABLE Persons

(

P_Id int PRIMARY KEY IDENTITY,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

在每次插入新纪录时,自动地创建主键字段的值。




CREATE VIEW

CREATE VIEW view_name AS

SELECT column_name(s)

FROM table_name

WHERE condition

创建视图



SQL CREATE OR REPLACE VIEW Syntax

CREATE OR REPLACE VIEW view_name AS

SELECT column_name(s)

FROM table_name

WHERE condition

更新视图




SQL DROP VIEW Syntax

DROP VIEW view_name

撤销视图



Date 函数





NULL 值


NULL 值是遗漏的未知数据



NULL 函数





函数的语法

SELECT function(列) FROM 表




AVG 函数

SELECT AVG(column_name) FROM table_name

AVG 函数返回数值列的平均值。NULL 值不包括在计算中。



COUNT() 函数

SELECT COUNT(column_name) FROM table_name

返回匹配指定条件的行数



SELECT COUNT(*) FROM table_name

COUNT(*) 函数返回表中的记录数



SELECT COUNT(DISTINCT column_name) FROM table_name

 函数返回指定列的不同值的数目



FIRST() 函数

SELECT FIRST(column_name) FROM table_name

返回指定的字段中第一个记录的值



LAST() 函数

SELECT LAST(column_name) FROM table_name

返回指定的字段中最后一个记录的值



MAX() 函数

SELECT MAX(column_name) FROM table_name

返回一列中的最大值。NULL 值不包括在计算中



MIN() 函数

SELECT MIN(column_name) FROM table_name




SUM() 函数

SELECT SUM(column_name) FROM table_name

返回数值列的总数(总额)



GROUP BY 语句

SELECT column_name, aggregate_function(column_name)

FROM table_name

WHERE column_name operator value

GROUP BY column_name

结合合计函数,根据一个或多个列对结果集进行分组



HAVING 子句

SELECT column_name, aggregate_function(column_name)

FROM table_name

WHERE column_name operator value

GROUP BY column_name

HAVING aggregate_function(column_name) operator value

在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用



UCASE() 函数

SELECT UCASE(column_name) FROM table_name

把字段的值转换为大写



LCASE() 函数

SELECT LCASE(column_name) FROM table_name

把字段的值转换为小写



MID() 函数

SELECT MID(column_name,start[,length]) FROM table_name

从文本字段中提取字符



LEN() 函数

SELECT LEN(column_name) FROM table_name

返回文本字段中值的长度



ROUND() 函数

SELECT ROUND(column_name,decimals) FROM table_name

把数值字段舍入为指定的小数位数



NOW() 函数

SELECT NOW() FROM table_name

返回当前的日期和时间



FORMAT()

 函数

SELECT FORMAT(column_name,format) FROM table_name

对字段的显示进行格式化



注释:1.SQL 语句对大小写不敏感。SELECT 等效于 select。

     2.WHERE子句条件值周围使用的是单引号。SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值,请不要使用引号。

     3.请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。

     4.MIN 和 MAX 也可用于文本列,以获得按字母顺序排列的最高或最低值。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值