修改表的结构
DDL定义中对于数据库的操作主要有3种语法
- 创建对象:CREATE 对象类型 对象名称….
- 删除对象 DROP 对象类型 对象名称
- 修改对象 ALTER 对象类型 对象名称
创建表,并添加数据 --删除member表 DROP TABLE MEMBER PURGE; --创建member表CREATE TABLE member( mid NUMBER(5), name VARCHAR2(50) DEFAULT '无名氏' );
--查看当前用户下的全部表SELECT * FROM tab;--查看member表的结构是否正确DESC MEMBER;--向表中添加若干条记录INSERT INTO MEMBER(mid,NAME)VALUES(1,'张三');INSERT INTO MEMBER(mid,NAME)VALUES(2,'李四');INSERT INTO MEMBER(mid,NAME)VALUES(3,'王五');--查询member表SELECT * FROM MEMBER;
示例一、
向member表中增加3个字段
ALTER TABLE MEMBER ADD(age NUMBER(3)); --增加年龄字段ALTER TABLE MEMBER ADD(sex VARCHAR2(10) DEFAULT '男'); --增加性别字段ALTER TABLE MEMBER ADD(phote VARCHAR2(100) DEFAULT 'nophote.jpg'); --增加图像--查直表结构DESC MEMBER;
--发现已经增加成功
修改表的字段
ALTER TABLE 表名称 MODIFY(字段名称 字段类型 DEFAULT 默认值);
示例二、
将name 字段长度修改为30,将sex字段的,默认值修改为女
ALTER TABLE MEMBER MODIFY(NAME VARCHAR2(30)); --将字段长度由50修改为30ALTER TABLE MEMBER MODIFY(sex VARCHAR2(3) DEFAULT '女'); --将性别字段设置为长度3,并有默认值女--查直表结构DESC MEMBER;
--删除表中的字段
ALTER TABLE 表名称 DROP COLUMN 列名称;
示例三、
--删除member表中的phote和age字段
ALTER TABLE MEMBER DROP COLUMN phote;ALTER TABLE MEMBER DROP COLUMN sex; --查看表结构DESC MEMBER;
将表中的一些字段设置为无用状态
ALTER TABLE 表名称 SET UNUSED(列名称)
ALTER TABLE 表名称 SET UNUSED column列名称
示例四、
将member中的age设置为无用状态
ALTER TABLE MEMBER SET UNUSED COLUMN age;--查直表结构DESC MEMBER;--查询member表SELECT * FROM MEMBER;--设置为无用后,不会显示
删除表中的无用列
ALTER TABLE 表名称 DROP UNUSED COLUMNS;
--删除member列中的无用列
ALTER TABLE MEMBER DROP UNUSED COLUMNS;
添加注释
语法:
COMM ON TABLE 表名称 | COLUMN 表名称.列名称 IS ‘注释内容’;
查看user_tab_comments数据字典SELECT * FROM User_Tab_Comments WHERE table_name='MEMBER';--默认comments(注释)这个内容是NULL
为member表添加注释
COMMENT ON TABLE MEMBER IS '这是来学习的会员表';---查看member表注释SELECT * FROM User_Tab_Comments WHERE table_name='MEMBER';
查看列的注释信息
SELECT * FROM user_col_comments WHERE table_name='MEMBER';
为mid,name,age birthday添加注释
COMMENT ON COLUMN member.mid IS '参加活动的会员编号';COMMENT ON COLUMN member.name IS '参加活动的会员姓名';COMMENT ON COLUMN member.age IS '参加活动的会员年龄';COMMENT ON COLUMN member.Birthday IS '参加活动的会员生日';--查看列的注释信息SELECT * FROM user_col_comments WHERE table_name='MEMBER';