建立數據庫java
CREATE DATABASE [IF NOT EXISTS] HAHA;
刪除數據庫mysql
DROP DATABASE [IF EXISTS] HAHA;
使用數據庫sql
USE `HAHA`
查看數據庫數據庫
SHOW DATABASE --查看全部的數據庫
學習思路安全
數值學習
tinyint 十分小的數據 1個字節編碼
smallint 較小的數據 2個字節設計
mediumint 中等大小的數據 3個字節code
int 標準的整數 4個字節索引
bigint 較大的數據 8個字節
float 浮點數 4個字節
double 浮點數 8個字節 (精度問題!)
decimal 字符串形式的浮點數 金融計算的時候,通常使用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到如今的毫秒數!也較爲經常使用!
year 年份表示
null
沒有值,表示未知
注意,不要使用null進行計算,結果會爲null
Unsigned:
zerofill:
自增
非空 not null 和 null
拓展:瞭解就好
/* 每個表都必須存在如下五個字段,將來作項目用的,表示一個記錄存在的意義 id 主鍵 version 樂觀鎖 is_delete 僞刪除 gmt_create 建立時間 gmt_update 修改時間 */
-- 學號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 '學號', `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] `表名`( '字段名' 列類型 [屬性] [索引] [註釋], '字段名' 列類型 [屬性] [索引] [註釋], .... '字段名' 列類型 [屬性] [索引] [註釋] )[表類型][字符集設置][註釋]
經常使用語句
SHOW CREATE DATABASE school --查看建立的數據庫語句 SHOW CREATE TABLE student -- 查看建立的數據庫表定義 DESC student --查看錶結構
INNODB(如今默認使用)和MYISAM(之前經常使用)區別
MYISAM | INNODB | |
---|---|---|
事務支持 | 不支持 | 支持 |
數據行鎖定 | 不支持 | 支持 |
外鍵約束 | 不支持 | 支持 |
全文搜索 | 支持 | 不支持 |
表空間的大小 | 較小 | 較大,約2倍 |
常規使用操做:
在物理空間存在的位置
全部數據庫文件都存在 data目錄下
本質仍是文件存儲
MYSQL引擎在物理文件上的區別
設置數據庫表字符集編碼
CHARSET=UTF8
不設置的話,會是mysql的默認字符集編碼不支持中文
mysql 的默認編碼是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
全部建立和刪除操做,儘可能加上判斷,以避免報錯
注意點: