中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

mysql創(chuàng)建表的語法結(jié)構(gòu)和表的使用方法

首先我們都知道只有成功創(chuàng)建數(shù)據(jù)庫后,才能創(chuàng)建數(shù)據(jù)表,數(shù)據(jù)表是字段的集合,在表中數(shù)據(jù)按行和列的格式存儲。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名注冊、虛擬空間、營銷軟件、網(wǎng)站建設(shè)、甘南網(wǎng)站維護(hù)、網(wǎng)站推廣。

創(chuàng)建表

MySQL 使用 CREATE TABLE 創(chuàng)建表。其中有多個選擇,主要由表創(chuàng)建定義(create definition)、表選項定義(table options) 和區(qū)分選項(partition options)等內(nèi)容構(gòu)成。

表創(chuàng)建定義

由表列的名字、列的定義集可能的一個空值聲明、一個完整性約束或表索引項組成,表索引項主要定義表的索引、主鍵、外鍵等。

語法結(jié)構(gòu)

CREATE[TEMPORARY]TABLE tbl_name
(
    字段名|數(shù)據(jù)類型[列級完整性約束條件][默認(rèn)值]
    [,字段名2 數(shù)據(jù)類型[列級完整性約束條件][默認(rèn)值]]
    [,....]
    [,表級完整性約束條件]
)[ENGINE=引擎類型]

Example:
新建一個客戶信息

mysql> USE mysql_test
Database changed
mysql> CRATE TABLE customers
    ->(
    -> cust_id INT NOT NULL AUTO_INCREMENT,
    -> cust_name CHAR(50) NOT NULL,
    -> cust_sex CHAR(1) NOT NULL DEFAULT 0,
    -> cust_address CHAR(50) NULL
    -> cust_contact CHAR(50) NULL
    -> PRIMARY KEY(CUST_ID)
    ->)
Query OK, 0 rows affected(0.11 sec)

臨時表與持久表

TEMPORARY:表示臨時表,如果不選用則位持久表。

持久表一直存在,多個用戶或應(yīng)用程序可同時使用持久表,如果只需臨時存放數(shù)據(jù)可添加 TEMPORARY 關(guān)鍵字,臨時表只能對創(chuàng)建它的用戶可見,斷開數(shù)據(jù)庫連接時,表會自動清除。

數(shù)據(jù)類型

數(shù)據(jù)類型指系統(tǒng)中所允許的數(shù)據(jù)的類型。每列都應(yīng)有適當(dāng)?shù)臄?shù)據(jù)類型,來限制或允許該列的數(shù)據(jù)。 建表時必須為每列指定正確的數(shù)據(jù)類型及數(shù)據(jù)長度 (CHAR(50))

MySQL 主要數(shù)據(jù)類型:

數(shù)值類型:整型 int、浮點(diǎn) double、布爾 bool

日期和時間類型:日期型、時間戳 timestamp、時間型 time

字符串類型:定長字符類型char、可變長字符類型varchrar

空間數(shù)據(jù)類型:單個幾何類型 GEOMETRY等

關(guān)鍵字 AUTO_INCREMENT

AUTO_INCREMENT: 表中數(shù)據(jù)類型為整型的列設(shè)置自增屬性 (++i),從當(dāng)前指或 1 開始,表中只能有一個 AUTO_INCREMENT。

當(dāng)一個表列被指定為 AUTO_INCREMENT 后,其值可被覆蓋,即可在表數(shù)據(jù)插入語句中為該列指定一個值(必須唯一),則該值將替換系統(tǒng)自動生成的值,后續(xù)增量基于該插入的值

指定默認(rèn)值

DEFAULT:用于指定MySQL在未給值的情況下默認(rèn)的值(DEFAULT 0)

如果未指定默認(rèn)值,則自動為其分配一個值,如若該列可取值NULL,則默認(rèn)NULL,若定義 NOT NULL,則默認(rèn)取決于該列的類型:

一個沒有聲明 AUTO_INCREMENT 列 為數(shù)字類型,默認(rèn) 0

一個 AUTO_INCREMENT 列 默認(rèn)為順序中的下一個值

對于除 TIMESTAMP 以外的日期和時間類型,默認(rèn)為該類型適當(dāng)?shù)?#39;零'值

對于表中第一個 TIMESTAMP 列,默認(rèn)值為當(dāng)前日期和時間

NULL值

NULL:沒有值或缺值,允許NULL的列,插入行時可以不給該列的值;不允許NULL值的列,則該列必須有數(shù)據(jù)
NULL 和 ''是不對等的 NOT NULL 列中允許'' 不允許 NULL

主鍵

PRIMARY KEY :指定主鍵,主鍵必須唯一且不能為NULL, 如果是單列,值必須唯一,如果是組合列,則其組合的值必須唯一

更新表

通過使用 ALTER TABLE 來修改數(shù)據(jù)庫

ADD[COLUMN]:新增表列,可增多列使用逗號分隔即可

Example:

mysql> ALTER TABLE mysqle_test.customers
    -> ADD COLUMN cust_city char(10) NOT NULL DEFAULT'ShenZhen' AFTER cust_sex;
Query OK,0 rows affected(0.61 sec)
Records:0 Duplicates:0 Warning:0

AFTER:將新增的列添加到cut_sexl 列之后
FIRST:將新增的列添加到表的第一列

若使用上述關(guān)鍵字則將新增的列添加至表最后

類似的 可以使用 ADDPRIMARY KEY 、ADDFOREIGN KEY 、ADD INDEX 添加對應(yīng)的 主鍵、外鍵、索引

CHANGE[COLUMN]: 修改表中列的名稱或數(shù)據(jù)類型,可修改多列使用逗號分隔即可

mysql> ALTER TABLE mysqle_test.customers
    -> CHANGE COLUMN cust_sex sex char(1) NULL DEFAULT 'M'
Query OK,0 rows affected(0.66 sec)
Records:0 Duplicates:0 Warning:0

如果將數(shù)據(jù)類型更換,可能會丟失該列原有的數(shù)據(jù),如果視圖改變的數(shù)據(jù)類型于原有的數(shù)據(jù)類型不兼容,則SQL命令不會執(zhí)行,且拋出錯誤。
再兼容的情況下,該列的數(shù)據(jù)可能會被截斷,如:一列的數(shù)據(jù)類型為 varchart(10),改為char(1),則該列中的數(shù)據(jù)'ShenZhen'會變?yōu)?#39;S'

ALTER [COLUMN]: 修改或刪除指定列的默認(rèn)值

mysql> ALTER TABLE mysqle_test.customers
    -> ALTER COLUMN cust_city SET  DEFAULT 'ShangHai'
Query OK,0 rows affected(0.36 sec)
Records:0 Duplicates:0 Warning:0

MODIFY [COLUMN]: 修改指定列的數(shù)據(jù)類型,通過 'FIRST' 或 'AFTER' 修改列的位置

mysql> ALTER TABLE mysqle_test.customers
    -> MODIFY COLUMN cust_name char(30)  FIRST
Query OK,0 rows affected(0.20 sec)
Records:0 Duplicates:0 Warning:0

DROP [COLUMN]: 刪除列,該列所有數(shù)據(jù)一并刪除

mysql> ALTER TABLE mysqle_test.customers
    -> DROP COLUMN cust_city
Query OK,0 rows affected(0.42 sec)
Records:0 Duplicates:0 Warning:0

同樣 可使用 DROP PRIMARY KEY 、DROP FOREIGN KEY、DROP INDEX 刪除對應(yīng)的主鍵、外鍵、索引

RENAME[TO]:表重命名

mysql> ALTER TABLE mysqle_test.customers
    -> RENAME TOQuery OK,0 rows affected(0.42 sec)

重命名表

除了 ALTER TABLE 中的 RENAME TO 修改表名,還可通過 RENAME TABLE 來修改單張和多張表(以逗號分隔)

mysql> RENAME TABLE mysql_test.back.customers TO mysqle_test.customers

刪除表

DROP[TEMPORARY]TABLE[IF EXISTS]刪除一個已存在的表,可以刪除多張表,前提操作人必須有權(quán)限,但是操作人在該張表上的權(quán)限不會被刪除

查看表

SHOW [FULL] TABLES [{FROM|IN}db_name] [LIKE'pattern'|WHERE expr]: 顯示指定數(shù)據(jù)庫中所有表名

Example:

mysql> USE mysql_testDatabase changedmysql> SHOW TABLES:
 Tables_in_mysql_test
 customers 1 row in set <0.01 sec>

SHOW [FULL] COLUMNS {FROM|IN}tb_name[{FROM|IN}db_name] 或 {DESCRIBE|DESC} tbl_name[col_name|wild]: 顯示指定數(shù)據(jù)庫表結(jié)構(gòu)。

MySQL 支持使用 DESCRIBE 代替 SHOW COLUMNS FROM 來查看表結(jié)構(gòu)

Example:

mysql> DESC mysql_test.custormes
Field         Type       Null key  Default Extra
cust_id       int<11>    NO   PRI  NULL    auto_increment
cust_name     char<50>   NO        Null
cust_sex      int<1>     NO        0

3 row in set <1.56 sec>

以上就是mysql表定義語法詳細(xì)介紹的詳細(xì)內(nèi)容,更多請關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!

本文標(biāo)題:mysql創(chuàng)建表的語法結(jié)構(gòu)和表的使用方法
文章地址:http://www.rwnh.cn/article12/gopdgc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗、云服務(wù)器、標(biāo)簽優(yōu)化網(wǎng)站設(shè)計、電子商務(wù)品牌網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
拜泉县| 马鞍山市| 商河县| 乌拉特中旗| 泾川县| 长岛县| 筠连县| 南漳县| 洪雅县| 珲春市| 福海县| 界首市| 普兰县| 六安市| 宁都县| 广德县| 罗田县| 平湖市| 鱼台县| 瑞金市| 彭水| 河曲县| 祥云县| 台南县| 泽库县| 筠连县| 兴宁市| 满洲里市| 招远市| 尚志市| 武清区| 永安市| 田阳县| 濉溪县| 西丰县| 惠安县| 虹口区| 镇安县| 石城县| 潮安县| 扎赉特旗|