建立資料庫表

HuDu發表於2020-07-23

開始

目標:建立一個school資料庫
建立學生表(列,欄位)
學號int,登陸密碼varchar(20),姓名,性別varchar(2),出生日期(datatime),家庭住址,email

  • 格式
create table [if not exists] `表名`(
    `欄位名` 列型別 [屬性] [索引] [註釋],
    ......
    `欄位名` 列型別 [屬性] [索引] [註釋]
)[表型別][表字符集設定][註釋]
create table if not exists `student`(
    `id` int(4) not null auto_increment comment '學號',
    `name` varchar(30) not null default '匿名' comment '姓名',
    `pwd` varchar(20) not null default '123456' comment '密碼',
    `sex` varchar(2) not null default '女' comment '性別',
    `birthday` datetime default null comment '出生日期',
    `address` varchar(100) default null comment '家庭住址',
    `email` varchar(50) default null comment '郵箱',
    primary key (`id`)
)engine=innodb default charset=utf8;
show create database school    --檢視建立資料庫的語句
show create table student    --檢視student資料表的定義語句
desc student    --顯示錶結構

關於資料庫引擎

  • INNODB 預設使用
  • MYISAM 早些年使用
MYISAM INNODB
事務支援 不支援 支援
資料行鎖定 不支援 支援
外來鍵約束 不支援 支援
全文索引 支援 不支援
表空間大小 較小 較大,約2倍

常規使用:

  • MYISAM 節約空間,速度快
  • INNODB 安全性高,事務處理,多表多使用者操作

在物理空間存在的位置

所有的資料庫檔案都存在 data 目錄下,一個資料夾就對應一個資料庫。
本質還是檔案的儲存!

MySQL引擎在物理檔案上的區別

  • InnoDB 在資料庫中只有一個*.frm檔案,以及上級目錄下的ibdata1檔案
  • MYISAM對應的檔案
    • *.sdi 表結構的定義檔案
    • *.MYD 資料檔案(data)
    • *.MYI 索引檔案(index)

設定資料庫表的字符集編碼

charset=utf8
不設定的話,會是mysql預設的字符集編碼(不支援中文)
預設是Latin1,不支援中文
my.cof中配置預設的編碼

character-set-server=utf8
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章