SQL基础 关键字

SQL语言类型

数据定义:create/alter/drop table/trigger/index/function/存储过程/约束/…
数据操纵:select/update/insert/delete
数据控制:grant/revoke

增删改查

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

例子

INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')

DELETE FROM 表名称 WHERE 列名称 = 值

例子

DELETE FROM Person WHERE LastName = 'Wilson' 

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

例子

UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing'
WHERE LastName = 'Wilson'

SELECT 列名称 FROM 表名称
SELECT * FROM 表名称

查select

distinct 去除重复项

SELECT DISTINCT 列名称 FROM 表名称

例子
如果要从 "Company" 列中选取所有的值,我们需要使用 SELECT 语句:

SELECT Company FROM Orders

"Orders"表:

Company     OrderNumber            
IBM           3532              
W3School    2356          
Apple       4698            
W3School    6953          

结果:

Company
IBM
W3School
Apple
W3School

请注意,在结果集中,W3School 被列出了两次。
如需从 Company" 列中仅选取唯一不同的值,我们需要使用 SELECT DISTINCT 语句:

SELECT DISTINCT Company FROM Orders 

结果:

Company
IBM
W3School
Apple

现在,在结果集中,"W3School" 仅被列出了一次。
参考:http://www.w3school.com.cn/sql/sql_distinct.asp

where

SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值,请不要使用引号。
eg.
数值:

SELECT * FROM Persons WHERE Year>1965

文本值:

SELECT * FROM Persons WHERE FirstName='Bush'

and/or

AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

order by + desc,asc + top,percent

eg.

SELECT TOP 2 * FROM Persons         --查询前2个
SELECT TOP 50 PERCENT * FROM Persons     --查询前百分之五十

like/not like+通配符

in+()

eg.

SELECT * FROM Persons WHERE LastName IN ('Adams','Carter')

between and

模板

SELECT column_name(s)
FROM table_name
WHERE column_name
BETWEEN value1 AND value2

eg.

SELECT * FROM Persons
WHERE LastName
BETWEEN 'Adams' AND 'Carter'

Alias =as 别名,查询列名或者搜索表名的别名 可省略

eg.

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

SELECT LastName AS Family, FirstName AS Name
FROM Persons

join on

join=inner join

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

left join

从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。
eg.

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

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

full join

只要其中某个表存在匹配(左右表匹配全部返回),FULL JOIN 关键字就会返回行。
eg.我们希望列出所有的人,以及他们的订单,以及所有的订单,以及定购它们的人。(人一张表,订单一张表)

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

结果集:

LastName    FirstName   OrderNo           
Adams           John            22456         
Adams           John            24562
Carter          Thomas          77895           
Carter          Thomas          44678          
Bush            George                   
                             34764      

FULL JOIN 关键字会从左表 (Persons) 和右表 (Orders) 那里返回所有的行
如果 "Persons" 中的行在表 "Orders" 中没有匹配,或者如果 "Orders" 中的行在表 "Persons" 中没有匹配,这些行同样会列出。
转载自:http://www.w3school.com.cn/sql/sql_join_full.asp

表连接 join

1)内连接:只连接匹配的行

select A.c1,B.c2 from A join B on A.c3 = B.c3;

2)左外连接:包含左边表的全部行(不管右边的表中是否存在与它们匹配的行)以及右边表中全部匹配的行

select A.c1,B.c2 from A left join B on A.c3 = B.c3;

3)右外连接:包含右边表的全部行(不管左边的表中是否存在与它们匹配的行)以及左边表中全部匹配的行

select A.c1,B.c2 from A right join B on A.c3 = B.c3;

4)全外连接:包含左、右两个表的全部行,不管在另一边的表中是否存在与它们匹配的行

select A.c1,B.c2 from A full join B on A.c3 = B.c3;

5)非等连接:使用等值以外的条件来匹配左、右两个表中的行

select A.c1,B.c2 from A join B on A.c3 != B.c3;     

6)交叉连接:生成笛卡尔积——它不使用任何匹配或者选取条件,而是直接将一个数据源中的每个行与另一个数据源的每个行一一匹配

select A.c1,B.c2 from A,B;       

union/union all

用于合并两个或多个 SELECT 语句的结果集
Union和Union All的区别之一在于对重复结果的处理,Union All会保留重复结果
转载自:http://www.w3school.com.cn/sql/sql_union.asp

select into

从一个表中选取数据,然后把数据插入另一个表中
常用于创建表的备份复件或者用于对记录进行存档
转载自:http://www.w3school.com.cn/sql/sql_select_into.asp

(auto) increment 自增长

null

NULL 值是遗漏的未知数据。
默认地,表的列可以存放 NULL 值。
eg.

SELECT LastName,FirstName,Address FROM Persons
WHERE Address IS NULL

SELECT LastName,FirstName,Address FROM Persons
WHERE Address IS NOT NULL

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

eg.
我们拥有下面这个 "Orders" 表:

O_Id    OrderDate   OrderPrice  Customer            
1        2008/12/29 1000            Bush            
2        2008/11/23 1600            Carter          
3        2008/10/05 700         Bush          
4       2008/09/28  300         Bush           
5      2008/08/06   2000            Adams           
6      2008/07/21   100         Carter   

现在,我们希望查找订单总金额少于 2000 的客户。
我们使用如下 SQL 语句:

SELECT Customer,SUM(OrderPrice) FROM Orders
GROUP BY Customer
HAVING SUM(OrderPrice)<2000       

结果集类似:
Customer SUM(OrderPrice)
Carter 1700
现在我们希望查找客户 "Bush" 或 "Adams" 拥有超过 1500 的订单总金额。
转载自:http://www.w3school.com.cn/sql/sql_having.asp

sql 不区分大小写

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,980评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,422评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,130评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,553评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,408评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,326评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,720评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,373评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,678评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,722评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,486评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,335评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,738评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,283评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,692评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,893评论 2 335

推荐阅读更多精彩内容