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

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

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

一、數(shù)據庫的建立和銷毀

建立數(shù)據庫:

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

tips: 中括號[]里面的內容可以省略不寫

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

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

銷毀數(shù)據庫:

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

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

二、表的建立和銷毀

1、表的建立

語法:

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

1.1、命名規(guī)則

表名通常以t_開頭

關鍵字段通常以表名縮寫_開頭

MySQL不區(qū)分大小寫,不能使用關鍵字命名,多個部分之間用下劃線連接

1.2、數(shù)據類型

需要掌握的數(shù)據類型:

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

2.小數(shù):decimal

3.字符串:varchar

4.枚舉:enum

5.日期:datatime

使用建議:

當字段數(shù)字一定大于0并且不會進行減運算時可以使用無符號數(shù)unsigned,通常不建議

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

char和verchar在保存多個字符時底層實現(xiàn)是一致的,只是占用空間的模式不同,不建議使用char,因為有可能浪費空間

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

2、表約束概念

2.1、約束預覽

約束解釋說明
primary key主鍵用來標志一列為主鍵列
not null非空約束該列值不允許為空
unique唯一約束該列值不允許重復
default默認給該列設置默認值
foreign key外鍵標志一列為外鍵值
check檢查約束MySQL不支持

2.2、特點及作用

主鍵

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

特點:非空且唯一

一張表至多有一個主鍵列

非空

特點:值不能為null,必須設定

唯一

特點:值可以為null,并且可以存在多個null,該約束只對已經存在的值有效

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

默認

特點:如果該列未顯式賦值,則使用默認值存放

語法: default(值)

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

3、表約束具體使用

3.1、列級約束

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

使用示例:

-- 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,-- 非空 無符號數(shù)  0-255
        sex enum('男','女','奧特曼') default '奧特曼',-- 默認
        height decimal(4,1), -- 總共有4位,小數(shù)點占1位:000.0
        birthday datetime
)

3.2、表級約束

將約束單獨定義在所有列的下方,not null和default沒有表級約束

語法:[constraint 自定義約束名] 約束類型(字段名)

使用示例:

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

3.3、外鍵約束

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

特點:

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

語法:

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

使用:

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

使用示例:

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

4、表的銷毀

語法:

drop table [if exists] 表名

注意事項:

在3.3外鍵約束具體使用中對于有外鍵的表,要先刪除有外鍵的表,再刪除沒有外鍵的表

drop table t_student – 先刪學生表

drop table t_class – 才能刪班級表

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

相關文章

  • MySQL多表查詢的案例詳解

    MySQL多表查詢的案例詳解

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

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

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

    MySQL默認sql_mode淺析

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

    MySQL驅動包下載全過程

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

    淺談MySQL中四種常用存儲引擎

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

    MySQL?字符串轉換為數(shù)字的方法小結

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

    Navicat配置mysql數(shù)據庫用戶權限問題

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

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

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

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

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

    窺探mysql存儲過程細節(jié)

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

最新評論

余庆县| 伊金霍洛旗| 富锦市| 唐山市| 穆棱市| 明水县| 鄂托克前旗| 韩城市| 麟游县| 黔西| 北安市| 延庆县| 卓尼县| 武隆县| 望城县| 白城市| 新干县| 定州市| 舞阳县| 南开区| 陆丰市| 朝阳市| 武威市| 济南市| 金塔县| 沁水县| 永州市| 石林| 资溪县| 大名县| 乐安县| 得荣县| 阿尔山市| 榆林市| 密山市| 乐山市| 获嘉县| 兴业县| 久治县| 双江| 屏边|