Oracle 数据库之表的简单操作(一)
来源:互联网 发布:蝎子网络第二季百度云 编辑:程序博客网 时间:2024/04/29 13:47
1.数据定义语句(DDL)
DDL语句英文全称是Data Definition Language,主要用来定义<Create>、修改<Alter>、删除<Drop>Oracle数据库中的各种对象。
1.1 Create Table
create Table语句用来在数据库中创建表,以下代码就是在数据库中创建student表:
<span style="font-family:Microsoft YaHei;">CREATE TABLE student --指定表名称( stuid INT, --添加id字段 stuname VARCHAR2 (64), --添加name字段 email VARCHAR2 (64) -- 添加email字段);</span>
在创建表的同时可以对表中的字段添加基本的约束。于是我们可以将上述代码优化如下:
<span style="font-family:Microsoft YaHei;">CREATE TABLE student --指定表名称( stuid INT NOT NULL UNIQUE, --添加id字段 stuname VARCHAR2 (64) NOT NULL, --添加name字段 email VARCHAR2 (64) -- 添加email字段);</span>其中not null表示该字段的数据不能为空,unique表示该列的值是唯一的不能重复。
除了使用上述方法来创建表之外,我们还可以使用create table tablename as select ...语法创建和student表相同结构的表。
<span style="font-family:Microsoft YaHei;">CREATE TABLE student_copy AS SELECT * FROM student;</span>但是,要注意的是:
①:这样创建的表不能复制约束条件与列的默认值,这需要手工重新添加
②:不能为新表指定表空间,默认情况下采用的是当前用户的表空间
③:原表不能包含大对象的数据类型
1.2 Alter语句
Alter语句用来修改数据库对象,可以修改表、视图、索引、触发器的定义等。
<span style="font-family:Microsoft YaHei;">-- 向student表中添加address字段,且该字段为非空ALTER TABLE student ADD address VARCHAR2 (128) NOT NULL;-- 修改student表中的stuname字段长度为128ALTER TABLE student MODIFY stuname VARCHAR2 (128);-- 将student表中的email字段重命名为my_emailALTER TABLE student RENAME COLUMN email TO my_email;-- 删除student表中的email字段ALTER TABLE student DROP COLUMN my_email;</span>
2.表之间的约束
表之间的约束是用来保证数据完整性的一套机制,约束是数据库服务器强制用户必须遵守的业务逻辑。Oracle中常见的约束有以下几种。
(1)、非空约束
(2)、唯一约束
(3)、检查约束
(4)、主键约束
(5)、外键约束
2.1 主键约束
创建主键约束方法一:
<span style="font-family:Microsoft YaHei;">CREATE TABLE student( stuid NUMBER PRIMARY KEY, --主键约束,唯一且非空 stuname VARCHAR2 (64), email VARCHAR2 (64));</span>
使用primary key关键字对id列进行修饰,表示将id作为主键(唯一且非空),但这是最简单的指定主键的方式,不推荐这么做。
建议使用constraint关键字,使用列级别的constraint来创建主键:
<span style="font-family:Microsoft YaHei;">CREATE TABLE student( stuid NUMBER CONSTRAINTS student_PK PRIMARY KEY, stuname VARCHAR2(64) CONSTRAINTS stuname_nn NOT NULL, email VARCHAR2 (64));</span>
这样可以显示地创建约束,并且能够为主键指定名称,我们可以在user_constraints数据字典表中查询对应约束的相关信息。
创建表级别的主键:
<span style="font-family:Microsoft YaHei;">CREATE TABLE student( stuid NUMBER, stuname VARCHAR2 (64) CONSTRAINTS stuname_nn NOT NULL, email VARCHAR2 (64), grade NUMBER, CONSTRAINTS student_PK PRIMARY KEY (stuid));</span>在为表创建主键时,应该考虑一下规则:
①:主键应该是对用户没有意义的,例如最好不要使用身份证号码作为表的主键
②:主键应该是单列的,这样可以提高数据筛选的性能
③:主键不能被更新
④:主键不能包含动态的数据,比如不要用时间戳作为主键
⑤:主键最好是计算机自动生成的,在Oracle中可以使用序列作为主键
2.2外键约束
外键约束又称为引用约束,用来在多个表之间定义关系,强制引用完整性。
创建班级表Grade
<span style="font-family:Microsoft YaHei;">CREATE TABLE grade( gradeid NUMBER, gradedesc VARCHAR2 (200), CONSTRAINTS grade_PK PRIMARY KEY (gradeid));</span>当我们要描述学生A属于哪一个年级时,可以通过在student表中添加外键约束grade字段
<span style="font-family:Microsoft YaHei;">CREATE TABLE student( stuid NUMBER, stuname VARCHAR2 (64) CONSTRAINTS stuname_nn NOT NULL, email VARCHAR2 (64), grade NUMBER, CONSTRAINTS student_PK PRIMARY KEY (stuid), CONSTRAINTS student_FK_grade FOREIGN KEY (grade) REFERENCES grade (gradeid));</span>
<span style="font-family:Microsoft YaHei;">ALTER TABLE SCOTT.STUDENT ADD ( CONSTRAINT STUDENT_FK_GRADE FOREIGN KEY (GRADE) REFERENCES SCOTT.GRADE (GRADEID) ENABLE VALIDATE);</span>
1 0
- Oracle 数据库之表的简单操作(一)
- 数据库学习之实验一+Oracle数据库的基本操作
- oracle数据库的简单操作
- 重温Mysql(一)数据库表的简单操作
- Oracle之简单的表操作
- Oracle数据库之操作表的约束
- Oracle入门(一)之登陆操作数据库
- Oracle入门(一)之登陆操作数据库
- 【java之路】关于oracle数据库的一些操作小结(一)
- oracle数据库简单操作
- MYSQL之操作数据库表(一)
- Oracle数据库的增删改查(简单操作)
- loner_li Oracle数据库的增删改查(简单操作)
- Oracle 数据库操作《一》
- oracle数据库的使用一----用户权限操作
- JavaWeb学习之路(一)--- 数据库简单操作操作和事务
- Oracle 学习(一)---数据库基本操作
- 登陆ORACLE数据库和对数据库的一些简单操作
- CodeForces 554B Ohana Cleans Up
- 动态添加Fragment
- linux ${}表达式详解
- 驱动开发规范
- 数据结构实验之排序七:选课名单
- Oracle 数据库之表的简单操作(一)
- 网页弹窗命令的使用
- c语言---预备知识
- 种花
- HDU 5493 Queue (线段树逐个插入)
- 数据结构实验之求二叉树后序遍历和层次遍历(简单版)
- NOIP 2001数的划分 解题报告(划分型DP)
- CodeForces 366ADima and Guards
- hdu 5101 Select【二分查找】