zoukankan      html  css  js  c++  java
  • Oracle学习第二天--约束

    --0. 创建学生表:学号、姓名、性别、年龄、生日、邮箱、电话
    create table student
    (
    stuno int,
    stuname varchar2(50),
    sex char(1),
    age int,
    birthday date,
    email varchar2(50),
    telephone varchar2(20)
    );

    ---------------------1. 主键约束------------------------
    -- 方式一:不推荐的方式,第一种方式主键的名字是由系统自定义的,不好区别
    create table student
    (
    stuno int primary key,
    stuname varchar2(50),
    sex char(1),
    age int,
    birthday date,
    email varchar2(50),
    telephone varchar2(20)
    );
    -- 方式二:推荐
    create table student
    (
    stuno int,
    stuname varchar2(50),
    sex char(1),
    age int,
    birthday date,
    email varchar2(50),
    telephone varchar2(20),
    constraint pk_stuno primary key(stuno)
    );
    -- 方式三:推荐,当表创建成功之后,写一条语句新增主键
    alter table student add constraint pk_stuno primary key(stuno);

    -----------------------------2. 唯一约束----------------------------
    -- 方式一:不推荐
    create table student
    (
    stuno int primary key,
    stuname varchar2(50),
    sex char(1),
    age int,
    birthday date,
    email varchar2(50) unique,
    telephone varchar2(20) unique
    );
    -- 方式二:推荐
    create table student
    (
    stuno int,
    stuname varchar2(50),
    sex char(1),
    age int,
    birthday date,
    email varchar2(50),
    telephone varchar2(20),
    constraint pk_stuno primary key(stuno),
    constraint uq_email unique(email),
    constraint uq_telephone unique(telephone)
    );
    -- 方式三 alert(js)
    alter table student add ....


    -----------------------------3. 非空约束--------------------------
    -- 方式一:推荐
    create table student
    (
    stuno int,
    stuname varchar2(50),
    sex char(1),
    age int,
    birthday date not null,
    email varchar2(50),
    telephone varchar2(20),
    constraint pk_stuno primary key(stuno),
    constraint uq_email unique(email),
    constraint uq_telephone unique(telephone)
    );
    -- 方式二:看看
    alter table student modify age not null;


    ----------------------------4. 默认约束--------------------------
    --推荐方式:默认约束,当插入的值为null的时候,用默认值代替
    create table student
    (
    stuno int,
    stuname varchar2(50),
    sex char(3) default '男',
    age int,
    birthday date not null,
    email varchar2(50),
    telephone varchar2(20),
    constraint pk_stuno primary key(stuno),
    constraint uq_email unique(email),
    constraint uq_telephone unique(telephone)
    );


    -------------------------5. 检查约束----------------------
    --check约束:检查值是否符合范围
    --方式一:
    create table stuinfo
    (
    stuno int,
    stuname varchar2(50),
    sex varchar2(10) check (sex in ('男','女')),
    sex1 varchar2(10) check (sex1 = '男' or sex1 = '女'),
    age int check(age >0 and age<=100),
    age1 int check(age1 between 0 and 100)
    )
    --方式二:
    create table stuinfo
    (
    stuno int,
    stuname varchar2(50),
    sex varchar2(10) check (sex in ('男','女')),
    sex1 varchar2(10) check (sex1 = '男' or sex1 = '女'),
    age int check(age >0 and age<=100),
    age int check(age between 0 and 100),
    constraint ck_sex check(sex in ('男','女'))
    )
    --方式三
    alter table stuinfo add constraint....


    ------------------------------6. 外键约束---------------------------------
    --外键一定是另外一张表的主键
    alter table stuinfo add constraint fk_stuno foreign key(stuno) references student(stuno)

    -- 插入语句
    -- sysdate:获取当前系统时间
    insert into student(stuno,stuname,age,email,telephone,birthday)
    values(2,'lucy',12,'lucy@126.com','110',sysdate);
    insert into student(stuno,stuname,age,email,telephone,birthday)
    values(3,'jack',12,'jack@126.com','111',sysdate);
    insert into student(stuno,stuname,age) values(1,'lucy',12);

    -- 删除表
    drop table student;
    select * from student;

    -- 修改数据
    update student set stuname = 'jack',sex='男',age=21,email = 'jack@163.com' where stuno=2;

    -- 删除数据
    delete from student where stuno=2
    -- 删除所有
    delete from student
    -- 删除所有
    truncate table student

  • 相关阅读:
    JavaScript笔记
    第二个项目总结
    java设计模式-代理模式
    软件设计师-随笔笔记
    java设计模式-单例模式
    java-内部类介绍
    java-初识JVM运行及类加载过程
    java-java动态性之反射,动态编译,动态执行js及动态字节码操作
    java-初识注解Annotation
    java-网络编程入门
  • 原文地址:https://www.cnblogs.com/javaWHL/p/10308882.html
Copyright © 2011-2022 走看看