SQL 语句(一)--------------模式及表的定义

注:所有关于sql语句的数据,全都来自 Kingbase v7 版的SAMPLES数据库!

/*定义模式*/

CREATE SCHEMA TEST AUTHORIZATION SONGJIE;


/*默认模式名为用户名*/
CREATE SCHEMA AUTHORIZATION SONGJIE;


/*删除模式*/
DROP SCHEMA MYMODE CASCADE;/*CASCADE 把该模式中的所有数据库对象全部删除*/
DROP SCHEMA SONGJIE RESTRICT;/*RESTRICT 如果该模式已经定义了下属的数据库对象(如表、视图)则拒绝删除*/


/*创建模式的同时创建表*/
CREATE SCHEMA MYMODE AUTHORIZATION SONGJIE
CREATE TABLE MYTABLE 
(MY_NO INT PRIMARY KEY,
MY_NAME VARCHAR(20) ,
MY_LOVE VARCHAR(20) UNIQUE,
MY_CITY VARCHAR(10),
MY_LADY VARCHAR(10),
FOREIGN KEY (MY_LADY) REFERENCES MYTABLE(MY_LOVE)
);
/*创建表*/
CREATE TABLE TEST.Course
(Cno CHAR(4) PRIMARY KEY,
Cname CHAR(40),
Cpno CHAR(4), 
Ccredit SMALLINT,
FOREIGN KEY (Cpno) REFERENCES TEST.Course(Cno)
/*表级完整性约束条件,Cpno是外码,被参照表是Course,被参照列是Cno 注意:如果被参照表不是主码,后面需要加  UNIQUE  确保唯一性*/
);


CREATE TABLE TEST.STUDENT
(Sno int PRIMARY KEY,
Sname char(10) UNIQUE,/*Sname 取唯一值*/
Sage smallint,
Ssex char(2),
Sdept char(20)
);


CREATE TABLE TEST.SC
(Sno CHAR(9),
Cno CHAR(4),
Grade SMALLINT,
PRIMARY KEY (Sno,Cno),/*主码由两个属性构成,必须作为表级完整性进行定义*/
FOREIGN KEY (Sno) REFERENCES TEST.Student(Sno),/*表级完整性约束条件,Sno是外码,被参照表是Student*/
FOREIGN KEY (Cno) REFERENCES TEST.Course(Cno)/*表级完整性约束条件,Cno是外码,被参照表是Course*/
);
/*当用户重建基本表的时候没有指定模式,系统根据搜索路径来确定该对象所属的模式*/
SHOW search_path;/**搜索路径,默认是$user,PUBLIC.含义是首先搜索与用户名相同的模式名,如果该模式名不存在,则使用PUBLIC模式**/


/*设置搜索路径*/
SET search_path TO TEST,PUBLIC;
/*删除表*/
DROP TABLE TEST.STUDENT CASCADE;
/**/
DROP TABLE PUBLIC.STUDENT CASCADE;


/*修改基本表:增加列*/
ALTER TABLE STUDENT ADD S_entrance DATE;
ALTER TABLE TEST.STUDENT ADD COLUMN S_entrance DATE;


/*修改基本表:修改列数据类型*/
ALTER TABLE TEST.STUDENT ALTER COLUMN SNAME TYPE INT;


/*修改基本表:增加课程名称必须取唯一值的约束条件*/
ALTER TABLE TEST.COURSE ADD UNIQUE(CNAME);


/*建立视图   注:若表上有视图,选择RESTRICT时表不能删除,CASCADE时可以删除表,视图也自动被删除*/
CREATE VIEW 学生选课.院系号_学生 
AS
SELECT 学号,姓名,年龄
FROM 学生选课.学生
WHERE 院系号='06003';


/*建立索引---加快查询速度(注意何时需要建立索引,建立什么样的索引才合适)*/
CREATE UNIQUE INDEX STUSNO ON TEST.STUDENT(SAGE);
CREATE UNIQUE INDEX COUCNO ON TEST.COURSE(CPNO);
CREATE UNIQUE INDEX SCNO ON TEST.SC(SNO ASC,CNO DESC);/*SC表按学号升序号课程号降序建唯一索引*/


/*删除索引-----没有成功!!!!!!!!!!!*/
DROP INDEX TEST.STUDENT.STUSNO;/*失败*/
ALTER TABLE TEST.STUDENT DROP INDEX (STUSNO);/*失败*/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值