解锁scott:
sqlplus / as sysdba;
alter user scott account unlock;
alter user scott identified by tiger;
 
 /*
    DDL操作表
        数据库定义语言
*/
--创建表结构
CREATE TABLE STUDENT(
    SNO CHAR(10),
    SNAME VARCHAR2(20),
    AGE NUMBER(3),
    SCHOOLDATE DATE,
    GRADE NUMBER(1) DEFAULT 1,
    CLAZZ NUMBER(2),
    EMAIL VARCHAR2(100)
);
--删除表结构
DROP TABLE STUDENT;
--修改表的名称
RENAME BANK TO SXTBANK;
-------------------修改表的结构
--添加列
ALTER TABLE STUDENT ADD(ADDRESS VARCHAR2(100));
--删除列
ALTER TABLE STUDENT DROP COLUMN ADDRESS;
--修改列
ALTER TABLE STUDENT MODIFY(EMAIL VARCHAR2(200));
/*
    DDL约束
        规范我们输入的数据
            
        加入约束有两种时机
            创建表的时候
            创建表之后
                有可能会首先表中数据的干扰
    非空:
        当前数据项不能为空
    唯一:
        表中的列的值不能相等但是null除外
    主键:
        不为空且唯一
        一个表中只允许有一个主键
        创建主键索引
        主键可以同时指定多个列,称为联合主键,但是一般不这么去写
    外键
    自定义
        自定义约束的值
*/
--测试非空约束
INSERT INTO STUDENT(SNAME) VALUES(\'ZHANGSAN\');
--添加控制约束(非空和唯一)
ALTER TABLE STUDENT MODIFY(EMAIL VARCHAR2(100) NOT NULL);
ALTER TABLE STUDENT ADD(ADDRESS VARCHAR2(10) UNIQUE);
INSERT INTO STUDENT(SNAME,EMAIL) VALUES(\'ZHANGSAN\',\'LIYI@BJSXT.COM\');
INSERT INTO STUDENT(SNAME,EMAIL) VALUES(\'LISISI\',\'LISISI@BJSXT.COM\');
INSERT INTO STUDENT(SNAME,EMAIL,ADDRESS) VALUES(\'LISISI\',\'LISISI@BJSXT.COM\',\'AAA\');
INSERT INTO STUDENT(SNAME,EMAIL,ADDRESS) VALUES(\'WANGWUWU\',\'LISISI@BJSXT.COM\',\'AAA\');
--主键约束
ALTER TABLE STUDENT MODIFY(SNO CHAR(10) PRIMARY KEY);
CREATE TABLE HELLO(
    SNO VARCHAR2(20) PRIMARY KEY
);
CREATE TABLE HELLO(
    SNO VARCHAR2(20),
    CONSTRAINT HELL_PK PRIMARY KEY(SNO)
);
--自定义约束
CREATE TABLE HI(
    AGE NUMBER(3) CHECK(AGE<150)
);
--外键约束
CREATE TABLE QQ(
    GARDE NUMBER(3) PRIMARY KEY,
    GNAME VARCHAR2(20)
);
CREATE TABLE FIREND(
    FID NUMBER(3),
    NAME VARCHAR2(20),
    GRADE NUMBER(3),
    FOREIGN KEY(GRADE) REFERENCES QQ(GARDE) ON DELETE CASCADE
);
--  FOREIGN KEY(GRADE) REFERENCES QQ(GARDE)
--  FOREIGN KEY(GRADE) REFERENCES QQ(GARDE) ON DELETE SET NULL
--  FOREIGN KEY(GRADE) REFERENCES QQ(GARDE) ON DELETE 
----删除数据
--(删除的时候要保证没有子记录)
--(删除的时候子记录设置为空)
--(删除的时候级联删除子记录)
INSERT INTO QQ VALUES(1,\'高中同学\');
INSERT INTO QQ VALUES(2,\'初中同学\');
INSERT INTO QQ VALUES(3,\'小学同学\');
INSERT INTO FIREND VALUES(11,\'张1丰\',1);
INSERT INTO FIREND VALUES(22,\'张2丰\',2);
INSERT INTO FIREND VALUES(33,\'张3丰\',3);
INSERT INTO FIREND VALUES(44,\'张4丰\',1);
INSERT INTO FIREND VALUES(55,\'张5丰\',2);
DELETE FROM QQ WHERE GARDE = 1;

 

版权声明:本文为chenglc原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/chenglc/p/6922958.html