sql语句类型
- 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:对数据库的特定部分进行锁定
常见数据库对象
对象 | 描述 |
---|---|
表 | 基本的数据存储集合,由行和列组成 |
视图 | 从表中抽取的逻辑相关的数据集合 |
序列 | 提供有规律的数值 |
索引 | 提高查询的效率 |
同义词 | 给对象起别名 |
查询数据字典
- 查看用户定义的表
select table_name from user_tables;
- 查询用户定义的各种数据库对象
select distinct object_type from user_objects;
- 查看用户定义的表、视图、同义词和序列
select * from user_catalog;
命名规则
表名和列名
- 必须以字母开头
- 必须要1-30个字符之间
- 必须只能包含A-Z,a-z,0-9,_,$,#
- 必须不能和用户定义的其他对象重名
- 必须不能是oracle的关键字
语法
- 创建表
创建表的第一种方式(白手起家)
create table emp1(
id number(10),
name varchar2(20),
salary number(10,2), -- 十位,两位小数,八位整数
hire_date date
)
创建表的第二种方式,通过其他表,数据也会复制过来
create table emp3
as
select employee_id id, last_name name, hire_date, salary from employees
where department_id = 80
如果第二种方式不想要数据
create table emp3
as
select employee_id id, last_name name, hire_date, salary from employees
where 1 = 2
数据类型
数据类型 | 描述 |
---|---|
varchar2(size) | 可变长字符数据 |
char(size) | 定长字符数据 |
number(p,s) | 可变长数值数据 |
date | 日期型数据 |
long | 可变长字符数据,最大可达到2G |
clob | 字符数据,最大可达4G |
raw(long raw) | 原始二进制数据 |
blob | 二进制数据,最大可达4G,能存文件,影视音乐等 |
bfile | 存储外部文件的二进制数据,最大可达4G |
rowid | 行地址 |
- 修改表
修改表,增加字段
alter table emp1 add (email varchar2(20));
修改字段
alter table emp1 modify (id number(15));
增加默认值
alter table emp1 modify (salary number(20,2) default 2000);
修改字段类型,有数据不能修改类型,只能修改空列,但是可以修改字符长度和默认值
alter table emp1 modify (email number(20));
删除列
alter table emp1 drop column email;
重命名列
alter table emp1 rename column salary to sal;
回滚:ddl不能回滚,dml可以回滚
rollback;
- 删除表
drop table emp5;
- 清空表,不能回滚
truncate table emp3;
- 修改表名
rename emp2 to employees2;