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



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值