博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle习题练习-表空间-用户-表-约束
阅读量:5091 次
发布时间:2019-06-13

本文共 6906 字,大约阅读时间需要 23 分钟。

题一

1.       创建名字为hy_tablespace的表空间,默认大小为10M;@@

2.       创建一个用户,用户名以自己名字命名,并指定命名空间为hy_tablespace;@@@@

3.       给用户授予connect和resource角色;

4.       创建一张员工表(Emp),字段定义如下

          empno    NUMBER(4), 员工编号

          ename    VARCHAR2(10),     员工姓名

          job      VARCHAR2(9),          岗位

          mgr      NUMBER(4),        上级领导编号

          hiredate  DATE,                     生日

          sal       NUMBER(7,2),       工资

          comm     NUMBER(7,2),      奖金

          deptno   NUMBER(2)         部门编号

5.       将员工编号设置成主键;

6.       创建一个部门表,字段如下

      deptno  NUMBER(2) ,     部门编号

     dname  VARCHAR2(14),            部门名称

     loc     VARCHAR2(13)             部门位置

7.       将部门编号设置为主键;

8.       将Emp表中的ename设置为非空。

9.       将dept表中的dname设置为非空。

10.  将Emp表中的deptno字段设置默认值,默认值为10。

11.  将Emp表中的deptno字段添加外键约束,关联到dept表中的deptno字段。

12.  创建一个序列,名为seq_hy,起始值为1,步长为1,没有最大值限制。

13.  怎样理解数据库和数据库实例的区别?

14.  怎样理解权限和角色的区别?

15.  char和varchar2数据类型有什么区别?

答案

--1.  创建名字为hy_tablespace的表空间,默认大小为10M;@@@@@@@create tablespace hy_tablespace datafile 'c:/app/hp/hp.dbf'size 10m--2.  创建一个用户,用户名以自己名字命名,并指定命名空间为hy_tablespace;@@@@@create user liuwang identified by 123456 default tablespace hy_tablespace--3.  给用户授予connect和resource角色;grant connect to liuwanggrant resource to liuwang --4.  创建一张员工表(Emp),字段定义如下          empno    NUMBER(4), 员工编号          ename    VARCHAR2(10),     员工姓名          job      VARCHAR2(9),       岗位          mgr      NUMBER(4),        上级领导编号          hiredate  DATE,              生日          sal       NUMBER(7,2),       工资          comm     NUMBER(7,2),      奖金          deptno   NUMBER(2)         部门编号  create table emps (  empno number(4),  ename varchar2(9),  job varchar2(9),  mgr number(4),  hiredate date,  sal number(7,2),  comm number(7,2),  deptno number(2)  )--5.  将员工编号设置成主键;alter table emps add constraints pk_empno primary key(empno)--6.  创建一个部门表,字段如下      deptno  NUMBER(2) ,     部门编号     dname  VARCHAR2(14),            部门名称     loc     VARCHAR2(13)             部门位置create table departments (deptno number(2),dname varchar2(14),loc varchar2(13))              --7.  将部门编号设置为主键;alter table departments add constraints pk_deptno primary key (deptno)--8.  将Emp表中的ename设置为非空。alter table emps modify ename not null--9.  将dept表中的dname设置为非空。alter table departments modify dname not null--10. 将Emp表中的deptno字段设置默认值,默认值为10。alter table emps add constraints de_deptno default 10 for deptnoalter table emps modify deptno default 10--11. 将Emp表中的deptno字段添加外键约束,关联到dept表中的deptno字段。alter table emps add constraints fk_deptno3 foreign key (deptno) references departments(deptno)--12. 创建一个序列,名为seq_hy,起始值为1,步长为1,没有最大值限制。create sequence seq_hy start with 1increment by 1--13. 怎样理解数据库和数据库实例的区别?感觉这像类和对象的区别:数据库==磁盘上的文件.--14. 怎样理解权限和角色的区别?权限是为了管理数据库,而具有的特殊管理权限是对资源的一种保护访问.用户要访问A资源前提是用户必须有A资源的访问权限.实事上我们不会直接把权限赋予给用户,而是通过角色来赋予给用户,因为用户拥有某一种权限是因为用户扮演着某一种角色。角色:是权限的集合那正确的流程是不是应该这样呢?把磁盘上文件先读入内存,然后再使用呢.对了,这个才是使用数据库的正确流程. 数据库如何读入内存呢? 这个时候,就是我们要介绍的instance(实例)了.实例就是内存结构和一组后台进程.--15. char和varchar2数据类型有什么区别?char  定长, 最大字符2000 默认1varchar2 变长 最大字符 4000

 题二

修改表结构

  1. 将Emp表中job字段长度改为15;
  2. 将Emp字段中的mgr字段名字改为ldn;
  3. 向Emp表中添加一个字段性别(sex char(3));
  4. 删除Emp表中的员工性别字段;
  5. 删除Emp表;

答案

 

修改表结构--1.  将Emp表中job字段长度改为15;desc emps alter table emps modify(job varchar2(15))--2.  将Emp字段中的mgr字段名字改为ldn;@@@@@alter table emps  rename column mgr to ldn;--3.  向Emp表中添加一个字段性别(sex char(3));alter table emps add (sex char(3))--4.  删除Emp表中的员工性别字段;alter table emps drop column sex;--5.  删除Emp表;drop table emps

 

三 表结构基本练习

  1. 创建表person
    包含两个字段empno number(10)和ename varchar2(50),
    写出建表语句
  2. 添加字段sal number(10,2)
    写出添加语句
  3. 修改字段ename varchar2(100)
    写出修改语句
  4. 删除单一字段sal
    写出删除语句

答案

表结构基本练习1.  创建表person包含两个字段empno number(10)和ename varchar2(50),写出建表语句2.  添加字段sal number(10,2)写出添加语句3.  修改字段ename varchar2(100)写出修改语句4.  删除单一字段sal写出删除语句--1.  创建表person--包含两个字段empno number(10)和ename varchar2(50),create table person (empno number(10) ,ename varchar2(50))--2.  添加字段sal number(10,2)--写出添加语句alter table person add (sal number(10,2))--3.  修改字段ename varchar2(100)--写出修改语句alter table person modify (ename varchar2(100))--4.  删除单一字段sal--写出删除语句alter table person drop column sal

约束练习

  1. 非空约束 创建表person

 

 

为name字段添加非空约束,请写出sql语句

 

  1. 主键约束 在person表的基础上为pid添加主键,请写出sql语句
  2. 唯一约束 添加新列tel varchar(50)并给该列设置为唯一约束,请写出sql语句
  3. check约束   (限制插入值的范围,例如年龄必须在0到150岁之间)
  4. 唯一约束 添加新列age number并给该列设置为check约束,请写出sql语句
  5. 外键约束
    新建两个表地市表(dsb)和学生表(stu)Dsb表要求:id列,数据类型为number,主键;dname列,字符串类型varchar2(20),非空约束Stu表要求:sid列,数据类型为number,主键;sname列,字符串类型varchar2(10),非空约束;           d_id列,数据类型为number,外键,参考dsb的id列。

     

答案

1.  非空约束---创建表person为name字段添加非空约束,请写出sql语句2.  主键约束在person表的基础上为pid添加主键,请写出sql语句3.  唯一约束添加新列tel varchar(50)并给该列设置为唯一约束,请写出sql语句4.  check约束(限制插入值的范围,例如年龄必须在0到150岁之间)添加新列age number并给该列设置为check约束,请写出sql语句Alter table person add age number check(age between 0 and 150)5.  外键约束新建两个表地市表(dsb)和学生表(stu)Dsb表要求:id列,数据类型为number,主键;dname列,字符串类型varchar2(20),非空约束Stu表要求:sid列,数据类型为number,主键;sname列,字符串类型varchar2(10),非空约束;           d_id列,数据类型为number,外键,参考dsb的id列。请写出以上两个表的建表语句达到以上要求-- 1create table person (pid number(10),name varchar2(30))--2 alter table person modify pid not nullalter table person modify name not null --2alter table person add constraints pk_pid primary  key (pid)--3alter table person add(tel varchar2(50))alter table person add constraints un_tel unique (tel)-- 4alter table person add(age number(2) check (age>=0 and age<=150))-- 5create table dsb (id number(10)  primary key,dname varchar2(20) not null )create table stu (sid number(10) primary key ,sname varchar2(10) not null,d_id number(10) references dsb(id)

题四

1)   创建STUDENT表(学生表)结构

2)   为GRADE表添加主键约束

3)   创建GRADE表(年级表)结构。

4)   为STUDENT表添加主键和外键约束

5)   创建SUBJECT表(科目表)结构

6)   为SUBJECT表添加主外键约束

7)   创建Result表(成绩表)结构

8)   为Result表添加主键和外键约束

-- 实验1--1)  创建GRADE表(年级表)结构。create table grade (gradeid number(6) not null,gradename varchar2(50) not null);-- 为GRADE表添加主键约束alter table grade add constraint pk_grade primary key(gradeid)--    创建STUDENT表(学生表)结构create table students(studentid number(8) not null,lognpwd varchar2(50) not null,studentname varchar2(50) not null ,sex char(2) not null,gradeid integer not null,phone varchar2(50),address varchar2(255),borndate date not null,identitycard varchar2(18) not null )--    为STUDENT表添加主键和外键约束alter table students add constraints pk_studenid primary key(studentid)alter table students add constraints fk_gradeid foreign key (gradeid) references grade(gradeid)--创建SUBJECT表(科目表)结构create table subject (subjectid number(8) not null,subjectname varchar2(50) not null ,subjecthour number(5) not null,gradeid number(6) not null )-- 为SUBJECT表添加主外键约束alter table subject add constraints pk_sujectid primary key (subjectid)alter table subject add constraints fk_gradeid2 foreign key(gradeid) references grade (gradeid)--创建Result表(成绩表)结构create table result (id number(8) not null,studentid number(8) not null ,subjectid number(8) not null ,studentresult number(8,3) not null,examdate date not null);--为Result表添加主键和外键约束alter table result add constraints pl_id primary key (id);alter table result add constraints fk_studentid2 foreign key (studentid) references students(studentid)-- 实验2--创建序列,名称:master_seq, 起始值:1, 增量:1, 无最大值, 缓存10create sequence master_seq start with 1increment by 1cache 10

 

转载于:https://www.cnblogs.com/liu-wang/p/8250653.html

你可能感兴趣的文章
MessageBox如何输出整数
查看>>
【置顶】通知:博客永久迁移 (欢迎来新家哦)
查看>>
JSON
查看>>
栈和队列 迷宫求解
查看>>
Java基础 第五章 循环结构(二) 笔记
查看>>
CSS3制作的一款很酷的错位式导航菜单,可用于博客
查看>>
Github C 编译器项目 8cc main函数中用到的 C库函数
查看>>
Java 获取字符串长度 length()
查看>>
JS处理四舍五入函数 toFixed(n)(可取小数点后n位)
查看>>
iOS 开发,工程中混合使用 ARC 和非ARC(转)
查看>>
JavaScript 执行机制
查看>>
Django---csrf_token
查看>>
[翻译]效率低的日子怎么办?
查看>>
设计模式的饕餮盛宴
查看>>
Swift编程语言的相关资料
查看>>
python数据类型之int用法
查看>>
selenium模拟鼠标操作
查看>>
第九章 操作系统
查看>>
尽量用类型化的常量替代预处理器的 #DEFINE 方法
查看>>
CSS教程布局之道
查看>>