1. 程式人生 > 其它 >MySQL學習其二:操作資料庫

MySQL學習其二:操作資料庫

操作資料庫>操作資料庫中的表>操作資料庫表中的資料

1、操作資料庫

1.1、建立資料庫

CREATE DATABASE [IF NOT EXISTS] lib

1.2、刪除資料庫

DROP DATABASE [IF EXISTS] hello

1.3、使用資料庫

USE lib

1.4、檢視資料庫

SHOW DATABASES -- 檢視所有的資料庫

2、資料庫的(列)資料型別

數值

  • tinyint 十分小的資料 1個位元組

  • smallint 較小的資料 2個位元組

  • mediumint 你中等大小的資料 3個位元組

  • int 標準的整數 4個位元組

    常用的 int

  • 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

3、資料庫的欄位屬性(重點)

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     修改時間
 */

4、建立資料庫表(重點)

-- 所有的語句後面加, 最後一個不用加
-- 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

MYISAMINNODB
事務支援 不支援 支援
資料行鎖定 不支援(表鎖) 支援(行鎖)
外來鍵約束 不支援 支援
全文索引 支援 不支援
表空間的大小 較小 較大,約為2倍

常規使用操作:

  • MYISAM 節約空間,速度較快

  • INNODB 安全性高,支援事務的處理,多表多使用者操作

在物理空間中存在的位置

所有的資料庫檔案都存放在data目錄下面。

本質還是檔案的儲存~

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

  • INNODB 在資料庫表中只有一個*.frm檔案,以及上級目錄下的ibdata1檔案

  • MYISAM對應的檔案

    • *.frm 表結構的定義檔案

    • *.MYD 資料檔案(data)

    • *.MYI 索引檔案(index)

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

 CHARSET=utf8
不設定的話,會是mysql預設的字符集編碼~(不支援中文!)

MySQL的預設編碼是Latin1,不支援中文

在my.ini中配置預設的編碼

character-set-server=utf8

SHOW DATABASES -- 檢視所有的資料庫