SQL笔记

数据定义

模式

  1. 定义模式

    • CREATE SCHEMA <模式名> AUTHORIZATION <用户名>;

    • CREATE SCHEMA <模式名> AUTHORIZATION <用户名> [<表定义子句>|<视图定义子句>|<授权定义子句>];

    • 例子:

    • CREATE SCHEMA TEST AUTHORIZATION ZHANG
      CREATE TABLE TAB1(
                     COL1 SMALLINT,
                     COL2 INT,
                     COL3 CHAR(20),
                     COL4 NUMERIC(10,3),
                     COL5 DECIMAL(5,2));
      
  2. 删除模式

    • DROP SCHEMA <模式名> ;

基本表

  1. 定义基本表

    • CREATE TABLE <表名> (<列名><数据类型> [列级完整性约束条件]
                         [,<列名><数据类型> [列级完整性约束条件]]
                         ...
                         [,<表级完整性约束条件>]);
      
    • 例子:

    • CREATE TABLE STUDENT
      (SNO CHAR(9) PRIMARY KEY,
      SNAME CHAR(20) UNIQUE,
      SSEX CHAR(2),
      SAGE SMALLINT,
      SDEPT CHAR(20));
      
    • CREATE TABLE SC
      (SNO CHAR(9),
      CNO CHAR(4),
      GRADE SMALLINT,
      PRIMARY KEY(SNO,CNO),
      FOREIGN KEY(SNO) REFERENCES STUDENT(SNO),
      FOREIGN KEY(CNO) REFERENCES COURSE(CNO));
      

  2. 修改基本表

    • ALTER TABLE <表名>
      [ADD [COLUMN] <新列名> <数据类型> [完整性约束]]
      [ADD <表级完整性约束>]
      [DROP [COLUMN] <列名> [CASCADE|RESTRICT]]
      [DROP CONSTRAINT <完整性约束名> [RESTRICT|CASCADE]]
      [ALTER COLUMN <列名> <数据类型>];    
      
    • 例子:

    • ALTER TABLE Student ADD s_entrance DATE;
      
    • ALTER TABLE Student ALTER COLUMN Sage INT;
      
    • ALTER TABLE Course ADD UNIQUE(Cname);
      

  3. 删除基本表

    • DROP TABLE <表名> [RESTRICT|CASCADE];

索引

  1. 建立索引

    • CREATE [UNIQUE] [CLUSTER] INDEX <索引名>
      ON <表名>(<列名> [<次序> [,<列名> [<次序>]]...);
      
    • 例子:

    • CREATE UNIQUE INDEX Stusno ON STUDENT(Sno);
      

  2. 修改索引

    • ALTER INDEX <旧索引名> RENAME TO <新索引名>;
      
  3. 删除索引

    • DROP INDEX <索引名>;

数据查询

  • SELECT [ALL|DISTINCT] <目标列表达式> [,<目标列表达式>] ...
    FROM <表名或视图名> [,<表名或视图名> ...]|(