MYSQL语句大全(SQL 高级教程)【上】

SQL 高级教程


Top            TOP 子句用于规定要返回的记录的数目。
                   对于拥有数千条记录的大型表来说,TOP 子句是非常有用的
                    MySQL 和 Oracle 中的 SQL SELECT TOP 是等价的
             注释:并非所有的数据库系统都支持 TOP 子句。
                    1.eg:    SELECT TOP number|percent column_name(s) FROM table_name
               从”Persons” 表中选取头两条记录
               2.eg:    SELECT TOP 2 * FROM Persons
                     从 “Persons” 表中选取 50% 的记录

                    3.eg:    SELECT TOP 50 PERCENT * FROM Persons
Like    
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式
                eg:    
SELECT column_name(s)
 

FROM table_name
 
WHERE column_name LIKE pattern
            eg:    
SELECT * FROM Persons 
WHERE City LIKE ‘N%’    (‘%xxxx%’ or ‘%X’  or ‘xx%’)
通配符    在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。
                SQL 通配符必须与 LIKE 运算符一起使用。

通配符 描述
% 替代一个或多个字符
_ 仅替代一个字符
[charlist] 字符列中的任何单一字符

[^charlist]

或者

[!charlist]

不在字符列中的任

                
我们希望从上面的 “Persons” 表中选取居住的城市以 “A” 或 “L” 或 “N” 开头的人
            eg:    
SELECT * FROM Persons 
WHERE City LIKE ‘[ALN]%’
        我们希望从上面的 “Persons” 表中选取居住的城市不以 “A” 或 “L” 或 “N” 开头的人:
            eg:    
SELECT * FROM Persons 
WHERE City LIKE ‘[!ALN]%’
        我们希望从上面的 “Persons” 表中选取名字的第一个字符之后是 “eorge” 的人:
            eg:       
SELECT * FROM Persons 
WHERE FirstName LIKE ‘_eorge’
In        IN 操作符允许我们在 WHERE 子句中规定多个值。
            eg:    SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,…)
Between And   操作符 BETWEEN … AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期
                eg:    SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2 (说明:字母顺序介于value1[‘包括’]和value2[‘不包括’]之间的人)
Alias                可以为列名称和表名称指定别名(Alias)  

                        表的 SQL Alias 语法

                             eg:    SELECT column_name(s) FROM table_name AS alias_name

                        列的 SQL Alias 语法

                            eg:    SELECT column_name AS alias_name FROM table_name
join                        用于根据两个或多个表中的列之间的关系,从这些表中查询数据

                            eg1:    SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons, Orders WHERE Persons.Id_P = Orders.Id_P 
                            eg2:    SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons INNER JOIN Orders ON Persons.Id_P = Orders.Id_P ORDER BY Persons.LastName 
inner join             同上面的join eg2

LEFT 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 RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行
 eg: 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        只要其中某个表存在匹配,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


    原文作者:SQL
    原文地址: https://blog.csdn.net/JF_2012/article/details/50443139
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞