oracle习题练习-表空间-用户-表-约束
题一
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
题二
修改表结构
- 将Emp表中job字段长度改为15;
- 将Emp字段中的mgr字段名字改为ldn;
- 向Emp表中添加一个字段性别(sex char(3));
- 删除Emp表中的员工性别字段;
- 删除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
三 表结构基本练习
- 创建表person
包含两个字段empno number(10)和ename varchar2(50),
写出建表语句
- 添加字段sal number(10,2)
写出添加语句
- 修改字段ename varchar2(100)
写出修改语句
- 删除单一字段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
约束练习
- 非空约束 创建表person
为name字段添加非空约束,请写出sql语句
- 主键约束 在person表的基础上为pid添加主键,请写出sql语句
- 唯一约束 添加新列tel varchar(50)并给该列设置为唯一约束,请写出sql语句
- check约束 (限制插入值的范围,例如年龄必须在0到150岁之间)
- 唯一约束 添加新列age number并给该列设置为check约束,请写出sql语句
- 外键约束
新建两个表地市表(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习题练习-表空间-用户-表-约束的更多相关文章
- orale数据库.实例.表空间.用户.表
近期因为工作原因接触到Oracle数据库.了解到Oracle和mysql的结构上还是有很大的区别的. Oracle数据库---实例---表空间---用户---表 我们将从这5个方面来了解Oracle ...
- 基础概念:Oracle数据库、实例、用户、表空间、表之间的关系
基础概念:Oracle数据库.实例.用户.表空间.表之间的关系 数据库: Oracle数据库是数据的物理存储.这就包括(数据文件ORA或者DBF.控制文件.联机日志.参数文件).其实Oracle数据库 ...
- Oracle 数据库、实例、用户、表空间、表之间的关系
数据库: Oracle数据库是数据的物理存储.这就包括(数据文件ORA或者DBF.控制文件.联机日志.参数文件).其实oracle数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库. ...
- Oracle数据库、实例、用户、表空间、表之间的关系
完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例. 1) 数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等): 2) Oracle数据库实例则是一组Ora ...
- Oracle创建表空间和表
创建表空间和表ORACLE物理上是由磁盘上的以下几种文件:数据文件和控制文件和LOGFILE构成的oracle中的表就是一张存储数据的表.表空间是逻辑上的划分.方便管理的.数据表空间 (Tablesp ...
- Oracle使用游标为所有用户表添加主键语句
应用场合:数据表新增自增一主键能加快数据表的访问速度,而且是整形的索引速度最快.本程序适合在导入Oracle数据库时删除不存在主键的情况下运行. 代码说明:所有的表主键字段名都设置为ID,如果已存在I ...
- 4.windows和Linux下创建oracleusername表空间,表,插入数据,用户管理表等操作
进入超级管理员,运行下面命令 Window下创建数据库.表空间,用户,插入数据等操作 -- 01 创建表空间 -- 注意表空间的路径 依据实际安装环境进行调整 CREATE TABLESPACE ts ...
- 在mysql数据库中创建Oracle数据库中的scott用户表
在mysql数据库中创建Oracle数据库中的scott用户表 作者:Eric 微信:loveoracle11g create table DEPT ( DEPTNO int(2) not null, ...
- Oracle数据库不能创建表空间及表中文乱码问题
1.不能创建表空间问题 datafile为表空间的存放位置,没有将表空间存放路径指定为orcl数据库时,创建表空间出错如下 查看自己的Oracle安装位置,我的Oracle10g安装在虚拟XP系统中, ...
随机推荐
- C#可扩展编程之MEF(五):MEF高级进阶
好久没有写博客了,今天抽空继续写MEF系列的文章.有园友提出这种系列的文章要做个目录,看起来方便,所以就抽空做了一个,放到每篇文章的最后. 前面四篇讲了MEF的基础知识,学完了前四篇,MEF中比较 ...
- CoreData手动创建托管对象子类时报错
1.具体问题 手动创建CoreData,在进行创建托管对象子类时出现报错如图: 2.解决方法 当使用CoreData时,Xcode自动管理实体类,文件都放在Derived Data文件夹中: 所以不需 ...
- sshfs实践记录
sshfs是一款利器,可以将远程linux服务器的路径通过ssh协议挂载到本地指定路径.本地的文件一改动,就自动同步到远程服务器中. 本次的实验在centos 6.9中进行. 1.下载.安装所有的依赖 ...
- 6大主流开源SQL引擎总结,遥遥领先的是谁?
根据 O’Reilly 2016年数据科学薪资调查显示,SQL 是数据科学领域使用最广泛的语言.大部分项目都需要一些SQL 操作,甚至有一些只需要SQL.本文就带你来了解这些主流的开源SQL引擎!背景 ...
- PAT甲级——【牛客练习A1004】
题目描述 An inorder binary tree traversal can be implemented in a non-recursive way with a stack. For ex ...
- Python学习day01 - 计算机基础
第一天 什么是编程 语言就是用来交流的. 语言+火构成了人类的文明 Python语言用来和计算机交流 通过他和计算机交流,然后完成很多程序员想要完成的事情,就叫编程. 为什么要编程 节省劳动力,更高效 ...
- python 创建txt每行写入
txtPath=os.path.join(vocDir,"eval.txt") with open(txtPath,"w") as f: f.writeline ...
- 2018-12-18-WPF-一个空的-WPF-程序有多少个窗口
title author date CreateTime categories WPF 一个空的 WPF 程序有多少个窗口 lindexi 2018-12-18 21:16:40 +0800 2018 ...
- Leetcode322. Coin Change零钱兑换
给定不同面额的硬币 coins 和一个总金额 amount.编写一个函数来计算可以凑成总金额所需的最少的硬币个数.如果没有任何一种硬币组合能组成总金额,返回 -1. 示例 1: 输入: coins = ...
- [转]绑定到异步的ObservableCollection
在进行WPF开发过程中,需要从一个新的线程中操作ObservableCollection,结果程序抛出一个NotSupportedException的错误: This type of Collecti ...