最全SQL常用命令大全必备知识整理

关键字        功能语法
DISTINCT去重复值SELECT DISTINCT 列名称 FROM 表名称
WHERE条件查询

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

运算符(等于=|不等于<>|大于>|小于<|大于等于>=|     小于等于<=| BETWEEN    在某个范围内| LIKE    搜索某种模式)

AND 和 ORWHERE 子语句中把两个或多个条件结合起来SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William') AND LastName='Carter'
ORDER BY

默认ASC升序

DESC则降序

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

Update修改表中数据UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing'
WHERE LastName = 'Wilson'
DELETE删除表行DELETE FROM Person WHERE LastName = 'Wilson' 
删除所有行
DELETE * FROM table_name
TOP取数据取前两条:SELECT TOP 2 * FROM Persons
取前50%:SELECT TOP 50 PERCENT * FROM Persons
LIKE操作符

%:代表零个或多个字符

_ :仅替代一个字符

[!charlist]:不在字符列中的任何单一字符

查N开头:SELECT * FROM Persons
WHERE City LIKE 'N%'

查G结尾:SELECT * FROM Persons
WHERE City LIKE '%G'

IN操作符允许我们在 WHERE 子句中规定多个值
选取姓氏为 Adams 和 Carter 的人:
SELECT * FROM Persons
WHERE LastName IN ('Adams','Carter')
BETWEEN范围取值

范围查询年龄:

SELECT column_name(s)
FROM table_name
WHERE age
BETWEEN 30 AND 40

AS (鸡肋功能)别名只是为了使查询程序更易阅读和书写

SELECT po.OrderID, p.LastName, p.FirstName
FROM Persons AS p, Product_Orders AS po
WHERE p.LastName='Adams' AND p.FirstName='John'

等价于

SELECT Product_Orders.OrderID, Persons.LastName, Persons.FirstName
FROM Persons, Product_Orders
WHERE Persons.LastName='Adams' AND Persons.FirstName='John'

inner Join用于根据两个或多个表中的列之间的关系,从这些表中查询数据SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons, Orders
WHERE Persons.Id_P = Orders.Id_P 
等价于
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P
ORDER BY Persons.LastName
LEFT JOIN左表为主返回行,不管右表是否匹配

查所有订购人以及订购单:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
LEFT JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName

RIGHT JOIN右表为主返回行,不管左表是否匹配

查所有定购单以及订购人:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
RIGHT JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName

FULL JOIN列出所有

查所有人订购人,所有订购单:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
FULL JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName

UNION 和 UNION ALL

结果集

UNION允许重复UNION ALL不许重复

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2
SELECT INTO把查询结果备份成一个表SELECT *
INTO new_table_name [IN externaldatabase] 
FROM old_tablename
CREATE DATABASE创建数据库CREATE DATABASE database_name
CREATE TABLE创建表

CREATE TABLE Persons
(
Id_P int NOT NULL AUTO_INCREMENT,:不能为空值,自动填写主键值
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

UNIQUE (Id_P) :唯一标识一条记录可以多个

PRIMARY KEY (Id_P):唯一标识一条记录只能一个

foreign key (Id_P):外键约束,意思就是该字段与另外一张表有联系.好比儿子必定有爸爸,要是有人想把爸爸K掉,儿子就肯定不干了!反之没儿子的人如果要被K,就没人管啦

CHECK (Id_P>0):限制值

City varchar(255) DEFAULT 'Sandnes':默认值

CREATE INDEX

比如你要从一个有一万条记录的表中读取记录,那么如果有索引,他会通过索引定位,找到你要找的记录,速度比一个一个记录的扫描表快很多很多倍。

CREATE INDEX PersonIndex
ON Person (LastName, FirstName)
DROP 删除操作删除索引:DROP INDEX index_name 数据库不同则语法存在差异,自行百度
删除表:DROP TABLE 表名称
仅删除表格数据:TRUNCATE TABLE 表名称
删除数据库:DROP DATABASE 数据库名称
ALTER TABLE添加、修改、删除列

添加列:ALTER TABLE table_name
ADD column_name datatype

删除列:ALTER TABLE table_name 
DROP COLUMN column_name

修改列:ALTER TABLE Persons
ALTER COLUMN Birthday year

VIEW                视图是一个虚拟表CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition
DATE日期函数

MySQL Date 中的函数用法

NOW()    返回当前的日期和时间
CURDATE()    返回当前的日期
CURTIME()    返回当前的时间
DATE()    提取日期或日期/时间表达式的日期部分
EXTRACT()    返回日期/时间按的单独部分
DATE_ADD()    给日期添加指定的时间间隔
DATE_SUB()    从日期减去指定的时间间隔
DATEDIFF()    返回两个日期之间的天数
DATE_FORMAT()    用不同的格式显示日期/时间

SQL Server中的函数用法
GETDATE()    返回当前日期和时间
DATEPART()    返回日期/时间的单独部分
DATEADD()    在日期中添加或减去指定的时间间隔
DATEDIFF()    返回两个日期之间的时间
CONVERT()    用不同的格式显示日期/时间

RDBMS关系数据库系统是 SQL 的基础,也是所有现代数据库系统诸如 Oracle、SQL Server、IBM DB2、Sybase、MySQL 以及 Microsoft Access 的基础。
函数

用法:SELECT function(列) FROM 表

AVG(column)    返回某列的平均值
COUNT(column)    返回某列的行数(不包括 NULL 值)
COUNT(*)    返回被选行数
FIRST(column)    返回在指定的域中第一个记录的值
LAST(column)    返回在指定的域中最后一个记录的值
MAX(column)    返回某列的最高值
MIN(column)    返回某列的最低值
SUM(column)    返回某列的总和

UCASE(column) 函数把字段的值转换为大写

LCASE(column) 函数把字段的值转换为小写

MID() 函数用于从文本字段中提取字符

LEN() 函数返回文本字段中值的长度

ROUND() 函数用于把数值字段舍入为指定的小数位数

FORMAT() 函数用于对字段的显示进行格式化

GROUP BY分组查询:主要用于某个重复值,列属性的分开查询操作

查询每个客户的总金额:

SELECT Customer,SUM(OrderPrice) FROM Orders
GROUP BY Customer

HAVING中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用查找客户 "Bush" 或 "Adams" 拥有超过 1500 的订单总金额:SELECT Customer,SUM(OrderPrice) FROM Orders
WHERE Customer='Bush' OR Customer='Adams'
GROUP BY Customer
HAVING SUM(OrderPrice)>1500

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值