`

oracle--建表小题目

阅读更多
create table myemp as select * from emp; //此语句执行之后,会将表结构以及数据完整的复制出来,创建表emp就像那张临时表

添加数据:
insert语句中,不插入和插入空值,效果是一样的,如果不插入,那么默认会填入空值
在sql中插入日期,如果是使用表中的固定好的格式,那么直接插固定格式的字符串
如果使用的不是固定好的格式,那么使用TO_DATE("2001-01-03",'yyyy-mm-dd');

修改数据:
update emp set comm = 100 where empno = '11';

注意:增删改的数据,如果我们不去commit ,那么这些数据会被锁住,别人不能动他,
只有我们commit或者rollback之后,别人才能动

emp{empno,ename,job,mgr(雇员的领导的编号),hiredate,sal,comm,deptno}
dept{deptno,dname,loc}
salgrade{grade,losal,hisal}
bonus{ename,job,sal,comm}




delete清空数据 可以使用rollback回滚
truncate清空数据,不能回滚,会立即释放资源
truncate table 表名称 //这个不是对表结构修改,但是居然也使用了table 关键字,不过这个命令式Oracle自己的命令


Oracle中常用数据类型:NUMBER,VARCHAR,DATE
VARCHAR,VARCHAR2 : 表示字符串,有长度限制,为255
NUMBER(n) 等效于INT, NUMBER(m,n)等效于FLOAT
DATE
CLOB : char large object : 大文本对象,最大存放4G的文本
BLOB: byte large object : 大二进制对象,最大存放4G,放非文本,如电影,mp3,图片

表的建立与删除

create table 表名称(
   字段名称 字段类型 {default 默认值}
)

create table 表名称 AS(子查询)

如果现在子查询写的是: select * from emp ;复制表结构以及表内容
如果现在子查询写的是:select * from emp where 1==2,加入了一个永远不可能成立的条件,
则此时表示只复制表结构,不复制表内容

创建一张person表:
create table person(
   pid VARCHAR2(10),
   name VARCHAR2(200),
   age NUMBER(3),
   birthday DATE,
   sex VARCHAR2(2) DEFAULT '男'
   
); //表的创建语句和java的声明是相反的

删除表:
drop table person;

修改表结构语法:
alter table 表名称 add( 
     pid VARCHAR2(10),
     name VARCHAR2(200) default '男'
)
alter table 表名称 modify(
   pid VARCHAR2(5)  DEFAULT '8888'
) //如果在修改表结构的时候,如果假设数据库中对应的字段里面有一个超过修改字段长度的数据,那么肯定无法实现
注意:对表结构的增删改: 
create table XX() ,
drop table XX
alter table XX add ()
alter table XX modify()

ALTER TABLE office_organization MODIFY(desc VARCHAR2(20) CONSTRAINT nn_desc NOT NULL) ;







为表重命名
在Oracle中才能使用的rename
rename 旧的表名称 to 新的表名称

DB2数据库没有alter指令,DB2是最大型的数据,世界上有十个海量数据库其中7个就是DB2

现在有一张国家表,里面只有一个国家名称的字段,内容如下:"中国,美国,巴西,荷兰",
现在要求通过查询实现对战功能
中国---》美国
中国---》巴西
中国---》荷兰
美国---》中国
美国---》巴西
美国---》荷兰

问:此程序如何实现?
create table conutry(
   name vatchar2(4)
)

select c1.name ||'---->'||c2.name 
from country c1,country c2
where c1.name <>c2.name

id----varchar2(4)
name--varchar2(50)
address---varchar2(50)

题目:
有某个学生运动会比赛信息的数据库,保存了如下的表:
运动员sport(运动员编号sporterid,运动员姓名name,运动员性别 sex,所属系号 department);
项目item (项目编号 itemid,项目名称itemname,项目比赛地点location)
成绩grade(运动员编号sportid,项目编号itemid,积分mark)

1.建表
(1)定义各个表的主码外码约束
(2)运动员的姓名和所属系别不能为空值
(3)积分要么为空,要么为6,4,2,0,分别代表一。二,三名和其他名次的积分

create table sporter(
   sporterid varchar2(128) ,
   name varchar2(10) NOT NULL,
   sex varchar2(2),
   department varchar2(128) NOT NULL,
   constraint sport_sporterid_pk PRIMARY KEY(sporterid),
   constraint sport_sex_ck CHECK(sex IN ('男','女'))
)
项目item (项目编号 itemid,项目名称itemname,项目比赛地点location)
create table item(
   itemid varchar2(128),
   itemname varchar2(50),
   location varchar2(128),
   CONSTRANINT item_itemid_pk PRIMARY KEY(itemid)
)
成绩grade(运动员编号sportid,项目编号itemid,积分mark)
create table grade(
   sportid varchar2(128),
   itemid varchar2(128),
   mark NUMBER(1),
   CONSTRAINT sporter_grade_sportid_fk FORIGEN KEY(sportid) REFERENCES sport(sportid) ON DELETE CASCADE,
   CONSTRAINT item_grade_itemid_fk FOREIGEN KEY(itemid) REFERENCES item(itemid) ON DELETE CASCADE,
   CONSTRAINT grade_mark_ck CHECK(mark IN(6,4,2,0))
)

分享到:
评论

相关推荐

    传智播客Oracle.rar

    本压缩包“传智播客Oracle.rar”正是这样一个集合,包含了Oracle的学习材料,包括建表文件、PPT讲解以及各种练习题,旨在全方位提升学习者对Oracle的掌握。 首先,建表文件是学习数据库的基础,它涉及到SQL语言中的...

    oracle PL/SQL测试题目和详细答案

    ### Oracle PL/SQL测试题目与知识点解析 #### 一、选择题知识点解析 **1. Oracle数据库中为新创建的表分配的初始空间通常为多大?** - **知识点解析:** Oracle数据库为新创建的表分配的空间单位是“区”(Extent...

    oracle 数据库46道经典查询

    根据给定文件的信息,我们可以梳理出46道经典的Oracle数据库查询题目所涉及的关键知识点,包括基本的表结构设计、数据插入以及复杂的SQL查询语句。下面将详细介绍这些知识点。 ### 表结构设计 #### 学生表...

    oracle考试题目.docx

    1. **写出这四张表建表的DDL语句;(要求有注释)** - 用户表(tb_user): ```sql CREATE TABLE tb_user ( user_id NUMBER(4) PRIMARY KEY, -- 用户ID name VARCHAR2(20), -- 姓名 delpt_id NUMBER(2), -- 部门...

    oracle数据库经典题目

    1.在多进程Oracle实例系统中,进程分为用户进程、后台进程和服务进程。 2.标准的SQL语言语句类型可以分为:数据定义语句(DDL)、数据操纵语句(DML)和数据控制语句(DCL)。 3.在需要滤除查询结果中重复的行时,必须...

    样例数据库,oracle和mysql均适用

    通过解决这些题目,用户可以提高处理大数据的能力,学习如何有效地从数据库中提取所需信息。 参考答案则为用户提供了解决问题的正确方法,帮助他们验证自己的解决方案是否正确,或者理解不同的解题策略。这对于自学...

    创智和宇.docx(某公司的校招题目)

    2. **Oracle数据库建表语句** - 提供的建表语句创建了名为TAB1的表,并对各列添加了注释。要删除姓名为"小明"的重复记录,保留一条,可以使用以下SQL: ```sql DELETE FROM TAB1 WHERE AAC003 = '小明' AND ...

    数据库建表增加或删除字段

    本文将基于给定的文件信息——“数据库建表增加或删除字段”来详细阐述如何通过SQL语句实现这些操作。 ### 一、删除表中的字段 #### 1.1 概念理解 在Oracle数据库中,如果一个表中存在某个字段已经不再被使用或者...

    基于oracle的在线考试系统的设计

    本篇文章将深入探讨如何利用Oracle数据库进行系统设计,包括核心的建表、创建视图、触发器、函数以及存储过程等关键环节。 一、建表设计 在构建在线考试系统时,数据表是基础。首先,我们需要创建用户表(USER),...

    Oracle OCM 考试 实验手册

    4. 考试过程大部分以手工处理为主,如手工建库,手工建表或同义词等。有些题目明确指定不能使用DBCA等,请注意,不然会被扣分。 5. OCM有关资料见以下链接:(链接指向有点问题,请直接拷贝链接) [url]...

    Oracle课程目录

    - **练习题目**:提供涉及建表、更新和查询操作的综合练习题目。 - **解题思路**:分享解决问题的逻辑和步骤。 - **答案验证**:确保答案的正确性和合理性。 #### 46. 前台工具 - PL/SQL Developer - **PL/SQL ...

    SSM+Oracle在线考试交友学习论坛系统.zip

    在这个系统中,Oracle用于存储用户信息、考试题目、论坛帖子等数据。可能涉及到的数据表包括用户表、考试表、论坛主题表、回复表等。 在“建表”文件中,很可能包含了创建这些数据库表的SQL脚本,如用户表(users)...

    oracle基础练习卷

    建表(包含约束) ```sql CREATE TABLE dept ( deptID VARCHAR2(8) PRIMARY KEY, deptName VARCHAR2(24), deptType CHAR(1) ); CREATE TABLE person ( personID VARCHAR2(8) PRIMARY KEY, name VARCHAR2(24), ...

    ORACLE考试试题

    以下是对题目中涉及的Oracle和JDBC相关知识点的详细解释: 1. SQL语言:SQL(Structured Query Language)是一种标准化的数据库查询和操作语言,用于管理和处理关系型数据库。选项c正确,SQL可以创建、修改和删除...

    oracle教案(doc)+SQL Reference 10g(chm).rar

    3.6.1 题目背景: 96 3.6.2 功能要求: 96 3.6.3 建表 96 3.6.4 数据 97 3.6.5 要求 98 3.7 视图(重点) 98 3.7.1 创建视图的语法: 98 3.7.2 删除视图: 99 3.7.3 完整的视图创建语法: 100 3.7.4 视图对基本表的...

    贵州大学计算机考研复试面试辅导资料.docx

    这部分内容包括了贵州大学计算机考研历年机试的真题,涵盖了各种编程题目,如链表操作、字符操作、递归算法等。 - **链表操作**:如链表反转、合并两个有序链表等。 - **字符操作**:如字符串反转、查找最长回文...

    dba面试锦集

    以下将对题目中的几个关键点进行详细解析: 1. **建表与数据输入**: - 创建班级表`class`,主键为`classid`,外键`subject`关联专业表,`deptname`为系名,`entertime`为入学年份,`num`为人数。为`classid`设置...

    mysql练习题-sql_practice.pdf

    MySQL数据库的建表、查询、更新、删除等操作都离不开SQL语句。 接着,根据简介内容,我们可以提炼出以下知识点: 1. 数据库表的结构描述(DESCRIBE):DESCRIBE是一个SQL语句,用于获取表的列信息,包括字段名、...

Global site tag (gtag.js) - Google Analytics