1 select 语句的基本语法
可以通过select 语句从数据库中查询数据
主干语法:
select *| { [DISTINCT] column | expression [alias],...} from table;
复制
其中|表示或者
[]里面的内容也为可选项。
select是一个列或多个列的列表
from表示从哪个表中查找数据。
分号代表语句结束。
表由行和列组成,这个主干语法写出来的SQL,最后会返回客户端整张表的所有行,只是根据select后边指定的信息,输出局部列的信息。
2 整体框架
3 语法完善
在学习select语句的过程中就是在完善以上的主干基本语法。
select和from中间可以是:
- “*”:表示所有的列,真正在使用时不建议使用,最好写出具体列名
如:select * from emp;
查询公司所有员工的信息。 - 特定的列,一个或多个,多个列中间用逗号隔开:
如:select empno,ename from emp ;
查询公司所有员工的员工号和员工姓名 - 数学表达式:
如:select empno,sal,sal*1.5 from emp;
统计公司员工的所有原工资及增长50%之后的工资。 - 别名:有三种书写形式
列名 别名,列名 as 别名,列名 “别名”
其中对于别名中有大小写要求的或者有特殊字符的要用双引号。
如:select empno as id,ename name,sal “Salary” from emp;
输出的结果中id和name均为大写,Salary是原样输出的有大小区分,这就是加上双引号的区别。 - 字符串:可以是单引号引起来的普通字符
如:select ‘$3’ from emp ;
此时会在屏幕上打印输出14行$3字符。 - 连接符:||
可以通过||连接运算符来拼接表中字段信息和个性化输出内容,通常用来务批量处理的操作,拼SQL
或者结果加可读性
如:select ename||’ is a ’ || job from emp;
最后输出类似为这样的结果:每个员工的工作信息
SMITH is a CLERK
如果显示的个性化字符中有单引号字符与语法中的单引号冲突,需要再加一个单引号转义,如下:
select ename||’ ''s is a ’ || job from emp;
此时两个‘’的效果是在屏幕中输出一个单引号字符。 - 引用运算符:q’特殊符号 增加可读性的个性化内容 特殊符号’
此时注意q’特殊符号与后边的特殊符号’匹配成对,这样的使用效果和连接运算符类似,都可以增强可读性。 - distinct: 消除重复行
如:select distinct deptno from emp;
此时会列出公司中分配了员工的部门信息,且去重。
对于distinct用法要注意,distinc只能在select子句中第一个位置出现,且只能有一个distinct. - 优先级:* /优先级比+ -优先级高,且小括号改变优先级
如:select empno,ename,12*(sal+100) from emp;
如果员工每个月加100元奖金,统计每个员工一年的收入
4 练习题
如下是BOOKS_TRANSACTIONS表的结构:
DESC BOOKS_TRANSACTIONS
TRANSACTION_ID NOT NULL VARCHAR2
BORROWED_DATE DATE
DUE_DATE DATE
BOOK_ID VARCHAR2
MEMBER_ID VARCHAR2 (6)
需求:打印输出BOOKS_TRANSACTIONS表的MEMBER_ID,DUE_DATE的信息以字符’$2’作为LATE_FEE信息。如下哪个SQL是正确的?
A) SELECT member_id AS MEMBER_ID, due_date AS DUE_DATE, $2 AS LATE_FEE FROM BOOKS_TRANSACTIONS;
B) SELECT member_id AS “MEMBER_ID”, due_date AS “DUE_DATE”, ‘$2’ AS " LATE_FEE” FROM BOOKS_TRANSACTIONS;
C) SELECT member_id AS “MEMBER_ID”, due_date AS “DUE_DATE”, $2 AS “LATE_FEE” FROM BOOKS_TRANSACTIONS;
【答题小贴士】:
1、以墨天轮文章的形式解析题目并给出答案
2、将墨天轮文章链接发送到此文的评论区
评论





