Oracle

解锁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;
原文地址:https://www.cnblogs.com/chenglc/p/6922958.html