MySQL學習其二:操作資料庫
CREATE DATABASE [IF NOT EXISTS] lib
1.2、刪除資料庫
DROP DATABASE [IF EXISTS] hello
USE lib
SHOW DATABASES -- 檢視所有的資料庫
數值
-
tinyint 十分小的資料 1個位元組
-
smallint 較小的資料 2個位元組
-
mediumint 你中等大小的資料 3個位元組
-
int 標準的整數 4個位元組
-
bigint 較大的資料 8個位元組
-
float 浮點數 4個位元組
-
double 浮點數 8個位元組
-
decimal 字串形式的浮點數 金融計算的時候,一般使用decimal
字串
-
vchar 字串固定大小的 0~255
-
varchar 可變字串 0~65535 常用的變數 String
-
tintext 微型文字 2^8-1
-
text 文字串 2^16-1 儲存大文字
時間和日期
-
date YYYY-MM-DD, 日期格式
-
time HH:mm:ss 時間格式
-
datetime YYYY-MM-DD HH:mm:ss 最常用的時間格式
-
timetamp 時間戳, 1970.1.1 到現在的毫秒數! 也較為常用
-
year 年份表示
null
-
沒有值,未知
-
注意,不要使用null進行運算,結果為null
Unsigned:
-
無符號的整數
-
聲明瞭該列不能宣告為負數
zero fill:
-
0填充的
-
不足的位數,使用0來填充, int(3), 5 -----005
自增:
-
通常理解為自增,自動在上一條記錄的基礎上+1(預設)
-
通常用來設計唯一的主鍵~index, 必須是整數型別
-
可以自定義設計主鍵自增的起始值和步長
非空:Null not null
-
假設設定為not null ,如果不給它賦值,就會報錯!
-
Null,如果不填寫值,預設就是null!
預設:
-
設定預設的值!
要注意的地方:
-- 注意not null 和null的用法 -- not null default 後面必須得有預設值 -- 而 null 的用法是 default null `name` VARCHAR (10) NOT NULL DEFAULT 'TOM' COMMENT '姓名', `name` VARCHAR (10) DEFAULT NULL 'TOM' COMMENT '姓名',
拓展:
/* 每一個表,都必須存在以下五個欄位~未來做專案用的,表示一個記錄存在的意義! id 主鍵 `verion` 樂觀鎖 is_delete 偽刪除 gmt_create 建立時間 gmt_update 修改時間 */
-- 所有的語句後面加, 最後一個不用加 -- PRIMARY KEY 主鍵,一般一個表只有一個唯一的主鍵。 CREATE TABLE person( `class` VARCHAR(10) NOT NULL DEFAULT '普通職工' COMMENT'工種', `id` INT(6) NOT NULL AUTO_INCREMENT COMMENT'工號', `name` VARCHAR (20) NOT NULL DEFAULT 'TOM' COMMENT '姓名', `sex` VARCHAR (8) NOT NULL DEFAULT '男' COMMENT'性別', `age` INT (4) NOT NULL DEFAULT '00' COMMENT '年齡', `phonenumber` INT (20) DEFAULT NULL COMMENT '電話號碼', `address` VARCHAR (50) DEFAULT NULL COMMENT '地址', `brithday` DATETIME DEFAULT NULL COMMENT '出生日期', PRIMARY KEY (`id`) )ENGINE=INNODB DEFAULT CHARSET=utf8
常用指令:
SHOW CREATE DATABASE school -- 檢視建立資料庫的語句 SHOW CREATE TABLE student -- 檢視建立student表的語句 DESC student -- 顯示錶的具體結構
5、資料表的型別
INNODB
MYISAM
MYISAM | INNODB | |
---|---|---|
事務支援 | 不支援 | 支援 |
資料行鎖定 | 不支援(表鎖) | 支援(行鎖) |
外來鍵約束 | 不支援 | 支援 |
全文索引 | 支援 | 不支援 |
表空間的大小 | 較小 | 較大,約為2倍 |
常規使用操作:
-
MYISAM 節約空間,速度較快
-
INNODB 安全性高,支援事務的處理,多表多使用者操作
在物理空間中存在的位置
所有的資料庫檔案都存放在data目錄下面。
本質還是檔案的儲存~
MySQL 引擎在物理檔案上的區別
-
INNODB 在資料庫表中只有一個*.frm檔案,以及上級目錄下的ibdata1檔案
-
MYISAM對應的檔案
-
*.frm 表結構的定義檔案
-
*.MYD 資料檔案(data)
-
*.MYI 索引檔案(index)
-
設定資料庫表的字符集編碼
CHARSET=utf8
不設定的話,會是mysql預設的字符集編碼~(不支援中文!)
MySQL的預設編碼是Latin1,不支援中文
character-set-server=utf8