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

一文掌握MySQL表的創(chuàng)建和約束

 更新時(shí)間:2022年07月26日 08:22:22   作者:微涼秋意  
這篇文章主要和大家分享一下數(shù)據(jù)庫(kù)的創(chuàng)建和銷(xiāo)毀語(yǔ)法以及詳細(xì)講解MySQL表的創(chuàng)建代碼和約束的使用,文中的示例代碼講解詳細(xì),感興趣的可以了解一下

一、數(shù)據(jù)庫(kù)的建立和銷(xiāo)毀

建立數(shù)據(jù)庫(kù):

create database [if not exists] 數(shù)據(jù)庫(kù)名 [default charset 字符集]

tips: 中括號(hào)[]里面的內(nèi)容可以省略不寫(xiě)

加上if not exists的含義是:如果不存在此數(shù)據(jù)庫(kù)就會(huì)創(chuàng)建

default charset 字符集是創(chuàng)建數(shù)據(jù)庫(kù)的時(shí)候設(shè)置字符集

銷(xiāo)毀數(shù)據(jù)庫(kù):

drop database [if exists] 數(shù)據(jù)庫(kù)名

tips: 可省略部分的含義同上

二、表的建立和銷(xiāo)毀

1、表的建立

語(yǔ)法:

create table [if not exists] 表名(
    字段名  數(shù)據(jù)類(lèi)型  [約束],
    字段名  數(shù)據(jù)類(lèi)型  [約束],
    ...(最后一個(gè)字段不能加逗號(hào))
)

1.1、命名規(guī)則

表名通常以t_開(kāi)頭

關(guān)鍵字段通常以表名縮寫(xiě)_開(kāi)頭

MySQL不區(qū)分大小寫(xiě),不能使用關(guān)鍵字命名,多個(gè)部分之間用下劃線(xiàn)連接

1.2、數(shù)據(jù)類(lèi)型

需要掌握的數(shù)據(jù)類(lèi)型:

1.整數(shù):int、integer、bigint

2.小數(shù):decimal

3.字符串:varchar

4.枚舉:enum

5.日期:datatime

使用建議:

當(dāng)字段數(shù)字一定大于0并且不會(huì)進(jìn)行減運(yùn)算時(shí)可以使用無(wú)符號(hào)數(shù)unsigned,通常不建議

float和double存在精度問(wèn)題,后續(xù)mysql將不再支持

char和verchar在保存多個(gè)字符時(shí)底層實(shí)現(xiàn)是一致的,只是占用空間的模式不同,不建議使用char,因?yàn)橛锌赡芾速M(fèi)空間

timestamp上限太低,date和time不實(shí)用,所以日期建議使用datetime

2、表約束概念

2.1、約束預(yù)覽

約束解釋說(shuō)明
primary key主鍵用來(lái)標(biāo)志一列為主鍵列
not null非空約束該列值不允許為空
unique唯一約束該列值不允許重復(fù)
default默認(rèn)給該列設(shè)置默認(rèn)值
foreign key外鍵標(biāo)志一列為外鍵值
check檢查約束MySQL不支持

2.2、特點(diǎn)及作用

主鍵

作用:可以作為唯一標(biāo)識(shí)具體鎖定某行數(shù)據(jù)

特點(diǎn):非空且唯一

一張表至多有一個(gè)主鍵列

非空

特點(diǎn):值不能為null,必須設(shè)定

唯一

特點(diǎn):值可以為null,并且可以存在多個(gè)null,該約束只對(duì)已經(jīng)存在的值有效

非空約束+唯一約束 不等同于 主鍵約束

默認(rèn)

特點(diǎn):如果該列未顯式賦值,則使用默認(rèn)值存放

語(yǔ)法: default(值)

外鍵的使用放在下面具體講解

3、表約束具體使用

3.1、列級(jí)約束

直接將約束定義到在列的聲明里

使用示例:

-- id、姓名、年齡、性別、身高、生日
create table if not exists t_person(
        p_id int primary key,-- 主鍵
        p_name varchar(50) unique not null,-- 唯一+非空
        age tinyint unsigned not null,-- 非空 無(wú)符號(hào)數(shù)  0-255
        sex enum('男','女','奧特曼') default '奧特曼',-- 默認(rèn)
        height decimal(4,1), -- 總共有4位,小數(shù)點(diǎn)占1位:000.0
        birthday datetime
)

3.2、表級(jí)約束

將約束單獨(dú)定義在所有列的下方,not null和default沒(méi)有表級(jí)約束

語(yǔ)法:[constraint 自定義約束名] 約束類(lèi)型(字段名)

使用示例:

create table if not exists t_person(
        p_id int,-- 主鍵
        p_name varchar(50) not null,-- 唯一+非空
        age tinyint unsigned not null,-- 非空 無(wú)符號(hào)數(shù)  0-255
        sex enum('男','女','奧特曼') default '奧特曼',-- 默認(rèn)
        height decimal(4,1), -- 總共有4位,小數(shù)點(diǎn)占1位:000.0
        birthday datetime,
        -- 表級(jí)約束
        primary key(p_id),-- 給p_id添加主鍵約束
        constraint un_name unique(p_name)-- 給p_name添加唯一約束
)

3.3、外鍵約束

作用:用來(lái)表示兩張表之間的聯(lián)系,必須結(jié)合另一張表使用

特點(diǎn):

  • 連接的必須是另一張表的主鍵或者唯一列
  • 外鍵列的值不可自定義,必須來(lái)自另一張表與之關(guān)聯(lián)的列中已經(jīng)存在的值
  • 值可以為null,不唯一
  • 必須用表級(jí)約束創(chuàng)建

語(yǔ)法:

foreign key(字段名) references 其他表名(其他表的連接字段名)

使用:

  • 建表順序:先建沒(méi)有外鍵的表,再建有外鍵的表
  • 刪表順序:先刪有外鍵的,再刪沒(méi)外鍵的
  • 外鍵列的數(shù)據(jù)類(lèi)型必須與所連接的列一致

使用示例:

-- 班級(jí)表:id,班級(jí)名
create table t_class(
    c_id  int PRIMARY KEY,
    c_name varchar(20) not null
)
-- 學(xué)生表:id,姓名,所屬班級(jí)id
create table t_student(
    s_id int PRIMARY KEY,
    s_name varchar(20) not null,
    c_id int not null ,
    -- 表級(jí)約束
    FOREIGN KEY(c_id) REFERENCES t_class(c_id)
)

4、表的銷(xiāo)毀

語(yǔ)法:

drop table [if exists] 表名

注意事項(xiàng):

在3.3外鍵約束具體使用中對(duì)于有外鍵的表,要先刪除有外鍵的表,再刪除沒(méi)有外鍵的表

drop table t_student – 先刪學(xué)生表

drop table t_class – 才能刪班級(jí)表

到此這篇關(guān)于一文掌握MySQL表的創(chuàng)建和約束的文章就介紹到這了,更多相關(guān)MySQL表 創(chuàng)建 約束內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL多表查詢(xún)的案例詳解

    MySQL多表查詢(xún)的案例詳解

    這篇文章主要介紹了MySQL多表查詢(xún)的案例說(shuō)明,包括多表查詢(xún)的分類(lèi)及umion的使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • MySQL運(yùn)算符!=和<>及=和<=>的使用區(qū)別

    MySQL運(yùn)算符!=和<>及=和<=>的使用區(qū)別

    本文主要介紹了MySQL運(yùn)算符!=和<>及=和<=>的使用區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • MySQL默認(rèn)sql_mode淺析

    MySQL默認(rèn)sql_mode淺析

    這篇文章主要為大家介紹了MySQL默認(rèn)sql_mode淺析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • MySQL驅(qū)動(dòng)包下載全過(guò)程

    MySQL驅(qū)動(dòng)包下載全過(guò)程

    這篇文章主要介紹了MySQL驅(qū)動(dòng)包下載全過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • 淺談MySQL中四種常用存儲(chǔ)引擎

    淺談MySQL中四種常用存儲(chǔ)引擎

    這篇文章主要介紹了MySQL中四種常用存儲(chǔ)引擎,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • MySQL?字符串轉(zhuǎn)換為數(shù)字的方法小結(jié)

    MySQL?字符串轉(zhuǎn)換為數(shù)字的方法小結(jié)

    這篇文章主要介紹了MySQL字符串轉(zhuǎn)換為數(shù)字的幾種方法,本文給大家列列舉了三種方法,每種方法通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-01-01
  • Navicat配置mysql數(shù)據(jù)庫(kù)用戶(hù)權(quán)限問(wèn)題

    Navicat配置mysql數(shù)據(jù)庫(kù)用戶(hù)權(quán)限問(wèn)題

    這篇文章主要介紹了Navicat配置mysql數(shù)據(jù)庫(kù)用戶(hù)權(quán)限問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • SQL數(shù)據(jù)庫(kù)十四種案例介紹

    SQL數(shù)據(jù)庫(kù)十四種案例介紹

    大家好,本篇文章主要講的是SQL數(shù)據(jù)庫(kù)十四種案例介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下,方便下次瀏覽
    2021-12-12
  • mysql 8.0.24版本安裝配置方法圖文教程

    mysql 8.0.24版本安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了mysql 8.0.24版本安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • 窺探mysql存儲(chǔ)過(guò)程細(xì)節(jié)

    窺探mysql存儲(chǔ)過(guò)程細(xì)節(jié)

    這篇文章主要為大家詳細(xì)介紹了mysql存儲(chǔ)過(guò)程細(xì)節(jié),對(duì)mysql存儲(chǔ)過(guò)程感興趣的小伙伴們可以參考一下
    2016-03-03

最新評(píng)論

临沧市| 茶陵县| 芜湖市| 泰来县| 黑龙江省| 琼中| 定边县| 深圳市| 奉节县| 麻阳| 哈尔滨市| 泸溪县| 海南省| 察隅县| 拉萨市| 昭苏县| 个旧市| 独山县| 宿州市| 北辰区| 安西县| 鄂州市| 舞钢市| 阳谷县| 鄂尔多斯市| 乐业县| 仪征市| 南岸区| 康保县| 兴仁县| 万安县| 锦屏县| 石渠县| 民和| 昭觉县| 汽车| 靖宇县| 永修县| 枣庄市| 泌阳县| 桓台县|