創(chuàng)建數(shù)據(jù)庫
CREATE DATABASE [IF NOT EXISTS] HAHA;
刪除數(shù)據(jù)庫
DROP DATABASE [IF EXISTS] HAHA;
使用數(shù)據(jù)庫
USE `HAHA`
查看數(shù)據(jù)庫
SHOW DATABASE --查看所有的數(shù)據(jù)庫
學(xué)習(xí)思路
數(shù)值
tinyint 十分小的數(shù)據(jù) 1個字節(jié)
smallint 較小的數(shù)據(jù) 2個字節(jié)
mediumint 中等大小的數(shù)據(jù) 3個字節(jié)
int 標(biāo)準(zhǔn)的整數(shù) 4個字節(jié)
bigint 較大的數(shù)據(jù) 8個字節(jié)
float 浮點數(shù) 4個字節(jié)
double 浮點數(shù) 8個字節(jié) (精度問題?。?/p>
decimal 字符串形式的浮點數(shù) 金融計算的時候,一般使用decimal
字符串
char 字符串固定大小的 0-255
varchar 可變字符串 0-65535 常用變量 類似與java中的String
tinytext 微型文本 2^8-1
text 文本串 2^ 16-1 保存大文本
時間日期
date YYYY-MM-DD 日期格式
time HH:mm:ss 時間格式
datetime YYYY-MM-DD HH:mm:ss 最常用的時間格式
timestamp 時間戳,1970.1.1到現(xiàn)在的毫秒數(shù)!也較為常用!
year 年份表示
null
沒有值,表示未知
注意,不要使用null進行計算,結(jié)果會為null
Unsigned:
zerofill:
自增
非空 not null 和 null
拓展:了解就好
/*
每一個表都必須存在以下五個字段,未來做項目用的,表示一個記錄存在的意義
id 主鍵
version 樂觀鎖
is_delete 偽刪除
gmt_create 創(chuàng)建時間
gmt_update 修改時間
*/
-- 學(xué)號int 登錄密碼varchar(20) 姓名 ,性別varchar(2),出生日期(datatime),家庭住址,email
-- 注意點,使用英文(),表的名稱和字段盡量用``括起來
-- auto_increment 自增
-- 字符串使用單引號括起來
-- 所有語句后面加, (英文的),最后一個不用加
-- primary key 主鍵 ,一般一個表只有一個唯一的主鍵!
CREATE TABLE IF NOT EXISTS `student`(
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '學(xué)號',
`name` VARCHAR(100) 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 '家庭住址',
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8
格式
CREAT TABLE [IF NOT EXISTS] `表名`(
'字段名' 列類型 [屬性] [索引] [注釋],
'字段名' 列類型 [屬性] [索引] [注釋],
....
'字段名' 列類型 [屬性] [索引] [注釋]
)[表類型][字符集設(shè)置][注釋]
常用語句
SHOW CREATE DATABASE school --查看創(chuàng)建的數(shù)據(jù)庫語句
SHOW CREATE TABLE student -- 查看創(chuàng)建的數(shù)據(jù)庫表定義
DESC student --查看表結(jié)構(gòu)
INNODB(現(xiàn)在默認(rèn)使用)和MYISAM(以前常用)區(qū)別
MYISAM | INNODB | |
---|---|---|
事務(wù)支持 | 不支持 | 支持 |
數(shù)據(jù)行鎖定 | 不支持 | 支持 |
外鍵約束 | 不支持 | 支持 |
全文搜索 | 支持 | 不支持 |
表空間的大小 | 較小 | 較大,約2倍 |
常規(guī)使用操作:
在物理空間存在的位置
所有數(shù)據(jù)庫文件都存在 data目錄下
本質(zhì)還是文件存儲
MYSQL引擎在物理文件上的區(qū)別
設(shè)置數(shù)據(jù)庫表字符集編碼
CHARSET=UTF8
不設(shè)置的話,會是mysql的默認(rèn)字符集編碼不支持中文
mysql 的默認(rèn)編碼是Latin1,不支持中文
修改表
--修改表名 : ALTER table 舊表名 REBANE AS 新表名
ALTER TABLE teacher RENAME AS teacher1
-- 增加表的字段 : ALTER TABLE 表名 ADD 字段名 列屬性
AALTER TABLE teacher1 ADD age INT(11)
-- 修改表的字段 (重命名 ,修改約束?。?-- ALTER TABLE 表名 MODIFY 字段名 列屬性 []
ALTER TABLE teacher MODIFY age VARCHAR(11) --修改約束
--ALTER TABLE 表名 CHANGE 舊名字 新名字 列屬性[]
ALTER TABLE teacher1 CHANGE age age1 INT(1) -- 字段重命名
-- 刪除表的字段: ALTER TABLE 表名 DROP 字段名
ALTER TABLE teacher1 DROP age1
刪除表
-- 刪除表(如果存在再刪除)
DROP TABLE IF EXISTS teacher1
所有創(chuàng)建和刪除操作,盡量加上判斷,以免報錯
注意點:
聯(lián)系客服