[Oracle数据库学习]一、基本SQL语句-Select

本月学习Oracle数据库相关知识,暂定20天完成。

D1

基本select语句

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

SELECT:选择哪些列;

FROM:从哪个表;

选择全部列

SELECT * 
FROM rooms;
ROOM_IDROOM_NAMEMANAGER_IDLOCATION_ID
1 first room 1 1
2 second room 1 2
3 third room 2 2

选择特定的列

SELECT room_id, location_id
FROM rooms;
ROOM_IDLOCATION_ID
1 1
2 2
3 2

编写SQL语句

1)SQL 语言大小写不敏感;

2)SQL 可以写在一行或者多行,各子句一般要分行写;使用缩进提高语句的可读性

3)关键字不能被缩写也不能分行。

 

SQL*Plus列头设置

1)字符和日期类型的列左对齐,数字类型的列右对齐;

2)默认列头显示为大写。

 

算术运算符

操作符 描述
+
-
*
/

 

数字和日期的数学表达式时使用算术运算符

SELECT employee_name, salary, salary + 100 
FROM employees;
EMPLOYEE_NAMESALARYSALARY+100
Alice 10000 10100
Bob 5000 5100

 

操作符优先级

1)乘、除的优先级高于加、减;

2)同一优先级从左向右执行;

3)括号内的运算先执行。

SELECT employee_name, salary, 12*salary+5000 
FROM employees;
EMPLOYEE_NAMESALARY12*SALARY+5000
Alice 10000 125000
Bob 5000 65000

 

SELECT employee_name, salary, 12*(salary+5000)
FROM employees;
EMPLOYEE_NAMESALARY12*(SALARY+5000)
Alice 10000 180000
Bob 5000 120000

 

定义空值

空值是无效、未定义的,不是空格或0。

SELECT employee_name, commission_pct
FROM employees;
EMPLOYEE_NAMECOMMISSION_PCT
Alice (null)
Bob 0.12

包含空值的数学表达式结果都为空

SELECT employee_name, salary, 12*salary+5000*commission_pct 
FROM employees;
EMPLOYEE_NAMESALARY12*SALARY+5000*COMMISSION_PCT
Alice 10000 (null)
Bob 5000 60600

 

列的别名

1)给选择的列重命名,便于计算;

2)紧跟着列名,或使用AS关键字,使别名中可包含空格或特殊的字符并区分大小写。

SELECT employee_name AS name, commission_pct AS comm
FROM employees;
NAMECOMM
Alice (null)
Bob 0.12
SELECT employee_name "Name", salary*12 "Annual Salary"
FROM employees;
NameAnnual Salary
Alice 120000
Bob 60000

 

连接符

‘||’,将列与列或列与字符连接起来,形成“合成列”。

SELECT employee_name||job_id AS "employee"
FROM employees;
employee
AlicePM
BobDEV


 字符串

字符串可以是select列表中的一个字符、数字或日期,字符和日期必须使用单引号。

SELECT employee_name||' is a '||job_id AS "Employ Details"
FROM employees;
Employ Details
Alice is a PM
Bob is a DEV

 

重复行

默认情况下,会返回所有符合条件的行,包括重复行。

SELECT department_id
FROM employees;
DEPARTMENT_ID
1
1
2
2

删除重复行

在SELECT子句中使用DISTINCT关键字删除重复行。

SELECT DISTINCT department_id
FROM employees;
DEPARTMENT_ID
1
2

SQL和SQL*Plus

SQL语句 SQL*Plus命令
SQL是一种语言 SQL*Plus是一种环境
ANSI标准 Oracle的特性之一
关键字不能缩写 关键字可以缩写
使用语句控制数据库中的表的定义和表中的数据

命令不能改变数据库中数据的值,并且需要集中运行

 

SQL*Plus

使用SQL*Plus可以:
1)描述表结构。
2)编辑和执行SQL 语句。
3)将SQL保存在文件中并将SQL语句执行结果保存在文件中,并在保存的文件中执行语句
4)将文本文件装入SQL*Plus编辑窗口。

 

显示表结构

使用DESCRIBE命令表示表结构。

DESC[RIBE] tablename

示例:

DESC all_tab_comments;
名称 空值 类型
OWNER NOT NULL VARCHAR2(30)
TABLE_NAME NOT NULL VARCHAR2(30)
TABLE_TYPE   VARCHAR2(11) 
COMMENTS   VARCHAR2(4000)

 

总结:

1)使用SELECT语句:查询全部/部分列;使用列的别名、连接符、算术运算符、DISTINCT关键字;

2)使用SQL*Plus环境编写、保存、执行SQL语句和SQL*Plus命令。

posted @ 2020-07-09 11:03  workingdiary  阅读(218)  评论(0)    收藏  举报