进阶关键字
sql语句有很多关键字除开最基础的增删改查,还有 top ,like,in, between, aliases, join,inner join, left join,
right,join, full join, Union,Select into, Create DB,create Table, Constraints, Not NUll,Unique, Unique, Primary Key, Foreign Key, Check, Default, Default, Create Index, Drop, Alter, Increment, View, Date, Nulls, isnull() 通配符等。
Top
TOP 子句用于规定要返回的记录的数目。
对于拥有数千条记录的大型表来说,TOP 子句是非常有用的。
注释:并非所有的数据库系统都支持 TOP 子句。
SELECT TOP number|percent column_name(s)
FROM table_name
like
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
语法:
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern
通配符
在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。
SQL 通配符必须与 LIKE 运算符一起使用。
可使用通配符 %(代表另个或多个字符),_(仅代表一个字符),[charlist] (字符列汇总的任何单一字符),[^charlist] 或者[!charlist] (不在字符列中的任何单一字符)
从上面的 “Persons” 表中选取居住的城市以 “A” 或 “L” 或 “N” 开头的人
SELECT * FROM Persons
WHERE City LIKE '[ALN]%'
in操作符
IN 操作符允许我们在 WHERE 子句中规定多个值。
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...)
BETWEEN 操作符
操作符 BETWEEN … AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。
SELECT column_name(s)
FROM table_name
WHERE column_name
BETWEEN value1 AND value2
如需使用上面的例子显示范围之外的人,请使用 NOT 操作符:
SELECT column_name(s)
FROM table_name
WHERE column_name
NOT BETWEEN value1 AND value
Alias(别名)
通过使用 SQL,可以为列名称和表名称指定别名(Alias)。
表的别名:
SELECT column_name(s)
FROM table_name
AS alias_name
列的 SQL Alias 语法:
SELECT column_name AS alias_name
FROM table_name
SQL JOIN
SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。
Join 和 Key
有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行 join。
数据库中的表可通过键将彼此联系起来。主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的。在表中,每个主键的值都是唯一的。这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起。
例子:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons, Orders
WHERE Persons.Id_P = Orders.Id_P
JOIN - 使用 Join
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P
ORDER BY Persons.LastName
不同的 JOIN
除了我们在上面的例子中使用的 INNER JOIN(内连接),我们还可以使用其他几种连接。
下面列出了您可以使用的 JOIN 类型,以及它们之间的差异。
- JOIN: 如果表中有至少一个匹配,则返回行
- LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
- RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
- FULL JOIN: 只要其中一个表中存在匹配,就返回行
INNER JOIN 关键字
在表中存在至少一个匹配时,IN