SQL语句分为以下三种类型:
- DML:Data manipulation Language数据操作语言
- DDL:Data Definition Language数据定义语言
- DCL:Data ControlLanguage数据控制语言
DML用于查询与修改数据记录,包括如下SQL语句:
- INSERT:添加数据到数据库中
- UPDATE:修改数据库中的数据
- DELETE:删除数据库中的数据
- SELECT:查询数据
SELECT是SQL语言的基础,最为重要
DDL用于定义数据库中的结构。比如创建、修改或删除出具库对象,包括如下SQL语句:
- CREATE TABLE:创建数据库表
- ALTER TABLE:更改表结构、添加、删除、修改列长度
- DROP TABLE:删除表
- CREATE IINDEX:在表上建立索引
- DROP INDEX:删除索引
DCL用来控制数据库的访问,宝库如下SQL语句:
- GRANT:授予访问权限
- REVOKE:撤销访问权限
- COMMIT:提交事务处理
- ROLLBACk:事务处理回退
- SAVEPOINT:设置保存点
- LOCK:对数据库的特定部分进行锁定
注意
- SQL 语言大小写不敏感
- SQL 可以写在一行或多行
- 关键字不能被缩写也不能分行
- 各子句一般要分行写。
- 使用缩进提高语句的可读性
算数运算符
数字和日期使用的算术运算符
“+” 加
“-” 减
“*” 乘
“/” 除
操作符优先级
“*” “/” “+” “-”
- 乘除的优先级高于加减。
- 同一优先级运算符从左向右执行。
- 括号内的运算先执行。
列的别名
- 重命名一个列
- 便于计算
- 紧跟列名,也可以在列名和别名之间家关键字“AS”,别名使用双引号,以便于在别名中包含空格或特殊的字符并区分大小写
连接符
- 把列与列,列与字符连接在一起
- 用“||”表示
-
可以用来“合成”列
如:select last_name ||'`s email is'||eaail(他的email是:)
字符串
- 字符串可以是SELECT列表中的一个字符,数字,日期
- 日期和字符只能在单引号中出现
- 每当返回一行时,字符串被输出一次
重复行
默认情况下,查询会返回全部行,包括重复行。
去除重复行命令:distinct
如 select distinct departmant_is from emplayees
SQL和SQL*Plus的区别
SQL | SQL*Plus |
---|---|
一种语言 | 一种环境 |
ANSI标准 | Oracle的特性之一 |
关键字不能缩写 | 关键字可以缩写 |
使用语句控制数据库中的表的定义信 息和表中的数据 | 命令不能改变数据库中的数据的值 |
集中运行 |
SQL*Plus
使用SQL*Plus可以:
- 描述表结构
- 编辑SQL语句
- 执行SQL语句
- 将SQL保存在文件中并将SQL语句执行结果保存在文件中
- 在保存的文件中执行语句
- 将文本文件装入SQL*Plus编辑窗口
显示表结构
如:DESCRIBE employees
第一章 基本SQL- SELECT语句
- 对于日期型数据,做*,/运算不合法
- 包含空值的数学表达式的值都为空值
- 别名使用双引号
- Oracle中连接字符串使用“||”,而不是Java中的“+”
- 日期和字符只能在单引号中出现,输出last_name`s email EMAIL FROM employees
- distinct 关键字,一下语法错误
select last_name,distinct department_id from employees
练习
1、SQLPLUS命令可以控制数据库吗?不能
2、下面的语句是否可以执行成功
select last_name,job_id,salary as sal from employees
可以
3、下面的语句书否可以执行成功
select * from employees
可以 查询表中所有列
4、找出下面语句中的错误
select employee_id,last_name,salary12 “ANNUAL SALARY” FROME employees;
标点符号需要是英文格式下的
5、显示表departments的结构,并查询其中的全部数据
desc department
select * from departments;
6、显示出来employees中的全部job_id(不能重复)
select distinct job_id from employees
7、显示出表employees的全部列,各个列之间用逗号连接,列头显示成OUT_PUT
SELECT employees_id ||','|| last_name||','||salary "OUT_PUT"
FROM employees