【开篇】SQL 语句进阶篇-上

【1】SQL TOP 子句
top 子句用于规定要返回的记录的数目。
对于拥有数千条记录的大型表来说,top 子句是非常重要的。top 子句结合 order by 会很有用处,比如:查询最大值之类的。
但是需要注意的是:并不是所有的数据库系统都支持 top 子句。
1、SQL Server 的语法:使用 top 关键字
select top 数字 列名称 from 表名称 ;
或:选取 XX% 的记录
select top 数字 percent 列名称 from 表名称;
2、MySQL 的语法:使用 limit 关键字
select 列名称 from 表名称 limit 数字 ;
实例:选取 Orders 表中头4条记录

又例如:将 Orders 表按照 OrderNumber 排序后,选取前8条记录

3、Oracle 的语法:使用 rownum 关键字
select 列名称 from 表名称 where rownum <= 数字 ;
【2】SQL LIKE 操作符
like 操作符用于在 where 子句中搜索列中的指定模式。
1、like 语法
select 列名称 from 表名称 where 列名称 like 模式 ;
或
select 列名称 from 表名称 where 列名称 not like 模式 ;
---- 温馨提示 ----
模式中定义通配符(模式中缺少的字母),用 “ % ” 。
2、like 实例
原始 Orders 表:

(1)选取地址在以 ‘S’ 开头的公司

(2)选取地址在以 ‘A’ 结尾的公司

(3)选取地址在包含 ‘ER’ 的公司

(4)选取地址在不包含 ‘ER’ 的公司

【3】SQL 通配符
在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。
SQL 通配符必须与 like 运算符一起使用。
在 SQL 中,可使用以下通配符:

1、使用 % 通配符
从 “users” 表中选取姓为 “植” 的用户:

2、使用 _ 通配符
从 “users” 表中选取姓为 “植” ,名字第一个是任意字符,第二个是 “娇” 的用户:

【4】SQL IN 操作符
in 操作符允许在 where 子句中规定多个值。
1、in 语法
select 列名称 from 表名称 where 列名称 in(值1,值2,...) ;
2、in 实例
从表中选取名称为 Facebook 和 Oppo 的公司:

【5】SQL BETWEEN 操作符
between 操作符在 where 子句中使用,操作符 between ... and 会选取介于两个值之间的数据范围, 这些值可以是数值、文本或者日期。
1、between 语法
select 列名称 from 表名称 where 列名称 between 值1 and 值2 ;
或
select 列名称 from 表名称 where 列名称 not between 值1 and 值2 ;
2、between 实例
(1)显示名称介于 “Facebook”(包括) 和 “LinkedIn” (包括) 之间的公司

---- 注意事项 ----
不同的数据库对于 between...and 操作符的处理方式是有差异的。
a.某些数据库会列出介于 “Facebook” 和 “LinkedIn” 之间的公司,但不包括“Facebook” 和 “LinkedIn”;
b.某些数据库会列出介于 “Facebook” 和 “LinkedIn” 之间并包括 “Facebook” 和 “LinkedIn” 的公司;
c.某些数据库会列出介于 “Facebook” 和 “LinkedIn” 之间的公司,包括 “Facebook”,但不包括 “LinkedIn” 的公司;
(2)如果需要使用上面的例子显示范围之外的公司,使用 not 操作符

【6】SQL Alias(别名)
通过使用 SQL,可以为 表名称 或者 列名称 指定别名(Alias)。
1、Alias 语法
(1)表名称指定别名
select 列名称 from 表名称 as 别名;
(2)列名称指定别名
select 列名称 as 别名 form 表名称;
2、Alias 实例
(1)使用表名称别名

(2)使用列名称别名

【7】SQL JOIN
SQL join 用于根据两个或者多个表中的列之间的关系,从这些表中查询数据。
(1)Join 和 Key
有时为了得到完整的结果,我们需要从两个或更多的表中获取结果,就需要执行 join。
数据库中的表可通过 “键” 将彼此联系起来。主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的。在表中,每个主键的值都是唯一的。这样做的目的是在不重复每个表总的所有数据的情况下,把表间的数据交叉捆绑在一起。
(2)引用两个表

(3)使用 join

【8】SQL INNER JOIN 关键字
在表中存在至少一个匹配时,inner join 关键字返回行。
1、inner join...on 语法
select 列名称 from 表1名称 inner join 表2名称
on 表1名称.列名称 = 表2名称.列名称;
---- 温馨提示 ----
inner join 与 join 是相同的。
2、 inner join...on 实例

【9】SQL LEFT JOIN 关键字
left join 关键字会从 “左表(表1名称)” 那里返回所有的行,即使在 “右表(表2名称)” 中没有匹配的行。
1、left join...on 语法
select 列名称 from 表1名称 left join 表2名称
on 表1名称.列名称 = 表2名称.列名称;
---- 温馨提示 ----
在某些数据库中,left join 称为 left outer join 。
2、left join...on 实例

---- 温馨提示 ----
left join 关键字会从 左表(communities)那里返回所有的行,即使在 右表(community_full_name)中没有匹配的行。
【10】SQL RIGHT JOIN 关键字
right join 关键字会从 “右表(表2名称)” 那里返回所有的行,即使在 “左表(表1名称)” 中没有匹配的行。
1、right join...on 语法
select 列名称 from 表1名称 right join 表2名称
on 表1名称.列名称 = 表2名称.列名称;
---- 温馨提示 ----
在某些数据库中,left join 称为 right outer join 。
2、right join...on 实例

---- 温馨提示 ----
right join 关键字会从 右表(community_full_name)那里返回所有的行,即使在 左表(communities)中没有匹配的行。
【11】SQL FULL JOIN 关键字
只要其中某个表存在匹配,full join 关键字就会返回行。
1、full join...on 语法
select 列名称 from 表1名称 full join 表2名称
on 表1名称.列名称 = 表2名称.列名称;
---- 温馨提示 ----
在某些数据库中,full join 称为 full outer join 。
2、在 MySQL 是不支持 full join的。

【12】SQL UNION 和 UNION ALL 操作符
union 操作符用于合并两个或多个 select 语句的结果集。
请注意:union 内部的 select 语句必须拥有相同数量的列,列也必须拥有相似的数据类型。同时,每条 select 语句中的列的顺序必须相同。
1、union 语法
select 列名称 from 表1名称
union
select 列名称 from 表2名称;
---- 温馨提示 ----
默认地,union 操作符选取不同的值,重复的值不会重复选取。
2、union all 语法
select 列名称 from 表1名称
union all
select 列名称 from 表2名称;
---- 温馨提示 ----
union all 操作符和 union 操作符几乎是等效的,不过 union all 操作符会列出所有的值,包括重复的值。
3、union 和 union all 实例
(1)union:若既是管理员又是用户,则只会选取一次名字

(2)union all:若既是管理员又是用户,会选取两次名字

【13】SQL SELECT INTO 语句
select into 语句从一个表中选取数据,然后把数据插入另一个表中。常用于创建表的备份复件,或者用于对记录进行存档。
1、select into 语法
(1)把所有的列插入新表
select * into 新表名称 [in externaldatabase] from 旧表名称;
(2)只把希望的列插入新表
select 列名称 into 新表名称 [in externaldatabase] from 旧表名称;
2、select into 实例
(1)制作备份复件

---- 温馨提示 ----
MySQL 数据量是不支持 select into 语句的,可以用其他办法解决。

(2)带有 where 子句

(3)被连接的表

【14】SQL CREATE DATABASE 语句
create database 用于创建数据库。
1、create database 语法
create database 数据库名称;
2、create database 实例

【15】SQL CREATE TABLE 语句
create table 用于创建数据库中的表。
1、create table 语法
create table 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型
);
---- 温馨提示 ----
(1)最后一个列的数据类型后面没有 ,符号
(2)数据类型规定了列可容纳何种数据类型。如下包含了SQL中最常用的数据类型:

2、create table 实例


---- 后记 ----
学习链接:http://www.w3school.com.cn/sql/index.asp
- End -
若有错误,请随时指正。也欢迎大家一起讨论,让我们野蛮成长!
网友评论