最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql表的基礎(chǔ)操作匯總(三)

 更新時(shí)間:2016年08月29日 11:33:28   作者:ZJDWHD  
這篇文章主要匯總了針對(duì)mysql表進(jìn)行的相關(guān)基礎(chǔ)操作,具有一定的實(shí)用性,供大家參考,感興趣的小伙伴們可以參考一下

針對(duì)mysql表進(jìn)行的基礎(chǔ)操作,具體內(nèi)容如下

1.創(chuàng)建表:
創(chuàng)建表的語法形式:

CREATE TABLE table_name(
 屬性名 數(shù)據(jù)類型,
 屬性名 數(shù)據(jù)類型,
 ...
 屬性名 數(shù)據(jù)類型
)

示例:

CREATE TABLE t_dept(
 deptno int,
 dname varchar(20),
 loc varchar(20)

備注:在創(chuàng)建表之前,通常你需要使用 USE 庫名;這樣一條語句來選擇一個(gè)庫,在所選擇的庫中創(chuàng)建表。對(duì)于表名標(biāo)識(shí)符,不能是mysql的關(guān)鍵字,如 CREATE、USE等,建議表名標(biāo)識(shí)符為t_xxx或者tab_xxx;各屬性之間用逗號(hào)隔開,最后一個(gè)屬性后不需要使用逗號(hào)。

2.查看表結(jié)構(gòu):
2.1 DESCRIBE語句查看表的定義 
    USE 庫名; //選擇一個(gè)庫
    DESCRIBE 表名; //查看表的定義信息,DESCRIBE可以使用DESC代替也可
2.2 SHOW CREATE TABLE 語句查看表的詳細(xì)定義 
    USE 庫名; //選擇一個(gè)庫
    SHOW CREATE TABLE 表名 \G 表名; //查看表的定義信息
備注: 在顯示表的詳細(xì)定義信息時(shí),可以使用”;” “\g” “\G” 符號(hào)來結(jié)束,為了讓結(jié)果顯示的更加美觀,便于用戶查看,最好使用\G 來結(jié)束。

3.刪除表:
刪除表的語法形式:
    USE 庫名; //選擇一個(gè)庫
    DROP TABLE 表名; //刪除指定表名的表

4.修改表:
4.1 修改表名 
    對(duì)于已經(jīng)創(chuàng)建好的表, 使用一段時(shí)間后就需要一些結(jié)構(gòu)上的修改,即表的修改操作。為什么不直接刪除表,再按照新的表的定義來創(chuàng)建表呢?原因是如果表中已經(jīng)存在大量的數(shù)據(jù),那么重建后還需要做許多額外的工作,例如數(shù)據(jù)的重載等。為了解決上述問題,mysql提供了ALTER TABLE 語句來實(shí)現(xiàn)修改表結(jié)構(gòu)。
    修改表名的語法形式:ALTER TABLE old_table_name REANME [TO] new_table_name;
4.2 增加字段 
    4.2.1在表的最后一個(gè)位置增加字段
        語法形式為:ALTER TABLE table_name ADD 屬性名 屬性類型;
    4.2.2在表的第一個(gè)位置增加字段
        語法形式為:ALTER TABLE table_name ADD 屬性名 屬性類型 FIRST;
    4.2.3在表的指定字段之后增加字段
        語法形式為:ALTER TABLE table_name ADD 屬性名 屬性類型 AFTER 屬性名;
4.3 刪除字段 
    刪除字段的語法形式:ALTER TABLE table_name DROP 屬性名;
4.4 修改字段 (修改數(shù)據(jù)類型和順序必須是MODIFY,修改名字或名字和屬性必須是CHANGE) 
    4.4.1 修改字段的數(shù)據(jù)類型
    語法形式為:ALTER TABLE table_name MODIFY 屬性名 數(shù)據(jù)類型; //數(shù)據(jù)類型為修改后的數(shù)據(jù)類型
    4.4.2 修改字段的名字
    語法形式為:ALTER TABLE table_name CHANGE 舊屬性名 新屬性名 舊數(shù)據(jù)類型;
    4.4.3 同時(shí)修改字段的名字和屬性
    語法形式為:ALTER TABLE table_name CHANGE 舊屬性名 新屬性名 新數(shù)據(jù)類型;
    4.4.4 修改字段的順序
    語法形式為:ALTER TABLE table_name MODIFY 屬性名1 數(shù)據(jù)類型 FIRTST| AFTER 屬性名2;
    //”屬性名1”參數(shù)表示所要調(diào)整順序的字段名,”FITST”參數(shù)表示將字段調(diào)整到表的第一個(gè)位置,”AFTER 屬性名2”表示將字段調(diào)整到屬性名2字段的位置之后。

5.操作表的約束:
5.1 MySQL支持的完整性約束 
    所謂完整性是指數(shù)據(jù)的準(zhǔn)確性和一致性,而完整性檢查是指檢查數(shù)據(jù)的準(zhǔn)確性和一致性。MySQL提供了一種機(jī)制來檢查數(shù)據(jù)庫表中的數(shù)據(jù)是否滿足規(guī)定的條件,以保證數(shù)據(jù)庫中數(shù)據(jù)的準(zhǔn)確性和一致性,這種機(jī)制就是約束。MySQL除了支持標(biāo)準(zhǔn)SQL的完整性約束外,還擴(kuò)展增加了AUTO_INCREMENT約束。
    1. NOT NULL //約束字段的值不能為空
    2. DEFAULT //設(shè)置字段的默認(rèn)值
    3. UNIQUE KEY(UK) //約束字段的值是唯一
    4. PRIMARY KEY(PK) //約束字段為表的主鍵,可以作為該表記錄的唯一標(biāo)識(shí)
    5. AUTO_INCREMENT //約束字段的值為自動(dòng)增長
5.2 設(shè)置非空約束(NOT NULL, NK) 
    在創(chuàng)建數(shù)據(jù)庫表時(shí),為某些字段加上”NOT NULL”約束條件,保證所有記錄中的該字段都是有值的。 設(shè)置非空約束的語法形式為: 

 CREATE TABLE table_name ( 
  屬性名 數(shù)據(jù)類型 NOT NULL, 
 ); 

5.3 設(shè)置字段的默認(rèn)值(DEFAULT) 
    當(dāng)為數(shù)據(jù)庫表中插入一條新記錄時(shí),如果沒有為某個(gè)字段賦值,那么數(shù)據(jù)庫系統(tǒng)會(huì)自動(dòng)為這個(gè)字段插入默認(rèn)值。設(shè)置數(shù)據(jù)庫表中某個(gè)字段的默認(rèn)值語法形式為: 

 CREATE TABLE table_name ( 
  屬性名 數(shù)據(jù)類型 DEFAULT 默認(rèn)值, 
 );

5.4 設(shè)置唯一約束(UNIQUE, UK) 
    當(dāng)數(shù)據(jù)庫表中的某個(gè)字段上的內(nèi)容不允許重復(fù)時(shí),則可以使用UK約束進(jìn)行設(shè)置。即UK約束在創(chuàng)建數(shù)據(jù)庫表時(shí)為某些字段加上”UNIQUE”約束條件,保證所有記錄中該字段上的值不重復(fù)。
    設(shè)置唯一約束語法形式為:

CREATE TABLE table_name(
 屬性名 數(shù)據(jù)類型 UNIQUE,
);

例如:

CREATE TABLE t_dept(
 deptno INT ,
 dname VARCHAR(20) UNIQUE,
 loc VARCHAR(40) 
);

    如果想給字段dname上的UK約束設(shè)置一個(gè)名字,可以執(zhí)行SQL語句CONSTRAINT,示例如下:

CREATE TABLE t_dept(
 deptno INT,
 dname VARCHAR(20),
 loc VARCHAR(40),
 CONSTRAINT uk_dname UNIQUE(dname)
);
//在為約束設(shè)標(biāo)識(shí)符時(shí),推薦使用“約束縮寫_字段名",因此設(shè)置為uk_dname;

5.5 設(shè)置主鍵約束(PRIMARY KEY , PK) 
    當(dāng)想用數(shù)據(jù)庫表中的某個(gè)字段來唯一標(biāo)識(shí)所有記錄時(shí),則可以使用PK約束進(jìn)行設(shè)置。在數(shù)據(jù)庫表中之所以設(shè)置主鍵,是為了便于快速的查找到表中的記錄。在具體設(shè)置主鍵約束時(shí),必須要滿足主鍵字段的值是唯一、非空的。主鍵可以使單一字段,也可以是多個(gè)字段,因此分為單字段主鍵和多字段主鍵。主鍵約束相當(dāng)于 非空約束 加上 唯一約束。
    5.5.1 單字段主鍵
    設(shè)置PK約束,語法形式如下:

CREATE TABLE table_name(
 屬性名 數(shù)據(jù)類型 PRIMARY KEY,
);

    如果想給字段deptno上的PK約束設(shè)置一個(gè)名字,可以使用CONSTRAINT,示例如下:

CREATE TABLE table_name(
 deptno INT,
 dname VARCHAR(20),
 loc VARCHAR(40),
 CONSTRAINT pk_deptno PRIMARY KEY(deptno)
);

    5.5.2 多字段主鍵
    當(dāng)主鍵有多個(gè)字段組合而成時(shí),則需要通過SQL語句CONSTRAINT來實(shí)現(xiàn),其語法形式如下:

CREATE TABLE table_name(
 屬性名 數(shù)據(jù)類型,
 ......
 [CONSTRAINT 約束名]PRIMARY KEY (屬性名,屬性名......)
);

5.6 設(shè)置字段值自動(dòng)增加(AUTO_INCREMENT) 
    AUTO_INCREMENT 是MySQL唯一擴(kuò)展的唯一性約束,當(dāng)為數(shù)據(jù)庫表中插入新記錄時(shí),字段上的值會(huì)生成唯一的ID,在數(shù)據(jù)庫表中只能有一個(gè)字段使用該約束,該字段的數(shù)據(jù)類型必須是整數(shù)類型,由于設(shè)置自增長字段會(huì)生成唯一的ID,所以該字段也經(jīng)常設(shè)置成PK主鍵。
    設(shè)置自增長語法形式如下:

CREATE TABLE table_name(
 屬性名 數(shù)據(jù)類型 AUTO_INCREMENT, //默認(rèn)字段的值是從1開始增加,每增加一條在前一條的基礎(chǔ)上加1
 deptno INT PRIMARY KEY AUTO_INCREMENT, //通常都會(huì)和PK一起寫
);

5.7 設(shè)置外鍵約束(FOREIGN KEY ,FK) 
    前面的完整性約束都是在單表中進(jìn)行設(shè)置,而外鍵約束通常保證兩個(gè)表之間的參照完整性,即構(gòu)建于兩個(gè)表的兩個(gè)字段之間的參照關(guān)系。在具體設(shè)置FK約束時(shí),設(shè)置FK約束的字段必須依賴于數(shù)據(jù)庫中已經(jīng)存在的”一”(一對(duì)多中的一)的一方的主鍵,同時(shí)外鍵可以設(shè)置為null。
    設(shè)置FK約束的語法形式如下:

CREATE TABLE table_name(
 屬性名 數(shù)據(jù)類型,
 屬性名 數(shù)據(jù)類型,
 [CONSTRAINT 外鍵約束名] FOREIGN KEY (屬性名1) REFERENCES 表名 (屬性名2)
//備注:"外鍵約束名"用來標(biāo)識(shí)約束名,"屬性名1"參數(shù)是"多"的一方表中設(shè)置外鍵的字段名,"屬性2"中,參數(shù)是"一"的一方設(shè)置主鍵約束的字段名。
)

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • mysql中如何查看表是否被鎖問題

    mysql中如何查看表是否被鎖問題

    這篇文章主要介紹了mysql中如何查看表是否被鎖問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • MySQL數(shù)據(jù)庫的約束使用實(shí)例

    MySQL數(shù)據(jù)庫的約束使用實(shí)例

    約束是用來限制表中的數(shù)據(jù)長什么樣子的,即什么樣的數(shù)據(jù)可以插入到表中,什么樣的數(shù)據(jù)插入不到表中,下面這篇文章主要給大家介紹了關(guān)于如何通過一文理解MySQL數(shù)據(jù)庫的約束與表的設(shè)計(jì)的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • MySQL數(shù)據(jù)庫的多表操作

    MySQL數(shù)據(jù)庫的多表操作

    這篇文章主要介紹了MySQL數(shù)據(jù)庫的多表操作,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)有所幫助
    2022-08-08
  • Mapper sql語句字段和實(shí)體類屬性名字有什么關(guān)系

    Mapper sql語句字段和實(shí)體類屬性名字有什么關(guān)系

    這篇文章主要介紹了Mapper sql語句字段和實(shí)體類屬性名字有什么關(guān)系,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • mysql查詢每小時(shí)數(shù)據(jù)和上小時(shí)數(shù)據(jù)的差值實(shí)現(xiàn)思路詳解

    mysql查詢每小時(shí)數(shù)據(jù)和上小時(shí)數(shù)據(jù)的差值實(shí)現(xiàn)思路詳解

    這篇文章主要介紹了mysql查詢每小時(shí)數(shù)據(jù)和上小時(shí)數(shù)據(jù)的差值,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Mysql之組合索引方法詳解

    Mysql之組合索引方法詳解

    這篇文章主要介紹了Mysql之組合索引方法詳解,文中通過示例代碼和查詢結(jié)果展示介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Windows系統(tǒng)下MySQL添加到系統(tǒng)服務(wù)方法(mysql解壓版)

    Windows系統(tǒng)下MySQL添加到系統(tǒng)服務(wù)方法(mysql解壓版)

    這篇文章主要介紹了Windows系統(tǒng)下MySQL添加到系統(tǒng)服務(wù)方法,主要針對(duì)mysql解壓版,感興趣的朋友參考下吧
    2016-05-05
  • 開啟bin-log日志mysql報(bào)錯(cuò)的解決方法

    開啟bin-log日志mysql報(bào)錯(cuò)的解決方法

    開啟bin-log日志mysql報(bào)錯(cuò):This function has none of DETERMINISTIC, NO SQL解決辦法,大家參考使用吧
    2013-12-12
  • MYSQL行列轉(zhuǎn)置方式

    MYSQL行列轉(zhuǎn)置方式

    本文介紹了如何使用MySQL和Navicat進(jìn)行列轉(zhuǎn)行操作,首先,創(chuàng)建了一個(gè)名為`grade`的表,并插入多條數(shù)據(jù),然后,通過修改查詢SQL語句,使用`CASE`和`IF`函數(shù)將列轉(zhuǎn)換為行,總結(jié)指出,`SUM`可以替換為`MAX`、`MIN`、`AVG`等聚合函數(shù),并且在查詢中需要對(duì)普通字段進(jìn)行分組
    2025-01-01
  • MySQL快速對(duì)比數(shù)據(jù)技巧

    MySQL快速對(duì)比數(shù)據(jù)技巧

    這篇文章主要介紹了MySQL快速對(duì)比數(shù)據(jù)的方法以及技巧分享,如果對(duì)此有興趣,一起跟著小編學(xué)習(xí)下吧。
    2018-02-02

最新評(píng)論

巢湖市| 漳平市| 纳雍县| 靖安县| 孟连| 合肥市| 英德市| 若尔盖县| 宝应县| 峡江县| 洛宁县| 安仁县| 芦溪县| 保定市| 屏东市| 沙洋县| 定结县| 霍州市| 武乡县| 民丰县| 陵水| 陇川县| 永顺县| 湘潭县| 德保县| 望江县| 阿瓦提县| 洛浦县| 平度市| 公主岭市| 丰宁| 靖安县| 宾川县| 仙居县| 永德县| 枣阳市| 江阴市| 纳雍县| 昔阳县| 洪泽县| 信阳市|