oracle笔记02

创建学生表,字段和类型如下所示:
字段字段类型说明
id整型number
name字符型varchar2
sex字符型char(2)
brithday日期型date
score小数型number(3,1)
resume(简历)大文本型clob
create table students(
       id number,
       name varchar2(32),
       sex char(20),
       birthday date,
       score number(3,1),
       resume clob
);
–添加班级字段 cid
alter table students add(cid number);
–学生姓名变成 varchar2(30)
alter table students modify(name varchar2(30));
–删除简历字段
alter table students drop(resume);
–修改表名
rename students to stus
–修改列名 cid–>classid
alter table stus rename column cid to classid;
——————–约束———————-
–非空约束:顾名思义,所约束的列不能为 NULL 值。否则就会报错
     create table t1(id number,name varchar2(32) not null);
—唯一(UNIQUE )约束:在表中每一行中所定义的这列或这些列的值都不能相同。
– 必须保证唯一性。否则就会违法约束条件。
–注意:用于指定列的值不能重复,可以为null
  create table t2(id number unique,name varchar2(30));
–主键约束:唯一而且不能为null,一个表只能有一个主键约束
    create table t3(id number primary key ,name varchar2(30));
–外检约束:用于定义主表和从表之间的关系,外键约束要定义在从表上,主表则必需
– 具有主键约束或是 e unique 约束,当定义外键约束后,
– 要求外键列数据必需在主表的主键列存在或是为 null
    create table class(cid number primary key,
            cname varchar2(32) not null);
    create table t4(sid number primary key,
           sname varchar2(32) not null,
           classid number references class(cid)
           );
–条件(CHECK )约束:表中每行都要满足该约束条件。
– 条件约束既可以在表一级定义也可以在列一级定义。
– 在一列上可以定义任意多个条件约束。
  create table t5(
         id number primary key,
         sal number check(sal>=1000 and sal<2000),
         sex char(2) check(sex in ('男','女')) 
  );       
–案例
–商品goods表:
商品号 goodsId(主键),商品名 goodsName(非空),
单价 price(大于零),商品类别 category,供应商 provider;
  create table goods(
         goodsid number primary key,
         goodsname varchar2(64) not null,
         price number check(price >0),
         category varchar2(10),
         provider varchar2(64)
  );   
–客户customer表:
客户号 customerId(主键),姓名 name(非空),住址 address,
邮箱 email,性别 sex(默认男,check),身份证 cardId(唯一);
  create table customer(
         customerid number primary key,
         cname varchar2(20) not null,
         address varchar2(200),
         email varchar2(64)  unique,
         sex char(2) default '男' check(sex in ('男','女')),
         idcard char(18) unique 
  );
–购买purchase表:
客户号 customerId(外键),商品号 goodsId(外键),
购买数量 nums(1 到 30 个);
    create table purchase(
           cid number references customer(customerid),
           gid number references goods(goodsid),
           nums number check(nums>=1 and nums<=30)
    ); 
–要求
建表,在定义中要求声明:
   (1).每个表的主外键;
   (2).客户的姓名不能为空值;
   (3).单价必须大于 0,购买数量必须在 1 到 30 之间;
   (4).邮箱不能够重复;
   (5).客户的性别必须是 男 或者 女,默认是男;
–维护约束
     create table t6(id number,
              name varchar2(32),
              idcard char(18),
              address varchar2(200)
              );
–增加主键:
    alter table t6 add constraint PK_T6 primary key(id);
–添加非空约束
  alter table t6 modify name not null;
–添加唯一约束
    alter table t6 add constraint UK_IDCARD unique(idcard);

##### –添加检查约束

     alter table t6 add constraint CK_ADDRESS check(address in ('伊滨','老城区','洛龙区'));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值