zoukankan      html  css  js  c++  java
  • SQL__关键字(二)

    一、今日内容

    • SQL UNION 操作符
    • SQL SELECT INTO 语句
    • SQL INSERT INTO ... SELECT语句
    • SQL CREATE DATABASE 语句
    • SQL CREATE TABLE 语句
    • SQL约束
    • SQL CREATE INDEX 语句
    • SQL DROP

    二、具体内容

    • SQL UNION 操作符

      SQL UNION操作符用于合并两个或多个SELECT语句的结果。

      注:UNION 内部的每个SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个SELECT语句中的列的顺序必须相同。

      • SQL UNION语法

        SELECT column_name(s) FROM table1
        UNION
        SELECT column_name(s) FROM table2;
        

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

      • SQL UNION ALL语法

        SELECT column_name(s) FROM table1
        UNION ALL
        SELECT column_name(s) FROM table2;
        
        注释:UNION结果集中的列名总是等于 UNION 中第一个SELECT语句中的列名。
        
    • SQL SELECT INTO 语句

      SELECT INTO 语句从一个表复制数据,然后把数据插入到另一个新表中。

      MYSQL数据库不支持SELECT ... INTO 语句,但支持INSERT INTO ... SELECT语句。
      也可以使用以下语句来拷贝表结构及数据:
      CREATE TABLE 新表
      AS
      SELECT * FROM 旧表
      

      SQL SELECT INTO 语法:

      • 复制所有的列插入到新表中:
      SELECT *
      INTO newtable [IN externaldb]
      FROM table1;
      
      • 只复制希望的列插入到新表中:
      SELECT column_name(s)
      INTO newtable [IN externaldb]
      FROM table1;
      
    • SQL INSERT INTO ... SELECT语句

      INSERT INTO ... SELECT语句从一个表复制数据,然后把数据插入到一个已存在的表中。目标表中任何已存在的行都不会受影响。

      SQL INSERT INTO ... SELECT 语法:

      • 从一个表中复制所有的列插入到另一个已存在的表中:

        INSERT INTO table2
        SELECT * FROM table1;
        
      • 只复制希望的列插入到另一个已存在的表中:

        INSERT INTO table2
        (column_name(s))
        SELECT column_name(s)
        FROM table1;
        
    • SQL CREATE DATABASE 语句

      SQL CREATE DATABASE 语句用于创建数据库。

      • SQL CREATE DATABASE 语法:
      CREATE DATABASE dbname;
      
    • SQL CREATE TABLE 语句

      SQL CREATE TABLE 语句用于创建数据库中的表。

      表由行和列组成,每个表都必须有个表名。

      • SQL CREATE TABLE 语法:

        CREATE TABLE table_name
        (
        column_name1 data_type(size),
        column_name2 data_type(size),
        column_name3 data_type(size),
        ...
        )
        
        #column_name 参数规定表中列的名称。
        #data_type 参数规定列的数据类型(例如 varchar、integer、decimal、date 等等)
        #size参数规定表中列的最大长度。
        
    • SQL约束

      SQL约束用于规定表中的数据规则。

      如果存在违反约束的数据行为,行为会被约束终止。

      约束可以在创建表时规定(通过CREATE TABLE 语句),或者在表创建之后规定(通过ALTER TABLE 语句)。

      • SQL CREATE TABLE +CONSTRAINT语法:

        CREATE TABLE table_name
        (
        column_name1 data_type(size) constraint_name,
        column_name2 data_type(size) constraint_name,
        column_name3 data_type(size) constraint_name,
        ....
        );
        

      在SQL中,我们有如下约束:

      1. NOT NULL - 指示某列不能存储 NULL 值

        NOT NULL约束 强制列不接受NULL值。

        NOT NULL约束强制字段始终包含值,这就意味着,如果不向字段添加值,就无法插入新纪录或者更新记录

        • 添加NOT NULL约束

          在一个已创建的表的“Age”字段中添加 NOT NULL约束,如下:

          ALTER TABLE Persons
          MODIFY Age int NOT NULL;
          
        • 删除NOT NULL约束

          在一个已创建的表的“Age”字段中删除NOT NULL约束,如下:

          ALTER TABLE Persons
          MODIFY Age int NULL;
          
      2. UNIQUE - 保证某列的每行必须有唯一的值。

      3. PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。

      4. FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。

      5. CHECK - 保证列中的值符合指定的条件。

      6. DEFAULT - 规定没有给列赋值时的默认值。

    • SQL CREATE INDEX 语句

      CREATE INDEX 语句用于在表中创建索引,,以便更加快速高效地查询数据。

      用户无法看到索引,他们只能被用来加速搜索/查询。

      • SQL CREATE INDEX 语法:

        在表上创建一个简单的索引,允许使用重复的值:

        CREATE INDEX index_name
        ON table_name (column_name)
        
      • SQL CREATE UNIQUE INDEX 语法:

        在表上创建一个唯一的索引,不允许使用重复的值:唯一的索引意味着两个行不能拥有相同的索引值。

        CREATE UNIQUE INDEX index_name
        ON table_name (column_name)
        

        注释:用于创建索引的语法在不同的数据库中不一样。因此,检查您的数据库中创建索引的语法。

    • SQL DROP

      通过使用DROP语句,可以轻松地删除索引、表和数据库。

      • DROP INDEX 语句

        DROP INDEX 语句用于删除表中的索引。

        1. 用于MS Access的DROP INDEX语法:

          DROP INDEX index_name ON table_name
          
        2. 用于MS SQL Server 的DROP INDEX语法:

          DROP INDEX index_name.index_name
          
        3. 用于DB2/Oracle的DROP INDEX语法:

          DROP INDEX index_name
          
        4. 用于Mysql的DROP INDEX语法:

          ALTER TABLE table_name DROP INDEX index_name
          
      • DROP TABLE 语句

        DROP TABLE用于删除表。

        DROP TABLE table_name
        
      • DROP DATABASE 语句

        DROP DATABASE 语句用于删除数据库。

        DROP DATABASE database_name
        
      • TRUNCATE TABLE 语句

        如果仅仅需要删除表内的数据,但并不删除表本身,请使用TRUNCATE TABLE语句:

        TRUNCATE TABLE table_name
        
  • 相关阅读:
    Apache Beam的特点
    Apache Beam是什么?
    Kudu1.1.0 、 Kudu1.2.0 Kudu1.3.0的版本信息异同比较
    Kudu compaction design
    [转]Oracle trunc()函数的用法
    [转]Charts (Report Builder and SSRS)
    [转]表变量和临时表的比较
    [转]MONTHS_BETWEEN Function
    [转]Grunt 新手一日入门
    [转]Format a ui-grid grid column as currency
  • 原文地址:https://www.cnblogs.com/wsq-1/p/13065843.html
Copyright © 2011-2022 走看看