• Chatper 10Using DDL Statements to Create and Manage Tables


    Objectives

    • After completing this lesson,you should be able to do the following:
    • Categorize the main database objects
    • Review the table structure
    • List the data types that are available for columns.
    • Create a simple table
    • Explain how constraints are created at the time of table creation.
    • Describe how schema objects work.

    Lesson Agenda

    • Database objects
      •  -Naming rules
    • CREATE TABLE statement
      •  -Access another user`s tables
      •  -DEFAULT option
    • Data types
    • Overview of constrains:NOT NULL,PRIMARY KEY,FOREIGN KEY,CHECK constraints
    • Creating a table using a subquery
      • ALTER TABLE
      •  -Read-only tables
    • DROP TABLE statement 

    Naming Rules

    Table names and column names:

    • Must begin with a letter
    • Must be 1-30 character long
    • Must contain only A-Z,a-z,0-9,_,$,and #
    • Must not duplicate the name of another object owned by the same user
    • Must not be an Oracle server-reserved word

    CREATE TABLE Statement

    • You must have:
      •  -CREATE TABLE privilege.假如你想在别人的schema里面创建表的话,你必须用后CREATE ANY TABLE privilege.
      •  -A storage area 
    CREATE TABLE [schema.]table
    
     (column datatype [DEFAULT expr][, ...]);
    • You specify:
      •  -Table name
      •  -Column name,column data type,and column size
    • Demo:CREATE A SMIPLE TABLE

    Referencing Another User`s Tables

    • Tables belonging to other users are not in the user`s schema.
    • You should use the owner`s name as a prefix to those tables.

    DEFAULT Option

    • Specify a default value for a column during an insert
     ...hire_date DATE DEFAULT SYSDATE,...
    • Literal values,expressions,or SQL functions are legal values
    • Another column`s name or a pseudocolumn are illegal values
    • The default data type must match the column data type. 
    demo:
    CREATE TABLE T(
            ID NUMBER(8),
            NAME CHAR(10),
            SEX CHAR(1) DEFAULT '1'
        );

    Oracle Data Types

    可参考号文章http://www.cnblogs.com/arcer/archive/2013/04/11/3014298.html

    Including Constraints

    • Constraints enforce rules at he table level
    • Constraints prevent the deletion of a table if there are dependencies.
    • The following constraint types are valid:
      • -NOT NULL
      • -QUIQUE
      • -PRIMARY KEY
      • -FOREIGN KEY
      • -CHECK

    Constraint Guidelines

    • You can name a constraint,or the Oracle server generates a name by using SYS_Cn format.
    • Create a constraint at either of the following times:
      •  -At the same time as the creation of the table
      •  -After the creation of the table
    • Define a constraint at he column or table level
    • View a constraint in the data dictionary

    Define Constraints

    Syntax:   

    CREATE TABLE [schema.]table (  column datatype [DEFAULT expr]  [column_constraint],  ...  [table_constraint][,...] ); 

       Column-level constraint syntax: column [CONSTRAINT constraint_name] constraint_type,

       Table-level constaint syntax: column,... [CONSTRAINT constraint_name] constraint_type (column,...),

    Demo

    Example of a column-level constraint:   

    CREATE TABLE employees(  employee_id NUMBER(6) CONSTRAINT emp_emp_id_pk PRIMARY KEY,  first_name VARCHAR2(20),  ... )

    Example of a table-level constaint:   

    CREATE TABLE employees(  employee_id NUMBER(6),  first_name VARCHAR2(20),  ...  job_id  VARCHAR2(10) NOT NULL,  CONSTRAINT emp_emp_id_pk PRIMARY KEY (EMPLOYEE_ID) );

    UNIQUE Constraint 假如一列是Unqiue constraint,那么如果这一列中存在两个以上的NULL值得话,是否 违反Unique constraint呢?答案,否;

  • 相关阅读:
    day 38
    day 37
    day 36
    day 35
    day 34
    day 33
    day 32
    day 31
    day 30
    day 29
  • 原文地址:https://www.cnblogs.com/arcer/p/3014228.html
Copyright © 2020-2023  润新知