乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      MySQL create table語法詳解

       印度阿三17 2019-05-24

        前面在查建表時key和index的區(qū)別時,發(fā)現(xiàn)建表語句包含了太多信息,于是完整看看官方手冊的這一小節(jié)。

        該文章根據(jù)MySQL 5.7的手冊作筆記,而MySQL 8.0該節(jié)地址如下:

        https://dev./doc/refman/8.0/en/create-table.html

      ?

      〇、概述

        CREATE TABLE創(chuàng)建一個使用指定名稱的table,當(dāng)然前提是用戶擁有CREATE權(quán)限。

        常用的簡單的建表語句:

      /*建表的語法*/
      create table [if not exist] Table_name(
          字段一  數(shù)據(jù)類型 [字段屬性|約束] [索引] [注釋] ,
          字段二  數(shù)據(jù)類型 [字段屬性|約束] [索引] [注釋] ,
          .........
          )[表類型][表字符集][注釋]
      
      /*創(chuàng)建一個InnoDB類型,字符集為utf-8,備注為“test Table”的表*/
      /*在這里,我驚喜地發(fā)現(xiàn),單引號、雙引號可以使用在comment關(guān)鍵字中!!*/
      create table test(id int(4))engine=innodb,charset=utf8,comment="test Table";

        默認情況下,表會創(chuàng)建在當(dāng)前數(shù)據(jù)庫下(use database決定當(dāng)前使用的數(shù)據(jù)庫),并使用默認的存儲引擎(InnoDB)。

        以下情況會報錯:

      • 當(dāng)前沒有使用任何數(shù)據(jù)庫,或者要使用的數(shù)據(jù)庫不存在;
      • 數(shù)據(jù)庫中已經(jīng)存在同名表

        關(guān)于表的物理表示的信息會在第二節(jié)講述。

        而創(chuàng)建表時,MySQL會存儲原始的CREATE TABLE語句,包括所有規(guī)范和表選項。這是接下來第一節(jié)的內(nèi)容

        現(xiàn)在要談到的是CREATE TABLE的以下幾個方面:

      • Table name
      • Temporary Tables
      • Cloning or Copying a Table
      • Column Data Types and Attributes
      • Indexes and Foreign Keys
      • Table Options
      • Creating Partitioned Tables

        0.1 Table Name

        關(guān)于Table_name:

        可以被指定為database_name.table_name,就可以直接在指定的數(shù)據(jù)庫中創(chuàng)建表。

        當(dāng)然,如果要使用引號,對db_name和tb_name都要使用引號,`da_name`.`tb_name`。

        table名的命名規(guī)約在9.2章節(jié)。

      ?

        關(guān)于 IF NOT EXISTS:

        阻止錯誤發(fā)生。盡管并不會驗證已經(jīng)存在的表是否與要創(chuàng)建的表具有完全一致的表結(jié)構(gòu)。

      ?

        0.2 Temporary Tables

        可以在建表時使用“Temporary?”關(guān)鍵字,那么所創(chuàng)建的臨時表只會在當(dāng)前會話中可見,會話關(guān)閉后,就被自動刪除。

      ?

        0.3 Cloning or Copying a Table

        Like

        使用“create table ... like”來基于其它表的定義創(chuàng)建一個空表,新表包括了列的所有屬性有以及索引。

      CREATE TABLE new_tbl LIKE orig_tbl;

      ?

        [as] query_expression

        根據(jù)一個查詢結(jié)果集,創(chuàng)建一個包含這些數(shù)據(jù)的新表。

      CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;

      ?

        IGNORE | REPLACE

        這兩個選項表明,當(dāng)根據(jù)select語句創(chuàng)建表時,該如何處理復(fù)制唯一鍵值的行。(how to handle rows that duplicate unique key values when copying a table using a SELECT statement.)

      ?

        Column Data Types and Attributes

        這些就是表的字段定義了。數(shù)據(jù)類型、屬性等。

        每個表的硬限制為4096列,但實際上限會小一些,著取決于一些其它因素。

        這里的選項太多,稍后再聊。

      ?

        Table Options

        Table Options被用來對表的行為進行優(yōu)化。

        在大多數(shù)情況下,不需要指定任何選項。

        這些選項會應(yīng)用于所有的存儲引擎,除非特別指出。若一個表決定不應(yīng)用這些選項,這會被記作表定義的一部分。如果稍后使用ALTER TABLE將表轉(zhuǎn)換為使用不同的存儲引擎,則又可以應(yīng)用這些選項。

        表選項也特別多,常見的如指定engine、charset。

      ?

        Creating Partitioned Tables

        可用于控制使用CREATE TABLE創(chuàng)建的表的分區(qū)。

        選項也很多

        

        Partitioning by Generated Columns

        允許根據(jù)生成列進行分區(qū)。

      ?

      一、CREATE TABLE Statement Retention(語句保留)

      ?

      來源:http://www./content-2-204651.html

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多