Oracle 19C学习 - 2. Select语句检索数据

基础知识

 

SQL语句的编写规则:

  • SQL语句不区分大小写(Oracle如此, MySQL区分)
  • 可以在一行或者多行数据SQL语句
  • 子句通常放在单独的行上
  • 缩进用于增强可读性
  • SQL语句使用分号终止
  • 正规写法中,所有的关键字使用大写,列名和表名使用小写。

列头(字段头)的对齐方式:

  • SQL Developer中:
  1. 默认标题对齐:左对齐
  2. 默认标题显示:大写
  • SQLPLUS中:
  1. 字符和日期标题对齐:左对齐
  2. 数字列标题:右对齐
  3. 默认标题显示:大写

在SQLDeveloper中连接hr测试数据库。

Oracle 19C学习 - 2. Select语句检索数据

 

 

SELECT 命令进行数据查询

SELECT * FROM employees; 

FROM发生在SELECT之前,先去定位数据库,然后在进行SELECT数据检索。

在使用SELECT *  FROM tab_name之前,先使用SELECT COUNT(1)  FROM tab_name 先查看数据表的总行数,避免表中数据太大造成性能问题。

 

--为注释标识符

 

输出字符串:SELECT ‘Hello, World‘ FROM dual;

 

sys用户可以看到其他用户下的数据表,需要在表名前面加上用户名。

SELECT * FROM hr.employees;

Oracle 19C学习 - 2. Select语句检索数据

 

SELECT语句支持算术表达式

SELECT 99 * 99 FROM dual;

SELECT last_name, salary, salary * 1.4 FROM employees;

LAST_NAME                     SALARY SALARY*1.4
------------------------- ---------- ----------
King                           24000      33600
Kochhar                        17000      23800
De Haan                        17000      23800
Hunold                          9000      12600

 

 

NULL的介绍

NULL是一个不可用、未分配、未知或者不适用的值。任何值与空值进行计算的结果都是空值。

SELECT last_name, 12 * salary * commission_pct FROM employees;
Oracle 19C学习 - 2. Select语句检索数据

 

 

 

定义列别名

紧跟在列明之后,可以使用as关键字指定,但不强制。列明可以使用中文。

如果包含空格或者特殊字符,或者区分大小写,需要使用双引号。

SELECT last_name as Surname, commission_pct as Comm FROM employees;

SELECT last_name Surname, commission_pct Comm FROM employees;

SELECT last_name "Surname", employee_id "ID", salary * 1.1 "Adjusted Salary" FROM employees;

Oracle 19C学习 - 2. Select语句检索数据

 

 

 

连接操作符 ||

将不同列之间的内容进行字符串连接,然后放到一个单独的列中。

SELECT last_name || ‘ : ‘ || job_id as 员工基本情况 FROM employees;

SELECT last_name ||  :  || job_id as 员工基本情况 FROM employees;

员工基本情况
Abel : SA_REP
Ande : SA_REP
Atkinson : ST_CLERK

 

 

文字字符串

文字是SELECT语句中包含的字符,数字或者日期。

日期和字符文字必须用单引号引起来。

每个字符串对于返回的每一行输出一次。

SELECT last_name || ‘ is a(an) ‘ || job_id as "Employee Details" from employees;

 

替代运算符

在SQL中,要输出 单引号,需要使用另外一个单引号进行转义, ‘ ‘‘ ‘ 这样才能输出一个单引号。

使用 q‘[字符串] ‘ 的形式,字符串可以输入任何字符而不需要转义。

SELECT q‘[worker‘s job title is]‘|| job_id  AS 基本情况 FROM employees;

Oracle 19C学习 - 2. Select语句检索数据

 

 

DISTINCT去掉重复行

SELECT DISTINCT department_id AS 部门清单 FROM employees;

DESCRIBE 命令查看表结构

DESC tab_name;  查看表结构,能看到列名以及约束条件(Not null),并能看到列的数据类型。

名称             空值?      类型           
-------------- -------- ------------
EMPLOYEE_ID    NOT NULL NUMBER(6)    
FIRST_NAME              VARCHAR2(20)
LAST_NAME      NOT NULL VARCHAR2(25)
EMAIL          NOT NULL VARCHAR2(25) 

通过查看了表结构,可以使用select 检索特定列的数据。

SELECT employee_id, first_name, email FROM employees;

Oracle 19C学习 - 2. Select语句检索数据

上一篇:对标阿里P7Android最全面试题合集(GitHub、掘金高赞收集)


下一篇:MSSQL 发布订阅,实现读写分离 SQL Server