SQL学习(进阶一)

1、SELECT TOP 子句:用于规定要返回的记录的数目,对于拥有数千条记录的大型表来说,是非常有用的。

SQL语法格式:select top  number|percent 【column_name,】from table_name;//以number或百分比的形式查询一定量数据。

MySQL语法格式:select 【column_name,】from  table_name  limit  number;

Oracle语法格式:select 【column_name,】from  table_name  where rownum<=number;

注意:并非所有的数据库系统都支持 SELECT TOP 语句。 MySQL 支持 LIMIT 语句来选取指定的条数数据, Oracle 可以使用 ROWNUM 来选取。)

2、Like&Not Like操作符:用在where子句中进行模糊查询。

语法格式:select 【column_name,】 from table_name where  column_name  like  pattern;

(pattern为匹配模式,'%'代表任意多个字符,'_'代表一个字符,当匹配模式中有'_'或'%'时用escape来进行转义)

SQL中的通配符:(常在where子句中与like一起使用)

通配符描述
%替代 0 个或多个字符
_替代一个字符
[charlist]字符列中的任何单一字符
[^charlist] 或 [!charlist]不在字符列中的任何单一字符

 MySQL 中使用 REGEXP 或 NOT REGEXP 运算符 (或 RLIKE 和 NOT RLIKE) 来操作正则表达式。

3、IN操作符:IN 操作符允许您在 WHERE 子句中规定多个值。

语法格式:select 【column_name,】 from table_name  where  column_name  in  (value1,value2,....);

4、Between  And操作符:选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。

语法格式:select 【column_name,】 from table_name  where  column_name  between value1 and value2;

5、SQL 别名的使用:为表名称或列名称指定别名,让列名称的可读性更强。 

语法格式:select column_name as 'new_column_name' from table_name as 'new_table_name'

6、SQL Join连接:用于把来自两个或多个表的行结合起来。(下图展示出sql的各种连接关系) 

不同的SQL连接:(连接涉及到多表查询,可以说是sql中的一个重点

(1) INNER JOIN(JOIN):如果表中有至少一个匹配,则返回行;(注:INNER JOIN 与 JOIN 是相同的。)

语法格式:select 【column_name,】

                  from table_name1  join  table_name2

                  on  table1.column_name=table2.column_name;(要有相同的属性列)

查询结果:(包含两表中的所有属性,即新表属性=旧表属性之和)

(2) LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行;

语法格式:select 【column_name,】

                  from table_name1  left  join  table_name2 

                  on  table1.column_name=table2.column_name;(要有相同的属性列)

查询结果:(保留左表中所有数据,对于右表中没有的用NULL值处理) 

(3) RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行;

语法格式:select 【column_name,】

                  from table_name1  right  join  table_name2 

                  on  table1.column_name=table2.column_name;(要有相同的属性列)

 查询结果:(保留右表中所有数据,对于左表中没有的用NULL值处理)

(4) FULL JOIN:只要其中一个表中存在匹配,则返回行;

语法格式:select 【column_name,】

                  from table_name1  full join  table_name2 

                  on  table1.column_name=table2.column_name;(要有相同的属性列)

  查询结果:(保留左右表中所有数据,对于左右表中没有的用NULL值处理)

注释:FULL OUTER JOIN 关键字返回左表(Websites)和右表(access_log)中所有的行。如果 "左" 表中的行在 "右" 中没有匹配或者 "右" 表中的行在 "左" 表中没有匹配,也会列出这些行。MySQL中不支持 FULL OUTER JOIN。

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

语法格式:select 【column_name,】from table_name

                  union [ all ]

                  select 【column_name,】from table_name;

注:UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT 语句中的列的顺序必须相同。UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。)

查询结果:(实现两表查询结果的并集,列名与第一个select语句一致) 

8、Select Into语句:从一个表复制数据,然后把数据插入到另一个新表中。(实现数据的拷贝

语法格式:select 【column_name,】into new_table_name from table_name;

查询结果:(将查询数据写入新表中去,MySql中不支持此语法但支持insert into table_name select 语句) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值