最近项目要用到Oracle,奈何之前没有使用过,所以在B站上面找了一个学习视频,用于记录学习过程以及自己的思考。
视频链接:
【尚硅谷】Oracle数据库全套教程,oracle从安装到实战应用
如果有侵权,请联系删除,谢谢。
1、SQL 基础介绍
SQL 的全程是:structure query language
。
SQL语句分为以下三种类型:
- DML: Data Manipulation Language 数据操纵语言。其中查询语句使用最多,也有单独分出来的,称作
DQL
。 - DDL: Data Definition Language 数据定义语言
- DCL: Data Control Language 数据控制语言
1.1、DML
DML用于查询与修改数据记录,包括如下SQL语句:
- INSERT:添加数据到数据库中
- UPDATE:修改数据库中的数据
- DELETE:删除数据库中的数据
- SELECT:选择(查询)数据
SELECT是SQL语言的基础,最为重要。
1.2、DDL
DDL用于定义数据库的结构,比如创建、修改或删除数据库对象,包括如下SQL语句:
- CREATE TABLE:创建数据库表
- ALTER TABLE:更改表结构、添加、删除、修改列长度
- DROP TABLE:删除表
- CREATE INDEX:在表上建立索引
- DROP INDEX:删除索引
1.3、DCL
DCL用来控制数据库的访问,包括如下SQL语句:
- GRANT:授予访问权限
- REVOKE:撤销访问权限
- COMMIT:
提交事务处理
- ROLLBACK:
事务处理回退
- SAVEPOINT:
设置保存点
- LOCK:对数据库的特定部分进行锁定
2、select 语句
2.1、基本 SELECT 语句
SELECT *|{[DISTINCT] column|expression [alias],...} FROM table;
- SELECT 标识 选择哪些列。
- FROM 标识从哪个表中选择。
1、其中使用 * 表示选择全部列
.
select * from departments;
2、选择特定的列
select department_id, location_id from departments;
注意:
- SQL 语言
大小写不敏感。
- SQL 可以写在一行或者多行
关键字不能被缩写也不能分行
- 各子句一般要分行写。
- 使用缩进提高语句的可读性。
2.2、算术运算符
数字和日期
使用的算术运算符。
2.2.1、使用数学运算符
SELECT last_name, salary, salary + 300FROM employees; // 成功
SELECT employee_id, HIRE_DATE, HIRE_DATE -1 FROM EMPLOYEES ; // 成功
// 失败,ORA-00932: 数据类型不一致: 应为 NUMBER, 但却获得 DATE
SELECT employee_id, HIRE_DATE, HIRE_DATE * 1 FROM EMPLOYEES e ;
数字类型(number)可以使用 +、-、*、/
日期类型只能使用 +、-
2.2.2、操作符优先级
- 乘除的优先级高于加减。
同一优先级运算符从左向右执行。
括号内的运算先执行。
SELECT last_name, salary, 12*salary+100 FROM employees;
使用括号
SELECT last_name, salary, 12*(salary+100) FROM employees;
2.3、定义空值
- 空值是无效的,未指定的,未知的或不可预知的值
- 空值不是空格或者0。
SELECT last_name, job_id, salary, commission_pct
FROM employees;
2.3.1、空值在数学运算中的使用
包含空值的数学表达式的值都为空值
2.4.1、列的别名
将一个列重新命名。便于计算、识别等。
列的别名使用方式: 紧跟列名,也可以在列名和别名之间加入关键字‘AS’,别名使用双引号,以便在别名中包含空格或特殊的字符并区分大小写。
方式一:
SELECT last_name name, commission_pct comm FROM employees;
方式二:
SELECT last_name AS name, commission_pct AS comm FROM employees;
方式三:
SELECT last_name AS "Name", commission_pct AS "COMM" FROM employees;
方式二和方式三的区别在于,方式三得到的列的名称,和双引号中的字符一模一样。而方式二则默认会将列名称转换为大写的方式。
2.5、连接符
连接符:
- 把列与列,列与字符连接在一起。
- 用 ‘||’表示。
- 可以用来‘合成’列。
2.5.1、连接符应用举例
2.5.2、使用连接符连接 字符串
2.6、重复行
默认情况下,查询会返回全部行,包括重复行。
SELECT department_id FROM employees;
1、删除重复行
在 SELECT 子句中使用关键字 ‘DISTINCT’ 删除重复行。
3、SQL 和 SQL*Plus
3.1、SQL 语句与 SQL*Plus 命令
3.2、SQL*Plus
使用SQL*Plus可以:
- 描述表结构。
- 编辑 SQL 语句。
- 执行 SQL语句。
- 将 SQL 保存在文件中并将SQL语句执行结果保存在文件中。
- 在保存的文件中执行语句。
- 将文本文件装入 SQL*Plus编辑窗口。
3.3、显示表结构
使用 DESCRIBE 命令,表示表结构
DESC[RIBE] tablename
desc departments;
注意:
只有在 SQL*Plus
环境中才可以使用此命令查询,否则报错。
那如果通过SQL查询得到表结构呢?
select *
from user_tab_columns
where table_name='JOBS';
扩展:
select table_name from user_tables; //当前用户的表
select table_name from all_tables; //所有用户的表
select table_name from dba_tables; //包括系统表
select table_name from dba_tables where owner='xxx'
标签:语句,name,employees,select,Select,SQL,Oracle,SELECT
From: https://www.cnblogs.com/huageyiyangdewo/p/18135076