SQL高级进阶

限定返回的行数TOP

SELECT TOP number | percent 列名

FROM 表名

SELECT TOP 2 * FROMPersons                                     

SELECT TOP 50 PERCENT * FROMPersons

LIKE在WHERE字句中搜索制定模式 通配符等(%可以定义通配符,模式中缺少的字母)

SELECT * FROM Persons

WHERE City LIKE ‘N%’  (选取以N开头的城市的人,’%g’选取以g结尾的人,‘%ion%’选取包含ion的人,NOT LIKE ‘%ion%‘选取不包含ion的人)

通配符

描述

%

替代一个或多个字符

_

仅替代一个字符

[charlist]

字符列中的任何单一字符

[^charlist]或者[!charlist]

不在字符列中的任何单一字符

SELECT * FROM Persons

WHERE City LIKE ‘[ALN]%’  选取以ALN开头的人

IN 选取列名

SELECT 列名 FROM 表名

WHERE 列名 IN(‘Adams’,’Carter’)  选取颜色列为Apple Yellow的人

BETWEEN AND

第一个包括,第二个不包括。

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

别名语法: Alias 语法 指定别名

表别名

SELECT po.OrderID,p.LastName, p.FirstName

FROM Persons AS p, Product_Orders ASpo

WHEREp.LastName='Adams' AND p.FirstName='John'

列别名

SELECT LastName AS Family, FirstName AS Name

FROM Persons

Key主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的。

SELECT Persons.LastName,Persons.FirstName, Orders.OrderNo

FROM Persons, Orders

WHERE Persons.ID_P =Orders.ID_P

Join从两个或更多的表中获取结果INNER JOIN JOIN: 如果表中有至少一个匹配,则返回行

SELECT column_name(s)

FROM table_name1

INNER JOIN table_name2

ON table_name1.column_name =table_name2.column_name

 

SELECT Persons.LastName,Persons.FirstName, Orders.OrderNo

FROM Persons

INNER JOIN Orders

ON Persons.ID_P = Orders.ID_P

ORDER BY Persons.Lastname

LEFTJOIN: 即使右表中没有匹配,也从左表返回所有的行

RIGHTJOIN: 即使左表中没有匹配,也从右表返回所有的行

FULL JOIN: 只要其中一个表中存在匹配,就返回行 FULL JOIN 关键字会从左表 (Persons) 和右表 (Orders) 那里返回所有的行。如果 "Persons" 中的行在表 "Orders" 中没有匹配,或者如果"Orders" 中的行在表 "Persons" 中没有匹配,这些行同样会列出。

UNION用于合并两个或者多个SELECT语句的结果集,UNION 内部的SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。

UNIONALL  允许重复值的存在;UNION默认不允许重复值的存在,列名总是等于第一个SELECT语句中的列名。

SELECT**INTO 从一个表中选取数据插入另一个表中

SELECT*

INTO new_table_name[IN externaldatabase]

FROM old_table_name

选取两列

SELECT Lastname,Firstname 

INTO Persons_backup

FROM Persons

WHERE City=“Beijing”

选取全部,IN用于向另一个库中COPY

SELECT *

INTO Persons IN 'Backup.mdb'

FROM Persons

 

SELECT Persons.Lastname,Orders.OrderNo

INTO Persons_Order_Backup

INNER JOIN Orders

ON Persons.Id_P = Orders.Id_P

 

CREATDATABASE database_name

CREATTABLE table_name

(表名称 数据类型,

 表名称 数据类型,

 表名称 数据类型,

……

 

 

数据类型

描述

·         integer(size)

·         int(size)

·         smallint(size)

·         tinyint(size)

仅容纳整数。在括号内规定数字的最大位数。

·         decimal(size,d)

·         numeric(size,d)

容纳带有小数的数字。

"size" 规定数字的最大位数。"d" 规定小数点右侧的最大位数。

char(size)

容纳固定长度的字符串(可容纳字母、数字以及特殊字符)。

在括号中规定字符串的长度。  255

varchar(size)

容纳可变长度的字符串(可容纳字母、数字以及特殊的字符

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值