SQL语法之二

作者: 晨曦诗雨 | 来源:发表于2018-11-13 14:53 被阅读2次

    UNION 操作符

    UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
    请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同

      SELECT column_name(s) FROM table_name1
      UNION
      SELECT column_name(s) FROM table_name2
    

    注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。

     SELECT column_name(s) FROM table_name1
     UNION ALL
     SELECT column_name(s) FROM table_name2
    

    SELECT INTO 语句可用于创建表的备份复件或者用于对记录进行存档。

      SELECT *
       INTO Persons_backup
       FROM Persons
    

    mysql不支持以上语句

    Create table orgBack (Select * from org);
    

    IN 子句可用于向另一个数据库中拷贝表:

     SELECT *
     INTO Persons IN 'Backup.mdb'
     FROM Persons
    

    SQL SELECT INTO 实例 - 带有 WHERE 子句

    我们也可以添加 WHERE 子句。

    下面的例子通过从 "Persons" 表中提取居住在 "Beijing" 的人的信息,创建了一个带有两个列的名为 "Persons_backup" 的表:

    SELECT LastName,Firstname
    INTO Persons_backup
    FROM Persons
    WHERE City='Beijing'
    

    SQL SELECT INTO 实例 - 被连接的表

    从一个以上的表中选取数据也是可以做到的。

    下面的例子会创建一个名为 "Persons_Order_Backup" 的新表,其中包含了从 Persons 和 Orders 两个表中取得的信息:

     SELECT Persons.LastName,Orders.OrderNo
     INTO Persons_Order_Backup
     FROM Persons
     INNER JOIN Orders
     ON Persons.Id_P=Orders.Id_P
    

    创建数据库

    CREATE DATABASE database_name
    

    创建表

    CREATE TABLE student (
    id BIGINT,
    stuName VARCHAR(20),
    age INT(8),
    address VARCHAR(20)
    

    )

    SQL 约束 (Constraints

    NOT NULL 约束

    创建表时约束一些字段

     CREATE TABLE Persons
     (
     Id_P int NOT NULL,
     LastName varchar(255) NOT NULL,
     FirstName varchar(255),
     Address varchar(255),
     City varchar(255)
     )
    

    UNIQUE 约束唯一标识数据库表中的每条记录。

    UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。
    PRIMARY KEY 拥有自动定义的 UNIQUE 约束。
    请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。
    CREATE TABLE student (
    id BIGINT NOT NULL,
    stuName VARCHAR (20),
    age INT (8),
    address VARCHAR (20),
    UNIQUE (id)
    )

    为多个列定义时候
    CREATE TABLE Persons
    (
    

    Id_P int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255),
    CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)
    )

    当表已被创建时,如需在 "Id_P" 列创建 UNIQUE 约束,请使用下列 SQL:
     ALTER TABLE Persons
     ADD UNIQUE (Id_P)
    
    ALTER TABLE Persons
    ADD CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)
    
    如需撤销 UNIQUE 约束,请使用下面的 SQL:
    ALTER TABLE Persons
    DROP INDEX uc_PersonID
    

    PRIMARY KEY 约束

    ALTER TABLE Persons
    ADD PRIMARY KEY (Id_P)
    

    FOREIGN KEY 约束

    一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY

     ALTER TABLE Orders
    ADD FOREIGN KEY (Id_P)
    REFERENCES Persons(Id_P)
    
    ALTER TABLE Orders
    ADD CONSTRAINT fk_PerOrders
    FOREIGN KEY (Id_P)
    REFERENCES Persons(Id_P)
    撤销
    ALTER TABLE Orders
    DROP FOREIGN KEY fk_PerOrders
    

    CHECK 约束

    CHECK 约束用于限制列中的值的范围。
    如果对单个列定义 CHECK 约束,那么该列只允许特定的值。
    如果对一个表定义 CHECK 约束,那么此约束会在特定的列中对值进行限制。

    ALTER TABLE Persons
    ADD CHECK (Id_P>0)
    
    ALTER TABLE Persons
    ADD CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')
    撤销
    ALTER TABLE Persons
    DROP CHECK chk_Person
    

    DEFAULT 约束

     ALTER TABLE Persons
     ALTER City SET DEFAULT 'SANDNES'
     撤销
     ALTER TABLE Persons
     ALTER City DROP DEFAULT
    

    索引

      可以重复值
     CREATE INDEX index_name
     ON table_name (column_name)
     唯一的
     CREATE UNIQUE INDEX index_name
     ON table_name (column_name)
    

    alter语句

    • 在表中插入一个字段

      ALTER TABLE table_name
      ADD column_name datatype
      

    *在表中删除一个字段

     ALTER TABLE table_name 
     DROP COLUMN column_name
    

    相关文章

      网友评论

        本文标题:SQL语法之二

        本文链接:https://www.haomeiwen.com/subject/ynskfqtx.html