网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的考试资料:

 

标题 Oracle表管理以及约束笔记
内容
    [导读]最近一直在学习Oracle数据库。这几天整理了下 表管理 以及约束的笔记 给大家分享下。
    最近一直在学习Oracle数据库。这几天整理了下 表管理 以及约束的笔记 给大家分享下。
    表管理
    *!常用的数据类型!*
    varchar/varchar2 表示一个字符串
    number/ number(n): 表示一个整数,数字长度是n,可以使用INT
    \ number(m,n): 表示一个小数,数字小数位长度是n,整数长度是m-n,可以使用FLOAT代替
    date 表示日期类型,日期要按照标准日期格式进行存放。
    clob 大对象,表示大文本数据,一般可以存放4G的文本。
    blob 大对象,表示二进制数据,最大可以存放4G,例如:电影、歌曲、图片
    ·表的建立。
    1·复制一张表
    create table 表名 as select * from emp; ----复制emp表中的结构和内容
    create table 表名 as select * from emp where 1=2;----复制结构不复制内容
    2·创建一张表。create 命令
    ________________范例____________________
    create table person
    (
    pid varchar2(18),
    name varchar2(200),
    age number(3),
    birthday date,
    sex varchar2(2)default '男'
    );
    ________________________________________
    ·删除表
    drop 删除表。
    ·修改表(了解) 一般很少修改表 在IBM 的DB2中根本没有alter指令
    *!表中存在大量记录,删除的话 是不是很麻烦?!* 有命令:
    ·增加列:alter指令+table+表名称+add
    __________________________范例__________________________________
    alter table person add(address varchar(200) default '暂无地址');
    ________________________________________________________________
    ·修改列。alter指令+table+表名称+modify+(列信息);
    ·表重命名(Oracle独有的命令)
    rename … to … 只能在Oracle中使用
    ·截断表
    清空一张表 不能回滚,
    需要截断表语法:
    truncate +表明
    ############约束############
    主要分为五种:
    ·主键约束:表示唯一的表示,本身不能为空。 *例如*:身份证编号、
    ·唯一约束:在以个表中只允许建立以个主键约束而其他不想出现重复的值的话,则可以使用唯一约束。
    ·检查约束:检查一个列的内容是否合法。 *例如*:性别只能是男、女、中性。
    ·非空约束,就好像姓名这样的字段就不能为空。
    ·外间约束,在两张表中间进行约束操作。
    1·主键约束(primary key)
    ·一般在ID上使用,而且本身已经默认内容不能为空。可以在建立表的时候指定。
    _________________________范例__________________________________
    create table person
    (
    pid varchar2(18) primary key,
    name varchar2(200),
    age number(3),
    birthday date,
    sex varchar2(2)default '男'
    );
    ________________________________________________________________
    ·可以用constraint来指定约束的名称
    _________________________范例__________________________________
    create table person
    (
    pid varchar2(18) ,
    name varchar2(200),
    age number(3),
    birthday date,
    sex varchar2(2)default '男',
    constraint person_pid_pk primary key (pid)
    );
    ________________________________________________________________
    2·非空约束(not null)
    _________________________范例__________________________________
    create table person
    (
    pid varchar2(18) ,
    name varchar2(200) not null ,
    age number(3) not null ,
    birthday date,
    sex varchar2(2)default '男',
    constraint person_pid_pk primary key (pid)
    );
    ________________________________________________________________
    3·唯一约束(unique)
    表示一个字段中的内容是唯一的,其他列不允许重复。
    _________________________范例__________________________________
    create table person
    (
    pid varchar2(18) ,
    name varchar2(200) not null ,
    age number(3) not null ,
    birthday date,
    sex varchar2(2) default '男',
    constraint person_pid_pk primary key (pid)
    );
    ________________________________________________________________
    4·检查约束(check)
    使用检查约束来判断一个列中插入的内容是否合法、例如年龄的取值范围
    _________________________范例__________________________________
    create table person
    (
    pid varchar2(18) ,
    name varchar2(200) not null ,
    age number(3) not null check(age between 0 and 150),
    birthday date,
    sex varchar2(2) default '男' check(sex in ('男','女','中性')),
    constraint person_pid_pk primary key (pid)
    );
    ________________________________________________________________
    上面语句 优化自定义 约束名称
    create table person
    (
    pid varchar2(18) ,
    name varchar2(200) not null ,
    age number(3) not null ,
    birthday date,
    sex varchar2(2) default '男' ,
    constraint person_pid_pk primary key (pid),
    constraint person_name_uk unique(name),
    constraint person_age_ck check(age between 0 and 150),
    constraint person_sex_ck check(sex in ('男','女','中性'))
    );_________________________________________________
    5·主-外键约束(foreign key)
    之前的约束都是针对一张表的约束,这个主-外键约束是针对两张表的约束。
    范例:书这个表中的一本书属于人这个表中的一个人。
    (1)·首先插入两张表。
    drop table person;
    drop table book;
    create table person
    (
    pid varchar2(18) ,
    name varchar2(200) not null ,
    age number(3) not null ,
    birthday date,
    sex varchar2(2) default '男' ,
    constraint person_pid_pk primary key (pid),
    constraint person_name_uk unique(name),
    constraint person_age_ck check(age between 0 and 150),
    constraint person_sex_ck check(sex in ('男','女','中性'))
    );
    create table book
    (
    bid number primary key not null ,
    bname varchar(30),
    bprice number(5,2),pid varchar2(18)
    );
    (2)·插入完成两张表之后,下一步插入一些数据。
    insert into book(bid ,bname ,bprice,pid) values ( 1,'Java Se' ,'59','111111');
    insert into person (PID,NAME,AGE,BIRTHDAY,SEX) values ('111111','张三',30,to_date('1987-12-27','yyyy-mm-
    dd'),'女');
    (3)·插入以下数据
    insert into book(bid ,bname ,bprice,pid) values ( 1,'Java Se' ,'59','000000');
    *!注意!*此编号的人根本不存在。数据也就不应该插入。
    *!注意!*此时应该用到主-外键关联,关联之后 字表 的数据跟随着 父表 的数据内容
    主-外键语法:foreign key(字段) reference 表名(字段)后者表作为父表 后者表明是指定字段作为父表的字
    段 book 表的创建有所改变,变成如下
    drop table book;
    create table book
    (
    bid number primary key not null ,
    bname varchar(30),
    bprice number(5,2),
    pid varchar2(18) ,
    constraint person_book_pid_fk foreign key(pid) references person(pid)
    );
    再插入数据
    此时就不会出现找不到对应数据的情况。这就是主外键。
    ·在字表中设置的外键在父表中必须是主键。
    ·删除时应该先删除子表,再删除父表。
    drop table book; book表是父表。
    drop table person; person表是字表。
    可以使用强制删除手段,但这个做法一般不使用。
    ________范例______________________
    drop table book cascade constraint;不管约束 直接删除。
    __________________________________
    ·级联删除
    建立主外键连接的时候可以加上 on delete cascade 删的时候连同字表的对应数据一起删除掉。
    这是外键的完整语法。
    ############修改约束#######(了解)##
    ·添加约束
    alter 表名称 add constraint 约束名称 约束类型(字段);
    *!重点!* ROWNUM
    rownum:表示行号、实际上这此是一个列,但这个列是一个伪列,此列可以在每张表中出现。
随便看

 

在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/20 4:40:30