题一

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 liuwang
grant 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 deptno
alter 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 1
increment by 1 --13. 怎样理解数据库和数据库实例的区别?
感觉这像类和对象的区别
:数据库==磁盘上的文件. --14. 怎样理解权限和角色的区别?
权限是为了管理数据库,而具有的特殊管理
权限是对资源的一种保护访问.用户要访问A资源前提是用户必须有A资源的访问权限.
实事上我们不会直接把权限赋予给用户,而是通过角色来赋予给用户,因为用户拥有某一种权限是因为用户扮演着某一种角色。
角色:是权限的集合
那正确的流程是不是应该这样呢?把磁盘上文件先读入内存,然后再使用呢.
对了,这个才是使用数据库的正确流程.
数据库如何读入内存呢?
这个时候,就是我们要介绍的instance(实例)了.实例就是内存结构和一组后台进程.
--15. char和varchar2数据类型有什么区别?
char 定长, 最大字符2000 默认1
varchar2 变长 最大字符 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列。
请写出以上两个表的建表语句达到以上要求 --
create table person (
pid number(10),
name varchar2(30)
)
--2
alter table person modify pid not null
alter table person modify name not null
--
alter table person add constraints pk_pid primary key (pid)
--
alter table person add(
tel varchar2(50)
)
alter table person add constraints un_tel unique (tel)
--
alter table person add(
age number(2) check (age>=0 and age<=150)
)
--
create 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, 无最大值, 缓存10
create sequence master_seq
start with 1
increment by 1
cache 10

oracle习题练习-表空间-用户-表-约束的更多相关文章

  1. orale数据库.实例.表空间.用户.表

    近期因为工作原因接触到Oracle数据库.了解到Oracle和mysql的结构上还是有很大的区别的. Oracle数据库---实例---表空间---用户---表 我们将从这5个方面来了解Oracle ...

  2. 基础概念:Oracle数据库、实例、用户、表空间、表之间的关系

    基础概念:Oracle数据库.实例.用户.表空间.表之间的关系 数据库: Oracle数据库是数据的物理存储.这就包括(数据文件ORA或者DBF.控制文件.联机日志.参数文件).其实Oracle数据库 ...

  3. Oracle 数据库、实例、用户、表空间、表之间的关系

    数据库: Oracle数据库是数据的物理存储.这就包括(数据文件ORA或者DBF.控制文件.联机日志.参数文件).其实oracle数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库. ...

  4. Oracle数据库、实例、用户、表空间、表之间的关系

    完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例. 1) 数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等): 2) Oracle数据库实例则是一组Ora ...

  5. Oracle创建表空间和表

    创建表空间和表ORACLE物理上是由磁盘上的以下几种文件:数据文件和控制文件和LOGFILE构成的oracle中的表就是一张存储数据的表.表空间是逻辑上的划分.方便管理的.数据表空间 (Tablesp ...

  6. Oracle使用游标为所有用户表添加主键语句

    应用场合:数据表新增自增一主键能加快数据表的访问速度,而且是整形的索引速度最快.本程序适合在导入Oracle数据库时删除不存在主键的情况下运行. 代码说明:所有的表主键字段名都设置为ID,如果已存在I ...

  7. 4.windows和Linux下创建oracleusername表空间,表,插入数据,用户管理表等操作

    进入超级管理员,运行下面命令 Window下创建数据库.表空间,用户,插入数据等操作 -- 01 创建表空间 -- 注意表空间的路径 依据实际安装环境进行调整 CREATE TABLESPACE ts ...

  8. 在mysql数据库中创建Oracle数据库中的scott用户表

    在mysql数据库中创建Oracle数据库中的scott用户表 作者:Eric 微信:loveoracle11g create table DEPT ( DEPTNO int(2) not null, ...

  9. Oracle数据库不能创建表空间及表中文乱码问题

    1.不能创建表空间问题 datafile为表空间的存放位置,没有将表空间存放路径指定为orcl数据库时,创建表空间出错如下 查看自己的Oracle安装位置,我的Oracle10g安装在虚拟XP系统中, ...

随机推荐

  1. DRF 请求生命周期以及各模块解析

    目录 rest_framework框架的封装特点 原生Django与DRF比较 APIView 的请求生命周期 请求模块(request) 解析模块(parser_classes) 异常模块(exce ...

  2. varStatus实现<c:forEach获取元素的下标 集合长度

    有时候需要获取元素的下标,来实现一个编号的效果 那么使用 varStatus可以实现 代码 效果 如果需要把序号倒着数 那就用集合的长度减去当前下标 首先引入 <%@ taglib prefix ...

  3. 第一周课堂笔记4th

    1.    if 对应着程序设计中的三种程序执行流程: 顺序结构,一条一条的按顺序执行,自上而下 选择结构,if  else 单分支,双分支,多分支 循环结构 while for (后面学) 流程控制 ...

  4. python 描述器

    语法简析 一般来说,描述器(descriptor)是一个有”绑定行为”的对象属性(object attribute),它的属性访问被描述器协议方法重写.这些方法是 __get__(). __set__ ...

  5. <scrapy爬虫>爬取校花信息及图片

    1.创建scrapy项目 dos窗口输入: scrapy startproject xiaohuar cd xiaohuar 2.编写item.py文件(相当于编写模板,需要爬取的数据在这里定义) # ...

  6. <每日一题>题目19:简单的程序执行效率面试题

    # 将下面的函数按照执行效率高低排序.它们都接受由0至1之间的数字构成的列表作为输入.这个列表可以很长.一个输入列表的示例如下:[random.random() for i in range(1000 ...

  7. 图数据库neo4j和关系数据库的区别

    相信您和我一样,在使用关系型数据库时常常会遇到一系列非常复杂的设计问题.例如一部电影中的各个演员常常有主角配角之分,还要有导演,特效等人员的参与.通常情况下这些人员常常都被抽象为Person类型,对应 ...

  8. mac上开启22号端口

    在苹果maC系统SSH 远程登录服务器,采用默认22端口,登录出现了以下的提示: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ...

  9. win 7下安装mysql zip格式

    mysql 下载地址:https://dev.mysql.com/downloads/mysql/5.5.html#downloads 下载的mysql格式为zip: 下载完成放在除C盘以外的盘. 一 ...

  10. JAVA_环境配置

    1:系统环境 windows10 64位 jdk版本:jdk-8u131-windows-x64.exe,下载地址:http://www.oracle.com/technetwork/java/jav ...