查看系统时间

SELECT sysdate FROM dual;

select VALUES select values oracle_select VALUES

 

导入Oracle数据库脚本文件

@盘符:/文件路径/数据库脚本文件名称

 

为了方便导入,可以把脚本文件放在里盘根最近且不带有中文与空格的目录下

select VALUES select values oracle_SQL_02

导入时只能一次导入一个文件这样

@d:/sql/del_data.sql

@d:/sql/hr_cre.sql

@d:/sql/hr_popul.sql

 

在PLSQL的工具中导入可能会发生这样的警告

无视就好

select VALUES select values oracle_数据_03

 

查看我们脚本创建的数据是否存在

SELECT * FROM employees;

select VALUES select values oracle_select VALUES_04

 

共107条记录

select VALUES select values oracle_数据_05

如果不是这个总记录数,

是因为没有按照上面指定的顺序执行sql脚本


SQL语句分为以下三种类型:

DML: Data Manipulation Language 数据操纵语言

DDL: Data Definition Language 数据定义语言

DCL: Data Control Language 数据控制语言


DML

DML用于查询与修改数据记录,

包括如下SQL语句:

  INSERT:添加数据到数据库中

  UPDATE:修改数据库中的数据

  DELETE:删除数据库中的数据

  SELECT:选择(查询)数据

SELECT是SQL语言的基础,最为重要。


DDL

DDL用于定义数据库的结构,

比如创建、修改或删除数据库对象,

包括如下SQL语句:

  CREATE TABLE:创建数据库表

  ALTER TABLE:更改表结构、添加、删除、修改列长度

  DROP TABLE:删除表

  CREATE INDEX:在表上建立索引

  DROP INDEX:删除索引


DCL

DCL用来控制数据库的访问,

包括如下SQL语句:

  GRANT:授予访问权限

  REVOKE:撤销访问权限

  COMMIT:提交事务处理

  ROLLBACK:事务处理回退

  SAVEPOINT:设置保存点

  LOCK:对数据库的特定部分进行锁定


 基础查询SQL

SELECT 通配符 * | 去重[DISTINCT] 一个列 或者 多个列 | 表达式
FROM 数据表名

 

查询所有列

SELECT * FROM emplyees;

 

如果语句写错,就会有无法查到的提示

select VALUES select values oracle_数据_06

 

查询某一部分的列

SELECT employee_id,last_name,email FROM employees;

为了可读性,可以分段书写

SELECT employee_id,last_name,email 
FROM employees;

select VALUES select values oracle_select VALUES_07


Oracle的SQL规范

 - 1、SQL 语言大小写不敏感。

 - 2、SQL 可以写在一行或者多行

 - 3、关键字不能被缩写也不能分行

 - 4、各子句一般要分行写。

 - 5、使用缩进提高语句的可读性。

SQL运算符

数字和日期均可以使用 加、减、乘、除

+ - * /

优先级关系:

括号 > 乘 > 除 > 加 > 减 

 

运算字段处理

SELECT last_name, salary, salary + 300
FROM   employees;

优先级运算

SELECT last_name, salary, 12*(salary+100)
FROM   employees;

括号运算

SELECT last_name, salary, 12*(salary+100)
FROM   employees;

 

特殊值 空值 NULL

空值是一个特殊的值,在MySQL中会显示为NULL

但是在Oracle中,则不显示,就表示为NULL

- NULL是无效的,未指定的,未知的或不可预知的值

- NULL不是空格 或者 0

 

查询空值结果

SELECT last_name, job_id, salary, commission_pct
FROM   employees;

select VALUES select values oracle_SQL_08

 

注意!!!空值参与的运算,结果都将会为空

SELECT last_name, 12*salary*commission_pct FROM employees;

select VALUES select values oracle_select VALUES_09

 

数据列的别名 Column Alias

- 1、重命名一个列,提高SQL语句的可读性

- 2、便于计算

- 3、紧跟列名,也可以在列名和别名之间加入关键字‘AS’,别名使用双引号,以便在别名中包含空格或特殊的字符并区分大小写。

 

这里可以不使用引号修饰,均以小写声明别名

SELECT last_name AS name, commission_pct comm
FROM   employees;

 

如这样,别名的字符包含了 特殊字符、大小写、空格,必须要使用双引号修饰

SELECT last_name "Name", salary*12 "Annual Salary"
FROM   employees;

select VALUES select values oracle_数据_10

 

连接符 Connect

- 用来将列与列,列与字符连接在一起。

- 使用 ‘||’表示。

- 可以用来‘合成’列。

【在MySQL中是使用CONCAT()函数进行操作,列作为参数传入进行拼接】

 

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

select VALUES select values oracle_数据_11

 

字符串  String

- 1、字符串可以是 SELECT 列表中的一个字符,数字,日期。

- 2、日期和字符只能在单引号中出现。

- 3、每当返回一行时,字符串被输出一次。

 

我们可以这样拼接出一个句子

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

select VALUES select values oracle_sql_12

 

去除重复的记录行 DISTINCT

SELECT DISTINCT department_id
FROM   employees;

可以看到这一个特殊的地方:

空值也是可以被分为一个重复的记录行

select VALUES select values oracle_select VALUES_13

 

表结构查看  show table structure

查看数据表的表结构

DESCRIBE employees;

或者使用简写 【MySQL 中也是这样的写法】

DESC employees;

要注意的是,这个语句在SQL窗口无法执行

 

select VALUES select values oracle_SQL_14


SQL PLUS的作用

- 描述表结构。

- 编辑 SQL 语句。

- 执行 SQL语句。

- 将 SQL 保存在文件中并将SQL语句执行结果保存在文件中。

- 在保存的文件中执行语句。

- 将文本文件装入 SQL*Plus编辑窗口。


SQL 语句与 SQL*Plus 命令的区别?

- SQL 

  是一种语言 ANSI 标准

  关键字不能缩写

  使用语句控制数据库中的表的定义信息和表中的数据

- SQL*Plus

  一种环境

  Oracle 的特性之一

  关键字可以缩写

  命令不能改变数据库中的数据的值

  集中运行