[玩转SQL]:01 使用SELECT语句

使用SELECT语句


SQL规范

    1) SQL语句不区分大小写

    ++ 推荐关键字使用大写,子句使用小写,提高可读性.

 

    2) SQL语句可以书写成一行也可以书写成多行

    ++推荐一个关键字 + 对应子句占据一行.

 

    3) 关键字不可以缩写也不可以换行

    ++ SQL*Plus语句可以缩写.

   

    4) SQL结束符

    ++ SQL结束符可以是分号";",也可以使斜杠"/",推荐使用分号";".


SELECT 语句

SELECT作用主要用于查询数据,不会对数据进行更改.


SELECT 主要用于三种功能:

    1) 查询列

    2) 查询行

    3) 多表查询


语法:

SELECT * | {[DISTINCT] column|expression [alias]...} 
FROM   table; 

{} 大括号里边出现的内容为0-N次;

[] 中括号里边出现的内容为0-1次;

|  竖线表示或者.


SQL*Plus中数据显示规范,数字右对齐,字符串和日期左对齐,表头全部大写字母.


--查询所有的列
SELECT *  --*代表全部列. 
FROM   departments;
SELECT department_id, department_name, manager_id, location_id 
FROM   departments; 

wKioL1O4f8CyfsTHAAFThOey_ME980.jpg

上述两种查询效果相同,执行上还是有细微差别的.

若是交互式查询建议使用*来代替department_id, department_name, manager_id,location_id写法来提高书写速度.

若是使用程序查询所有列建议使用department_id,department_name,manager_id, location_id写法.

若写成*的方式数据库会首先会获取DEPARTMENTS表的所有列,然后将*转换为department_id,department_name, manager_id,location_id后执行SQL语句,会延缓程序的执行速度.


--查询指定的列
SELECT department_id, location_id 
FROM   departments; 

wKioL1O4hAng43EkAACDEskarw0470.jpg


SELECT location_id, department_id 
FROM   departments; 

wKiom1O4hJmRs1KIAACGv4blUaU593.jpg

SELECT子句中列的书写顺序决定显示的顺序.


使用算术表达式

SELECT last_name,salary, salary + 300 
FROM   employees; 

wKiom1O4hhaw8lbiAADvIV7Zu-s579.jpg

除FROM子句中不能使用算数表达式其余子句均可以使用算数表达式.

算数表达式的优先级与数学中相同.


关于NULL值

计算机是二进制,非0即1的二元逻辑.

NULL值是数据库中特有的值.既不是True也不是False.NULL不等于0或者空字符串.

NULL值是一种中间状态.

SELECT last_name, job_id, salary, commission_pct 
FROM   employees; 

wKioL1O4h1uAcHytAAEeksv6-VU904.jpg

主键值不允许有NULL值.

如果算数表达式中数字与NULL值进行运算,那么结果为NULL.

SELECT last_name, 12*salary*commission_pct 
FROM   employees; 

wKiom1O4iCHD6daxAACWO7vY_BE876.jpg


列别名

1)重命名列头

2)别名可用于算数表达式中

3)别名的用法

++ 需要查询的列+空格+别名

SELECT salary lol     
FROM   employees; 

wKioL1O4iSDQeo2cAABGcQq_W0k833.jpg

++ 需要查询的列+AS+别名

SELECT salary AS lol 
FROM   employees; 

wKioL1O4iZrAb_UsAABGefQM-NY507.jpg

4)如果别名中带有特殊字符(#、$..)或者想让别名在显示中按照自己别名的大小写显示需要加上双引号"".

SELECT salary AS "#lol#"     
FROM   employees; 

wKiom1O4ijbzmyLMAABH-h2_a3o493.jpg


链接操作符

操作符 ||(两个竖线)

SELECT last_name || job_id AS "lol" 
FROM   employees; 

wKioL1O4isWhO9MPAACe4KChHhU562.jpg

链接起来很难读,可以加上空格.

SELECT last_name || ' ' || job_id AS "lol" 
FROM   employees; 

wKiom1O4i5OA-V84AACpTBSYG1g914.jpg

或者其他字符.

SELECT last_name || ' is a ' || job_id AS "lol"   
FROM   employees; 

wKioL1O4jA2SPeflAADacUaj8LI306.jpg

如果要显示单引号'可以使用q'[' ]'

不一定要使用[],可以使用任意成对的字符,如<>{}. ..

SELECT last_name || ' ' || q'[is' a]' || ' '|| job_id AS "lol" 
FROM   employees; 

wKioL1O4jLKCZePqAADg0fcLPv0032.jpg


重复列

操作符DISTINCT

数据表中经常有重复的数据,使用DISTINCT操作符可以去除重复的数据.

SELECT COUNT(job_id)   
FROM   employees; 

wKiom1O4kFfy-RFhAAAdZQPrc6A407.jpg

SELECT COUNT(DISTINCT job_id)   
FROM   employees; 

wKiom1O4kPiBJb5rAAAozoK2qho446.jpg

DISTINCT作用于后边所有的列.


查看表结构

操作符DESC[RIBE]

DESCRIBE是SQL*Plus的命令因此可以简写为DESC

DESC主要用于显示表的结构.

DESC employees 

wKiom1O4lD_wnFHGAAFVd_TQlTs202.jpg


--------------------------------------------------------------------------------------
版权所有,转载时必须以链接方式注明源地址,否则追究法律责任!

QQ    :   413844436
Email  :   softomg@163.com
Blog   :   http://blog.csdn.net/softomg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值