1. 程式人生 > 資料庫 >MySQL--DDL語言 定義語言

MySQL--DDL語言 定義語言

資料定義語言
庫和表的管理
庫的管理:建立create、修改alter、刪除drop
表的管理:建立create、修改alter、刪除drop

一:建立庫
語法:create database 庫名;
create database 庫A;
更改庫的字符集(一般預設字符集u-f8)
語法:alther database 庫A character set 更改的字符集型別;
刪除庫
語法:drop database 庫A;

二:表的管理
1.表的建立:create table 表名(
欄位名1 欄位型別1【(長度) 約束】
欄位名2 欄位型別2【(長度) 約束】…);

create table book(

id int, #編號
bname varchar(20), #圖書名,
price double,#價格
authorid int, #作者編號
publishdate datetime #出版時間);

2.表的修改
Alther table 表名 change 【column】舊列名 新列名 列的型別;
修改列的型別或約束
Alther table 表名 modify column 舊型別 新型別;
新增新列
Alther table 表名 add column 新列名 列型別;
刪除列
Alther table 表名 drop column 刪除列名;
修改表名
Alther table 表名 renane to 新表名;

3.表的刪除
語句:drop table 表名

4.常見的資料型別
數值型:整數、小數(定點數.浮點數)
數值型小數字元型:較短的文字(char固定長度字元.varchar可變長度字元)
較長的文字(text.blob)
較短文字日期型:
日期
4.常見約束
非空約束not null:保證該欄位值不能為空
預設約束default:保證該欄位有預設值
主鍵約束primary key:保證該欄位值是唯一值&非空
唯一約束unique:保證該欄位值是唯一 可以為空
外來鍵約束foreign key:限制兩個標的關係,用於保證該欄位的值必須來自於主表的關聯列的值
標識列(自增長) auto_increment(對應欄位傳null) 適用於數值型 之多隻能有1個

修改表時 約束操作 語法:
1.新增列級約束:
alter table 表名 modify column 欄位名 欄位型別 新約束;
新增標識列
alter table 表名 modify column id int primary key auto_increment;
刪除標識列
alter table 表名 modify column id int
2.新增表級約束:
alter table 表名 add 【constraint 約束名】約束型別(欄位名) 【外來鍵的引用】;
3.刪除非空約束
alter table 表名modify column 欄位名 欄位型別 null;
4.刪除預設約束
alter table 表名 modify column 欄位名 欄位型別;
5.刪除主鍵
alter table 表名 drop primary key
6.刪除外來鍵
alter table 表名 drop foreign key 外來鍵約束名
7.刪除唯一鍵
alter table 表名 drop index 唯一鍵欄位名