MySQL之DDL(資料定義語言)

2021-10-07 04:52:32 字數 2457 閱讀 4750

主要用於資料庫和表的管理和操作

create

database

ifnot

exists studb

drop databses if

exists studb;

建立表:

create table if not exists 表名(

欄位名 字段型別 【字段約束】,

欄位名 字段型別 【字段約束】,

欄位名 字段型別 【字段約束】

資料型別:

常見六大約束:

名稱型別

說明非空約束

not null

用於限制該字段為必填項

預設約束

default

用於限制該欄位沒有填寫引數值,則為預設值

主鍵約束

primary key

用於限制該字段的值不能重複、預設不為空

唯一約束

unique

用於限制該字段的值不能重複

檢查約束

check

用於限制該字段的值必須滿足指定條件(mysql不支援語法不報錯)

外來鍵約束

foreign

用於限制兩個表的關係 ,要求外來鍵的值必須來自主表的關聯列

create

table

ifnot

exists stuinfo(

​ stuid int

notnull

primary

keycomment

'主鍵'

, ​ stuname varchar(20

)unique

notnull

comment

'姓名',#唯

一、非空

​ studender char(1

)default

'男'comment

'性別'

,#預設

​ email varchar(20

)not

null

comment

'郵箱'

,#非空

​ age int

check

(age between

0and

200)

comment

'年齡'

,#檢查

​ classid int

comment

'班級id'

,​ constraint fk_stuinfo_class foreign

key(classid)

references class(id)

#外來鍵)

engine

=innodb

default

charset

=utf8;

修改表:
語法: alter table 表名 (add|modify|change|drop) column 欄位名 字段型別 【字段約束】

修改表名:

alter

table 表名 rename

to 想要修改的表名;

新增字段:

alter

table 表名 add

column 欄位名 字段型別 【約束】;

修改字段

修改欄位名:

alter

table 表名 change column 舊欄位名 新欄位名 字段型別;

修改字段型別:

alter

table 表名 modify

column 欄位名 字段型別;

刪除字段:

alter

table 表名 drop

column 欄位名

刪除表:
drop

table

ifexists 表名;

複製表:
create

table 新錶名 like 舊表名; //只複製表結構

create

table 新錶名 select

*from 資料庫.

`表名`

//即複製結構又複製資料

第一正規化:要求資料庫表都應該有主鍵,並且每一列都是不可再分割的原子資料項

第二正規化:所有非主鍵字段完全依賴主鍵,不能產生部分依賴

多對多,三張表,關係表兩個外來鍵

第三正規化:所有非主鍵字段,直接依賴主鍵,不能產生傳遞依賴

一對多,兩張表,多的表加外來鍵

一對一兩種方案:

1. 主鍵共享

2. 外來鍵唯一

MySQL之資料定義語言(DDL)

資料定義語言 用來建立資料庫,資料庫物件和定義列的命令。mysql uroot p輸入密碼後進入mysql,exit或quit退出 檢視所有資料庫show databases 建立資料庫create database 資料庫名 刪除資料庫drop database 資料庫名 切換進入某個資料庫use...

MySql系列之DDL 資料定義語言

ddl是資料定義語言,用來定義資料物件,建立庫 表 列等 對於命令的大寫和小寫都是可以的,我自己認為小寫看的要舒服些 1.建立資料庫 語法 create database 資料庫名 character set utf8 示例create database student character set ...

My SQL資料定義語言 DDL

create if notexists db name create specification create specification create specification default character set charset name default collate collatio...