Mybatis学习之路之Oracle建/改/删表以及一些常用命令

建表之前必须得了解Oracle的数据类型

数据类型如下
VARCHAR2(size)

可变长度的字符串,其最大长度为size个字节;size的最大值是4000,而最小值是1;你必须指定一个VARCHAR2的size;

NVARCHAR2(size)

可变长度的字符串,依据所选的国家字符集,其最大长度为size个字符或字节;size的最大值取决于储存每个字符所需的字节数,其上限为4000;你必须指定一NVARCHAR2的size;

NUMBER(p,s)

精度为p并且数值范围为s的数值;精度p的范围从1到38;数值范围s的范围是从-84到127;
例如:NUMBER(5,2) 表示整数部分最大3位,小数部分为2位;
NUMBER(5,-2) 表示数的整数部分最大为7其中对整数的倒数2位为0,前面的取整。

NUMBER

表示使用默认值,即等同于NUMBER(5);

LONG

可变长度的字符数据,其长度可达2G个字节;

DATE

有效日期范围从公元前4712年1月1日到公元后4712年12月31日

RAW(size)

长度为size字节的原始二进制数据,size的最大值为2000字节;你必须为RAW指定一个size;

LONG RAW

可变长度的原始二进制数据,其最长可达2G字节;

CHAR(size)

固定长度的字符数据,其长度为size个字节;size的最大值是2000字节,而最小值和默认值是1;

NCHAR(size)

也是固定长度。根据Unicode标准定义

CLOB

一个字符大型对象,可容纳单字节的字符;不支持宽度不等的字符集;最大为4G字节

NCLOB

一个字符大型对象,可容纳单字节的字符;不支持宽度不等的字符集;最大为4G字节;储存国家字符集

BLOB

一个二进制大型对象;最大4G字节

BFILE

包含一个大型二进制文件的定位器,其储存在数据库的外面;使得可以以字符流I/O访问存在数据库服务器上的外部LOB;最大大小为4G字节.

了解完成数据类型之后
熟悉熟悉Oracle的一些常用命令

1.DESC 表名 查看表基础结构的信息.

这里写图片描述

2.SELECT * FROM TAB 查看当前用户下的所有表

这里写图片描述

3.HELP TOPIC 显示有那些命令

SQL> help topic

 Help is available on the following topics:

/
@
@@
ACCEPT
APPEND
ARCHIVE LOG
ATTRIBUTE
BREAK
BTITLE
CHANGE
CLEAR
COLUMN
COMPUTE
CONNECT
COPY
DEFINE
DEL
DESCRIBE
DISCONNECT
EDIT
EXECUTE
EXIT
GET
HELP
HOST
INDEX
INPUT
LIST
MENU
PASSWORD
PAUSE
PRINT
PROMPT
QUIT
RECOVER
REMARK
REPFOOTER
REPHEADER
RESERVED WORDS (PL/SQL)
RESERVED WORDS (SQL)
RUN
SAVE
SET
SHOW
SHUTDOWN
SPOOL
SQLPLUS
START
STARTUP
STORE
TIMING
TOPICS
TTITLE
UNDEFINE
VARIABLE
WHENEVER OSERROR
WHENEVER SQLERROR
XQUERY

4.EXP 导出数据库(可以在DOS键入exp help=y 可以看到详细说明)

示例:
导出scott下的所有东西
exp scott/tiger full=y file=e:\a.dmp;

导出scott下的emp,dept表
exp scott/tiger tables=(emp,dept) file=e:\emp.dmp

5.IMP 导入数据库(可以在DOS键入imp help=y 可以看到详细说明)

示例
将emp.dmp导入数据库
imp scott/tiger tables=(emp,dept) file=e:\emp.dmp

常用命令差不多就这些。

建表之前应该了解一些建表的三范式
1、第一范式(1NF)
在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。
所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式(1NF)中表的每一行只包含一个实例的信息。例如,对于图3-2 中的员工信息表,不能将员工信息都放在一列中显示,也不能将其中的两列或多列在一列中显示;员工信息表的每一行只表示一个员工的信息,一个员工的信息在表中只出现一次。简而言之,第一范式就是无重复的列。
2、第二范式(2NF)
第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被唯一地区分。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。如图3-2 员工信息表中加上了员工编号(emp_id)列,因为每个员工的员工编号是唯一的,因此每个员工可以被唯一区分。这个唯一属性列被称为主关键字或主键、主码。
第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。简而言之,第二范式就是非主属性非部分依赖于主关键字。
3、第三范式(3NF)
满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。例如,存在一个部门信息表,其中每个部门有部门编号(dept_id)、部门名称、部门简介等信息。那么在图3-2的员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。如果不存在部门信息表,则根据第三范式(3NF)也应该构建它,否则就会有大量的数据冗余。简而言之,第三范式就是属性不依赖于其它非主属性。

现在学习如何创建表

CREATE TABLE table_name (
column1(列名) DATATYPE [NOT NULL] [PRIMARY KEY](一张表中一般只允许一个主键)),
column2 DATATYPE [NOT NULL],

[constraint <约束名> 约束类型 (要约束的字段)
… ] )

说明: 
DATATYPE –数据类型,
NUT NULL –可不可以允许资料有空的。
PRIMARY KEY –是本表的主键。
constraint –是对表里的字段添加约束.(约束类型有
Check,Unique,Primary key,not null,Foreign key)。

下面创建一个简单的表来说明问题。

CREATE TABLE CSDN_USER(
    CU_ID NUMBER(10) NOT NULL PRIMARY KEY,
    CU_NAME VARCHAR2(50),
    CU_AGE NUMBER(3),
    CU_SALARY NUMBER(11,2)
);

这里写图片描述

表就创建成功了
但是发现少加了一个列名(CU_PHONE 电话号码)并且 将CU_ID类型改为number(20)
那么就得修改表了

1.向表中添加新字段
ALTER TABLE table_name ADD (
字段1 类型 [NOT NULL],
字段2 类型 [NOT NULL]
…. );

2.修改表中字段
ALTER TABLE table_name modify(
字段1 类型,
字段2 类型
…. );

3 .删除表中字段
ALTER TABLE table_name drop(
字段1,
字段2
…. );

4 .修改表的名称
RENAME table_name to new table_name;

修改过程
这里写图片描述
这里写图片描述

删除表非常简单
DROP TABLE table_name;

到此Oracle建表就完成了。

水平有限 若有错误 欢迎指正

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章