Oracle零基础学习第三次课----表、字段类型、约束

1、表
    a.表的结构 : 类似于java类
        表由记录组成 : 类似于java类的对象实例
        记录由字段组成 : 类似于java类的对象实例的属性
        字段内存储数据  

    b.创建表
    create table person
    (
        id number(9),
        name varchar2(20),
        age number(3),
        tall number(3,2),
        sex  char(2)
    );

    c.创建临时表
    create global temporary table t_temp
    (
        tempid number(9),
        tempName varchar2(20)
    )
    on commit delete rows;  //在提交时删除表内的数据
    
    on commit PRESERVE rows; //在登录用户退出时删除数据

    d.表操作
        1)重命名表:
        alter table table_name rename to new_table_name;
        
        2)重命名列:
        alter table table_name rename column old_column_name to new_column_name;

        3)添加新列:
        alter table table_name add column_name data_type [default value][null/not null],...;
        
        4)更改列的数据类型:
        alter table table_name modify column_name data_type [default value][null/not null],...;

        5)删除列:
        alter table table_name drop column_name;
        
        6)删除表:
        drop  table  table_name;

        7)创建好表后,查看表结构
        select * from user_tab_columns where table_name='大写表名';

2、类型
      char(n) --> n=1 to 2000字节(不变长度)  char(10)
      nchar(n) -->           字符(中文占两个字节)
      varchar2(n) --> n=1 to 4000字节(可变长度)
      nvarchar2(n)
      number(m,n) --> m=1 to 38  n=-84 to 127
      date
      long
      raw(n) --> n=1 to 2000字节 (两进制, )
      long raw 2G
      blob    4G * block size
      clob      4G * block size
      bfile  4G * block size(文本二进制)

3、约束
        创建班级信息表,classes(cid int 主键,cname varchar2(100) 非空 唯一,intro varchar2(1000));
            create table classes(
                cid int primary key ,  --标识列  主键
                cname varchar2(100) not null unique,  --非空唯一约束
                intro varchar2(1000)
            ) [tablespace users];
            
        创建学生信息表,stuInfo(sid int 主键,sname varchar2(100) 非空,sex char(2) 男或者女 偶然为男,
            age int 15到30之间,address varchar2(200) 默认地址不详,cid int 外键);
            create table stuinfo(
                sid int primary key,
                sname varchar2(100) not null,
                sex char(2) default '男' --默认为男
                    constraint CK_sex check(sex in('男','女')), --取值只能为男或女
                age int
                    constraint CK_age check(age between 15 and 30),--年龄必须在15之30岁之间
                address varchar2(200) default '地址不详',
                cid int
                    constraint FK_classid references classes(cid)
            );
            
        创建用户信息表  表级约束
            create table users(
               usid int primary key,
               uname varchar2(100) not null,
               age int default 18
                   constraint CK_uage check (age between 20 and 30),
               pwd varchar2(20),
               tel varchar2(20),
               addr varchar(200),
               constraint CK_info check (tel is not null and tel!='' or addr is not null and addr!='')  --表级约束
            );

    a.创建主键约束
    alter table [table_name] add constraint [主键约束名]  primary key(列名);
    alter table sales add constraint PK_sid primary key(sid);

    b.创建外建约束
    alter table [table_name] add constraint [外键约束名] foreign key(列名) references 表名(列名)
    alter table stuinfo add constraint FK_classid foreign key(cid) references classes(cid);
        
    c.创建检查约束
    alter table stuinfo add constraint s_age check (age between 18 and 30);
    alter table stuinfo add constraint CK_sex check(sex in('男','女'));
    
    d.添加非空约束
    alter table stuinfo modify sname not null;  --modify:修改
    
    e.查看约束
    select * from user_constraints [where table_name='大写表名'];
    
    f.禁用或启动约束
    alter table stuInfo disable|enable constraint FK_classid;
    
    g.删除约束
    alter table stuInfo drop constraint FK_classid;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值