Oracle11g简单建表(约束)、查询、修改脚本
来源:互联网 发布:php权威指南 编辑:程序博客网 时间:2024/05/16 09:14
记录一下简单的创建和约束脚本,还有几个一般查询的语句
等以后熟练了再来改进
题目源于“MLDN魔乐科技_Oracle课堂20_完整练习.rar”,大家应该能电驴到
发的东西和课程里讲的答案不一样,自己瞎写的 不过功能无误
DROP TABLE grade;DROP TABLE sporter;DROP TABLE item;CREATE TABLE sporter(sporterid NUMBER(9),name VARCHAR2(50) NOT NULL,sex VARCHAR2(3) NOT NULL,department VARCHAR2(30) NOT NULL,CONSTRAINT sporter_sporterid_pk PRIMARY KEY(sporterid),CONSTRAINT sporter_sex_ck CHECK(sex IN ('男','女','中')));CREATE TABLE item(itemid VARCHAR2(9),itemname VARCHAR2(50) NOT NULL,location VARCHAR2(50) NOT NULL,CONSTRAINT item_itemid_pk PRIMARY KEY(itemid));CREATE TABLE grade(sporterid NUMBER(9),itemid VARCHAR2(9),mark NUMBER(9) NOT NULL,--CONSTRAINT grade_sporterid_pk PRIMARY KEY(sporterid),CONSTRAINT grade_mark_ck CHECK(mark IN(6,4,2,0)),CONSTRAINT sporter_grade_sportid_fk FOREIGN KEY(sporterid) REFERENCES sporter(sporterid) ON DELETE CASCADE,CONSTRAINT item_grade_itemid_fk FOREIGN KEY(itemid) REFERENCES item(itemid) ON DELETE CASCADE);INSERT INTO sporter(sporterid,name,sex,department) VALUES(1001,'李明','男','计算机系');INSERT INTO sporter(sporterid,name,sex,department) VALUES(1002,'张三','男','数学系');INSERT INTO sporter(sporterid,name,sex,department) VALUES(1003,'李四','男','计算机系');INSERT INTO sporter(sporterid,name,sex,department) VALUES(1004,'王二','男','物理系');INSERT INTO sporter(sporterid,name,sex,department) VALUES(1005,'李娜','女','心理系');INSERT INTO sporter(sporterid,name,sex,department) VALUES(1006,'孙俪','女','数学系');INSERT INTO item(itemid,itemname,location) VALUES('x001','男子五千米','一操场');INSERT INTO item(itemid,itemname,location) VALUES('x002','男子标枪','一操场');INSERT INTO item(itemid,itemname,location) VALUES('x003','男子跳远','二操场');INSERT INTO item(itemid,itemname,location) VALUES('x004','女子跳高','二操场');INSERT INTO item(itemid,itemname,location) VALUES('x005','女子三千米','三操场');INSERT INTO grade(sporterid,itemid,mark) VALUES(1001,'x001','6');INSERT INTO grade(sporterid,itemid,mark) VALUES(1002,'x001','4');INSERT INTO grade(sporterid,itemid,mark) VALUES(1003,'x001','2');INSERT INTO grade(sporterid,itemid,mark) VALUES(1004,'x001','0');INSERT INTO grade(sporterid,itemid,mark) VALUES(1001,'x003','4');INSERT INTO grade(sporterid,itemid,mark) VALUES(1002,'x003','6');INSERT INTO grade(sporterid,itemid,mark) VALUES(1004,'x003','2');INSERT INTO grade(sporterid,itemid,mark) VALUES(1005,'x004','6');INSERT INTO grade(sporterid,itemid,mark) VALUES(1006,'x004','4');--查询--1.1 分数总和最高的系名和对应分数SELECT *FROM (SELECT s.department sd,SUM(sums.sm) summaxFROM sporter s,(SELECT g.sporterid,SUM(mark) sm FROM grade g GROUP BY g.sporterid ORDER BY g.sporterid)sumsWHERE s.sporterid=sums.sporteridGROUP BY s.departmentORDER BY summax DESC)WHERE ROWNUM=1;--1.2SELECT *FROM (SELECT s.department sd,SUM(sums.sm) summaxFROM sporter s,(SELECT g.sporterid,SUM(mark) sm FROM grade g GROUP BY g.sporterid ORDER BY g.sporterid)sumsWHERE s.sporterid=sums.sporteridGROUP BY s.departmentORDER BY summax DESC)tempWHERE temp.summax = (SELECT MAX(SUM(sums.sm)) summaxFROM sporter s,(SELECT g.sporterid,SUM(mark) sm FROM grade g GROUP BY g.sporterid ORDER BY g.sporterid)sumsWHERE s.sporterid=sums.sporteridGROUP BY s.department--ORDER BY summax DESC);
第二天续
--2SELECT name,tmpname.itemid,i.itemnameFROM sporter s,item i,(SELECT sporterid,itemid FROM grade WHERE itemid IN (SELECT itemid FROM item WHERE location IN '一操场') AND mark=6)tmpnameWHERE s.sporterid=tmpname.sporterid AND tmpname.itemid=i.itemid;--3SELECT nameFROM sporter s,(SELECT DISTINCT sporterid FROM grade WHERE itemid IN (SELECT itemid FROM grade WHERE sporterid IN(SELECT sporterid FROM sporter WHERE name IN ('张三'))))spidWHERE s.sporterid=spid.sporterid AND name NOT IN ('张三');--4UPDATE grade SET mark = 0WHERE sporterid IN (SELECT sporterid FROM sporter WHERE name IN ('张三'));--5DELETE FROM itemWHERE itemname IN ('女子跳高');
补充个序列的创建、查询、删除:
--创建序列CREATE SEQUENCE studentPKSequence START WITH 1 INCREMENT BY 1;--序列增长SELECT studentPKSequence.nextVal AS studentid FROM dual;--删除序列DROP SEQUENCE studentPKSequence;
- Oracle11g简单建表(约束)、查询、修改脚本
- Oracle11g 字符集查询与修改
- oracle11g创建修改删除表
- SQL简单脚本查询
- 建表并修改表约束
- 查询表约束情况
- 对oracle当中子查询建表,merge操作,创建,修改,删除约束,创建使用触发器的复习练习
- 查询oracle表的信息(表,字段,约束,索引) 按列名+表名查询约束名称
- 查询oracle表的信息(表,字段,约束,索引) 按列名+表名查询约束名称
- sql脚本查询数据库表,数据,结构,约束等操作的方法
- SQL Server 约束 修改表
- 查询表上的约束
- 查询表的约束、索引
- Sql 数据库的新建,表的新建,约束操作,简单查询
- Oracle的关于建表,约束,查询等的练习
- 查询oracle表的信息(表,字段,约束,索引)
- 查询oracle表的信息(表,字段,约束,索引)
- 查询oracle表的信息(表,字段,约束,索引)
- 【Q&A】去除stl vector中特定位置的多个元素续_remove算法初探
- poj3981字符串替换 水的以至于浪费时间的水题
- 第11章 GUI 12 Adapter and repaint.flv
- c语言学习笔记八
- 递归解决全排列生成算法
- Oracle11g简单建表(约束)、查询、修改脚本
- 传智播客网页平面设计学院一期学员宋宁杰感谢信 !
- 关于梦想
- 网络相关知识 路由器
- VC++中调试Release版本时怎样设置断点
- Java I/O的缓冲器细节
- 远镇...
- Qt 在VS中内存泄露 检查
- Linux Command