lenf 发表于 2018-9-21 10:18:31

Oracle_071_lesson_p11

DDL数据定义语言
  对象:表table , 视图 view, 序列 sequence , 索引 index,同义词 synonym
  CREATE
  CREATE TABLE dept
  (deptno      NUMBER(2),
  dname       VARCHAR2(14),
  loc         VARCHAR2(13),
  createdate DATE DEFAULT SYSDATE);
  表:字母开头,1-30个字符长度,名称范围 大小写数字   $ 和# ,不要用关键字作表名,不能和其他表名冲突;
  show parameter define;
  如def......_creation为true ,则不分配空间; 为false,则分配空间;

  constraints 约束
  NOT NULL 非空
  UNIQUE唯一
  PRIMARY KEY 主键
  FOREIGN KEY 外键
  CHECK 检查
  约束取名:SYS_Cn,n为唯一数字,未手动取名则系统自动生成;
  取名规则:
  主键   pk_表名_列名
  唯一键 uk_表名_列名
  外键   fk_表名_列名
  checkck_表名_列名
  列级别约束
  如:
  CREATE TABLE employees(
  employee_id number(6)
  CONSTRAINT pk_emp_emp_idPRIMARY KEY,
  first_name varchar2(20),
  ...);
  表级别约束
  如:
  CREATE TABLE employees(
  employee_id number(6),
  first_name varchar2(20),
  ......
  job_idvarchar2(10) NOT NULL,
  CONSTRAINT pk_emp_emp_id
  PRIMARY KEY(EMPLOYEE_ID));
  如 唯一键约束
  CREATE TABLE employees(
  employee_id      NUMBER(6),
  last_name      VARCHAR2(25) NOT NULL,
  email            VARCHAR2(25),
  salary         NUMBER(8,2),
  commission_pct   NUMBER(2,2),
  hire_date      DATE NOT NULL,
  ...
  CONSTRAINT emp_email_uk UNIQUE(email));


  FOREIGN KEY ConstraintKeywords
  FOREIGN KEY: Defines the column in the child table at the table-constraint level

  REFERENCES:>  ON DELETE CASCADE: Deletes the dependent rows in the child table when a row in the parent table is deleted
  ON DELETE SET NULL: Converts dependent foreign key values to null

  CREATE TABLE employees(
  employee_id      NUMBER(6),
  last_name      VARCHAR2(25) NOT NULL,
  email            VARCHAR2(25),
  salary         NUMBER(8,2),
  commission_pct   NUMBER(2,2),
  hire_date      DATE NOT NULL,
  ...
  department_id    NUMBER(4),
  CONSTRAINT emp_dept_fk FOREIGN KEY (department_id)
  REFERENCES departments(department_id),
  CONSTRAINT emp_email_uk UNIQUE(email));
  创建表 示例:
  CREATE TABLE teach_emp (
  empno      NUMBER(5) PRIMARY KEY,
  ename      VARCHAR2(15) NOT NULL,
  job      VARCHAR2(10),
  mgr      NUMBER(5),
  hiredate   DATE DEFAULT (sysdate),
  photo      BLOB,
  sal      NUMBER(7,2),
  deptno   NUMBER(3) NOT NULL
  CONSTRAINT admin_dept_fkey REFERENCES
  departments(department_id));
  创建表用子查询
  CREATE TABLE    dept80
  AS   SELECTemployee_id, last_name,
  salary*12 ANNSAL,
  hire_date   FROM    employees   WHERE   department_id = 80;
  ALTER

  Use the>  Add a new column
  Modify an existing column definition
  Define a default value for the new column
  Drop a column
  Rename a column
  Change table to read-only status
  语法
  alter table test
  add (column datatype, ......)添加列
  modify (column datatype, ......)   变更列
  drop (column datatype, ......)   删除列
  set unusedcolumn colum_name 不可用列
  drop unused columns
  ORACLE修改列名与列类型
  --修改列名
  alter table 表名 rename column 旧列名 to 新列名;
  --修改列类型
  alter table 表名 modify (列名varchar(255));
  删除表的一列:
  alter table表名drop column 列名;
  给表增加一列:
  alter table 表名add 列名   类型   default   值 < not null>;
  案列:
  ALTER TABLE TABLE_ABCADD COLUMN_AAANUMBER DEFAULT 10000NOT NULL ;
  DROP
  drop table test;
  了解 :alter table table_name read only;
  改表名:alter table table_name1 rename to table_name2;
  改列名:alter table table_name rename oldcol column1 to column2;
  看约束(数据字典)select from user_constraints where table_name='TEST' ;
  查看回收站:selectfrom user_recyclebin;

页: [1]
查看完整版本: Oracle_071_lesson_p11