SQL学习笔记1.2——DDL

2  数据定义语言  DDL

    数据定义语言(Data Definition Language,DDL)用于定义数据库的结构,比如创建、修改或删除数据库对象。

    注意:rollback回滚对于DDL无效。

 

    Oracle中查看用户已创建的表为:

select * from user_tables

    Oracle中查看用户定义的各种数据库对象:

select distinct object_type
from user_objects

    Oracle中查看用户定义的表、视图、同义词和序列:

select *
from user_catalog

2.1  创建表  CREATE TABLE

        表名和列名命名规则:

                (1)必须以字母开头;

                (2)必须在1-30个字符之间;

                (3)必须只能包含A-Z,a-z,0-9,_,$,和#;

                (4)必须不能和用户定义的其他对象重名;

                (5)必须不能是Oracle的保留字。

        例:$abc,2abc,_abc,a-b,a#d中正确的有:a#d。

2.1.1  创建表的第一种方式

create table 表名字 ( 列名1 该列类型,
                     列名2 该列类型,
                     列名3 该列类型,
                     ……
                    )

例: 

create table employees(
                        employee_id NUMBER(6)
                        first_name VARCHAR2(20)Y
                        last_name VARCHAR2(25)
                        email VARCHAR2(25)
                        phone_number VARCHAR2(20)Y
                        hire_date DATE 
                        job_id VARCHAR2(10)
                        salary NUMBER(8,2)Y
                        commission_pct NUMBER(2,2)Y
                        manager_id NUMBER(6)Y
                        department_id NUMBER(4)Y
                       )

        列中salary NUMBER(8,2)表示该数字型一共8位,其中有2位是小数。

2.1.2  创建表的第二种方式(依托于现有的表)

        依托于现有的表,不仅导入原有表的结构,同时导入原有表的数据。

create table 表名字
as
select 列名1,列名2,列名3,列名4
from 已有的表

例1:利用子查询创建表myemp,该表中包含employees表的employee_id(id),last_name(name),salary(sal),email字段。

create table myemp
as
select employee_id id,last_name name,salary sal,email
from employees

例2:若对于现有表的数据有所筛选,可以添加过滤条件。

create table emp2
as
select employee_id id,last_name name,hire_date,salary
from employees
where department_id = 50

例3:若只想要表结构,不想要表中数据,可以添加逻辑非的过滤条件。

create table emp2
as
select employee_id id,last_name name,hire_date,salary
from employees
where 1=2

2.2  修改表  ALTER TABLE

        使用alter table语句可以:

        (1)追加新的列。

alter table 表名字
add (新列名 新列的类型)

例:

alter table employees
add (email varchar2(20))

        (2)修改现有的列的类型,注意此时该列没有数据,若有数据则修改不成功。

alter table 表名字
modify (列名 列的新类型)

        (3)为新追加的列定义默认值,关键字:default。

alter table 表名字
modify (列名 列的类型 default 默认值)

        (4)删除一个列。

alter table 表名字
drop column 列名

例:

alter table employees
drop column email

        (5)重命名表的一个列名。

alter table 表名字
rename column 旧列名 to 新列名

例:

alter table employees
rename column last_name to name1

         (6)将某列设置为不可用。

alter table 表名
set unused column 列名

         (7)删除不可用的列。

alter table 表名
drop unused columns

2.3  删除表  DROP TABLE 

        数据和结构都被删除,所有正在运行的相关事务被提交;所有相关索引被删除。

drop table 表名

2.4  清空表 truncate table

        删除表中所有数据,释放表的存储空间。

truncate table 表名

2.5  改变对象的名称

rename 对象旧名 to 对象新名

2.6  创建索引  CREATE INDEX

2.7  删除索引  DROP INDEX

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值