MySql筆記 02資料定義語言 DDL

2022-07-03 02:51:11 字數 3690 閱讀 7892

目錄3、資料庫的管理操作

4、表的管理操作

5、mysql中常見的資料型別

5.2、字元型

5.3、日期型

5.4、二進位制型別

6、mysql中的約束

7、建立一張完整的表

英文叫做 data definition language,也就是資料定義語言,它用來定義我們的資料庫物件,可以建立,刪除和修改資料庫和表結構

sql語句中的注釋:

可以在終端或者視覺化工具的查詢中操作

5.2、字元型

5.3、日期型

型別大小

最大值最小值

格式date

3位元組

9999-12-31

1000-01-01

yyyy-mm-dd

year

1位元組

2155

1901

yyyy

time

3位元組

838:59:59

-838:59:59

hh:mm:ss

datetime

8位元組

9999-12-31 23:59:59

1000-01-01 00:00:00

yyyy-mm-dd hh:mm:ss

timestamp

4位元組

2023年的某乙個時刻

2023年某乙個時刻

yyyy-mm-dd hh:mm:ss

5.4、二進位制型別

6.2、建立約束的方式

-- 關於外來鍵的建立 

-- 方式一 :直接約束

-- 語法:references 主表(主表的字段)

create table if not exists student(

s_id int,

s_name varchar(20),

s_gender varchar(4),

s_phone varchar(20),

s_class_id int references school(s_id) -- 通過references連線到表school的s_id欄位

);-- 方式二 : 末尾約束

-- 語法:constraint 外鍵名 foreign key(當前表的字段) references 主表(主表的字段)

create table if not exists student(

s_id int,

s_name varchar(20),

s_gender varchar(4),

s_phone varchar(20),

s_class_id int,

constraint fk foreign key(s_class_id) references school(s_id)

-- 建立 名為fk的外來鍵約束,約束(s_class_id)字段關聯到 學校表的(s_id)字段

);-- 方式三 : 建完表新增約束

-- 語法:alter table 表名 add constraint 外鍵名 foreign key(當前表欄位名) references 主表名(主表字段)

alter table student add constraint fk foreign key(s_class_id) references teacher(s_id);

為什麼我們不建立外來鍵:

有外來鍵關聯的時候,從表的資訊必須是主表的資料中存在的值,所以有外間關聯時需要先插入主表資訊。

在我們正常的開發中,一般使用虛擬外來鍵的思想,這樣有助於對錶進行管理,提高效率。

有外來鍵關聯時,新增資訊需要先新增主表資訊,刪除資訊需要先刪除從表的資訊,這樣使得效率下降

6.3、修改約束

對約束的修改就是通過表建立完後,對約束進行新增更新的操作,具體方法上述已寫到

6.4、刪除約束

對約束進行刪除也是通過alter對錶的操作實現的

-- 刪除約束 drop 如果建立的約束取名了,那麼刪除時就需要通過名稱刪除,如果沒有寫名稱,會有預設名字

alter table student drop foreign key fk;

-- 刪除唯一約束

alter table cars drop index s_phone;

6.5、資料庫引擎

資料庫儲存引擎是資料庫底層軟體組織,資料庫管理系統(dbms)使用資料引擎進行建立、查詢、更新和刪除資料。不同的儲存引擎提供不同的儲存機制、索引技巧、鎖定水平等功能,使用不同的儲存引擎,還可以 獲得特定的功能。

myisam(早些年使用)

innodb(預設使用)

事務支援

不支援支援

資料行鎖定

不支援支援

外來鍵約束

不支援支援

全文索引

支援不支援

表空間大小

較小較大(約為2倍)

create table if not exists student(														-- 如果表不存在就建立

s_id int primary key auto_increment, -- 欄位名 字段資料型別 約束

s_name varchar(20) not null,

s_gender varchar(4) not null default "男",

s_phone varchar(20) unique,

s_class_id int check(s_class_id=12 or s_class_id=13)

)engine=innodb default charset=utf8 -- 指明引擎使用的innodb,預設字符集為utf8

MySQL 02 DDL 資料庫定義語言

2.ddl操作 table 3.對某一資料庫的備份與還原 4.練習 ddl database defined language 資料庫定義語言,操作對向為庫 表。在上一博文中已被詳述。create database 庫名 character set utf8 gbk create database ...

My SQL資料定義語言 DDL

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

MySQL 資料定義語言(DDL)

mysql 資料定義語言 ddl 一 create命令 1 建立資料庫 create database if not exists 資料庫名 例 create database aa 2 建立資料表 create table if not exists 表名 欄位名1 列型別 屬性 索引 注釋 欄位...