mysql 基礎操做

1.2數據庫的基礎操做

1.2.1操做數據庫

  1. 建立數據庫java

    CREATE DATABASE [IF NOT EXISTS]  HAHA;
  2. 刪除數據庫mysql

    DROP DATABASE [IF EXISTS] HAHA;
  3. 使用數據庫sql

    USE `HAHA`
  4. 查看數據庫數據庫

    SHOW DATABASE --查看全部的數據庫
  5. 學習思路安全

    • 對照sqlyog裏的歷史記錄來學習sql語句
    • 固定語法和關鍵字必須強行記住

1.2.2數據庫的列類型

數值學習

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

1.2.3數據庫的字段屬性(重點)

Unsigned:

  • 無符號整數
  • 聲明瞭該列不能聲明爲負數

zerofill:

  • 0填充的
  • 不足的位數,使用0來填充,int (3) , 5-----005

自增

  • 一般理解爲自增,自動在上一條記錄的基礎上+1(默認)
  • 一般用來設計惟一的主鍵 index ,必須是整數類型
  • 能夠自定義設計主鍵自增的起始值和步長

非空 not null 和 null

  • 設置爲not null 若是不賦值就會報錯
  • 不填寫值,默認爲null

拓展:瞭解就好

/*
每個表都必須存在如下五個字段,將來作項目用的,表示一個記錄存在的意義
id  主鍵
version   樂觀鎖
is_delete  僞刪除
gmt_create 建立時間
gmt_update 修改時間
*/

1.2.4數據庫建立表

-- 學號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倍

常規使用操做:

  • INNODB 安全性高,事務的處理,多表多用戶操做
  • MYISAM 節約空間,速度較快

在物理空間存在的位置

全部數據庫文件都存在 data目錄下

本質仍是文件存儲

MYSQL引擎在物理文件上的區別

  • innoDB在數據庫表中只有一個*.frm文件,以及上級目錄下的ibdata1文件
  • MYISAM對應文件
    • *.frm 表結構的定義文件
    • *.MYD 數據文件(data)
    • *.MYI 索引文件(index)

設置數據庫表字符集編碼

CHARSET=UTF8

不設置的話,會是mysql的默認字符集編碼不支持中文

mysql 的默認編碼是Latin1,不支持中文

1.2.5修改表和刪除表

修改表

--修改表名 : 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

全部建立和刪除操做,儘可能加上判斷,以避免報錯

注意點:

  • ``字段名用這個包裹
  • 註釋 -- /**/
  • sql關鍵字大小寫不敏感,建議你們寫小寫
  • 全部符號都用英文
相關文章
相關標籤/搜索