主要用於資料庫和表的管理和操作
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...