您的位置:首页 > 数据库 > Oracle

如何创建表以及设计表需要注意什么,oracle五种限制

2014-12-20 22:19 911 查看
1、表:是数据库用来存储数据懂得对象,是有结构的数据的集合,是整个数据库系统的基础。概念的东西都是抽象的,其实表就是用来存储数据的。
2、表的组成
desc dept




DEPTNO:该列类型为number(2),表示该列的值只允许最大两个字符(一个英文字符或者一个数字都占一个字符,而一个汉字则占用两个字符)的数字,这个数字可以是1或者99,但不能是100(这是3个字符);NOT NULL表示插入的数据不能为空。

DNAME:该列类型为varchar2(14),表示该列允许最大14个字符。也就是部门名称不能超过14个英文字母或者7个汉字,这一列没有NOT NULL,即可以不输入任何值。

LOC:该列类型为varchar2(13),表示该列允许最大13个字符。就是地点名称不能超过13个英文字母或者6个汉字,这一列没有NOT NULL,即可以不输入任何值。
3、标的列有那些约束
数字:表示的是阿拉伯数字

文本表示的是字符串

4、oracle的约束条件

主键:主键是关系数据库中某一行或者某几列的集合,他能够唯一标识,主键不能包含空值(null),也就是说,员工的姓名可以重复,但是员工的编号是不可以重复的

外键(foreign):外键是关系型数据库表中的一列或者是某几列的组合,它的值或者与另外一个表的一列或者某几列相匹配,这一列是另一个表的主键

非空:就是这一列的值不能为空(NOT NULL)

唯一:这个列的值在表中是唯一存在的,不能重复,但是可以为空值;

条件:可以对列的值设定在某个条件范围之内,比如人的年龄不能为负,可以设置这一列的条件大于0小于200.
表的主键和唯一约束很像,有哪些区别?
表的主键是列的值为表中的唯一标识,不能为空(null),而表的唯一约束是列的值在表中是唯一存在的,可以为空值(null)。

5、如何创建表
创建表:create table Item1(Itemno number(2) not null, Itemname varchar2(20) not null);
插入公司项目的数据:insert into Items(Itemno, Itemname) values (1,'beijingxiangmu');
insert into Items(Itemno) values (1);
insert into Items(Itemno, Itemname) values (2, 'shenzhenxiangmu');
insert into Items(Itemno, Itemname) values (2, 'shanghaixiangmu');
insert into Items(Itemname) values ('suzhouxiangmu');


表中的现象:项目编号有重复,有的项目没有编号,有的项目只有编号没有项目名称
解释原因:item表中没有具体的约束来限制有效数据,例如未使用主键、外键、唯一、非空、条件约束
6、删除表:DROP TABLE ITEM;
drop table:是删除表的SQL语句关键字,后面接表的名字。

7、删除之后创建表item的时候应设置Itemno为主键,Itemname不能为空
CREATE TABLE Items (Itemno numble(2) constraint PK_Items primary key, Itemname varchar2(20) not null);

解释:create table:创建表时,必不可少的关键字,可用于开头随后跟表名;
constraint:定义表中约束所必须的关键字,后面跟约束名,而PK_Items即为Items表主键的约束 名;

primary key:主键约束关键字,表示这一列为表的主键。
插入数据
insert into Items(Itemno, Itemname) values (1,'beijingxiangmu');insert into Items(Itemno) values (1);insert into Items(Itemno, Itemname) values (2, 'shenzhenxiangmu');insert into Items(Itemno, Itemname) values (2, 'shanghaixiangmu');insert into Items(Itemname) values ('suzhouxiangmu');8、创建带有外键的表create table Business(BusiNo number(2) constraint PK_Business primary key ,-----------constraint前无“,”
BusiName varchar2(32) not null,
ItemNo number(2), constraint FK_Business foreign key(ItemNo) references Items(ItemNo),-----------------------------------------------------constraint前面必须有逗号
StratTime date);


foreign key()....references 这是创建表外键必须的SQL语句关键字,并且该列需要和另外一个表的主键对应起来。这里的ItemNO列与Items表中的ItemNo列对应起来,必须在Items表中ItemNo列存在的数据才可以插入Business表中ItemNo的列数据

插入数据:INSERT INTO BUSSINESS(BUSINO,BUSINAME,ITEMNO,STARTTIME) VALUES (1,'BOOK',1,TO_DATE('2008-08-08','YYYY-MM-DD'));INSERT INTO BUSSINESS(BUSINO,BUSINAME,ITEMNO,STARTTIME) VALUES (2,'GLASS',1,TO_DATE('2008-09','YYYY-MM'));INSERT INTO BUSSINESS(BUSINO,BUSINAME,ITEMNO,STARTTIME) VALUES (3,'APPLE',1,NULL);INSERT INTO BUSSINESS(BUSINO,BUSINAME,ITEMNO,STARTTIME) VALUES (4,'SUPERMARKET',2,SYSDATE);

TO_DATE:是oracle的内部函数,可以把字符串转变为时间,这里把字符串“2008-08-08”转变为时间报错原因: 如果是主键,则列的值不能有重复数据
如果是外键,需要确认Items表的itemno中是否存在3号这个项目,不存在则不能增加。这就可以显示出两个表关联外键所起的作用;
9、如何设置表中列值的条件和唯一性CREATE TABLE COMPUTERS(COMPNO NUMBER(4) CONSTRAINT PK_COMP PRIMARY KEY,COMPMODEL VARCHAR2(64) UNIQUE,BUYTIME DATE,PRICE NUMBER(7,2) CONSTRAINT CH_PRICE CHECK(PRICE>0 AND PRICE<30000),OWNER VARCHAR2(32));

UNIQUE:这是唯一约束的关键字,表示该列的值具有唯一性,
CONSTRAINT NAME CHECK...:这是条件约束的关键字,插入更改的数据需要符合这些条件才能把数据提交到数据库中;
DATE:这是oracle数据库中的表列数据类型,这里为时间类型,输入数据必须为时间格式。
NUMBER(7,2):这里的number为数字类型,表示只能是7位数字,可以保持两位小数。

五种约束条件:primary key(主键):constraint PK_name primary key foreign key(外键):constraint FK_name foreign key(列) references items(列)not null(非空)unique(唯一)check(条件):constraint CH_name check(条件)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐