SQL之数据定义语言

二)数据定义语言
1.概述
SQL的数据定义功能是针对数据库三级模式结构的各种数据对象进行定义的。在标准SQL中主要包括表、视图、索引,在oracle中还包括触发器、游标、过程、程序包等。
标准sql语言中不支持对索引定义的操作和修改视图的操作,只能通过删除再创建的方法。在orale中可以通过ALTER VIEW进行视图修改。
2.语句详解
1)CREATE创建表、函数、视图
CREATE TABLE <表名>(<列名> <数据类型> [列级完整性约束]
[,<列名> <数据类型> [列级完整性约束]]...
[,<表级完整性约束>]);
CREATE TABLE ABC(a varchar2<10>,b char<10>);

CREATE VIEW <视图名>[(<列名>[,<列名>]...)]
AS<子查询>
[WITH CHECK OPTION]

CREATE [UNIQUE][CLUSTER] INDEX<索引名>
ON<表名>(<列名>[<次序>][,<列名>[<次序>]]...)
[TABLESPCAE tablespace_name];

2)ALTER改变表、函数
ALTER TABLE <表名>
[ADD <新列名><数据类型>[完整性约束]]
[DROP<完整性约束名>]
[MODIFY<列名><数据类型>]

3)DROP删除
DROP TABLE<表名>;
DROP VIEW<视图>;
DROP INDEX<索引>;

4)实例
【例1】创建一个名为IT_EMPLOYEES的表,它由编号EMPLOYEE_ID、名FIRST_NAME、姓LAST_NAME、邮箱EMAIL、电话号码PHONE_NUMBER、部门编号JOB_ID、薪资SALARY和部门经理编号MANAGER_ID八个属性组成。
create table IT_EMPLOYEES
(
EMPLOYEE_ID NUMBER(6) not null unique,
FIRST_NAME VARCHAR2(20),
LAST_NAME VARCHAR2(25) not null,
EMAIL VARCHAR2(25),
PHONE_NUMBER VARCHAR(20),
JOB_ID VARCHAR2(10),
SALARY NUMBER(8,2),
MANAGER_ID NUMBER(6)
);

【例2】建立程序员的视图PROG_EMPLOYEES(JOB_ID=’IT_PROG’),其中隐含了视图的列名.
create view prog_employees
as
select employee_id,first_name,last_name,email,phone_number,salary,manager_id
from it_employees
where job_id = 'IT_PROG';

【例3】执行下面的CREATE INDEX语句,创建索引:
CREATE INDEX IT_LASTNAME ON IT_EMPLOYEES(LAST_NAME);

【例4】将前文创建的视图PROG_EMPLOYEES删除.
DROP VIEW PROG_EMPLOYEES;

【例5】向IT_EMPLOYEES表中增加“雇员生日”列,其数据类型为日期型:
ALTER TABLE IT_EMPLOYEES ADD BIRTHDATE DATE;

【例6】将IT_EMPLOYEES表的MANAGER_ID字段改为8位:
ALTER TABLE IT_EMPLOYEES MODIFY MANAGER_ID NUMBER(8);

【例7】删除IT_EMPLOYEES表EMPLOYEE_ID字段的UNIQUE约束:
ALTER TABLE IT_EMPLOYEES DROP UNIQUE(EMPLOYEE_ID);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值