清屏:cls
MySQL基礎
啟動MySQL net start mysql
關閉MySQL net stop mysql
登入 mysql -uroot -p
退出 mysql>exit;
mysql>quit;
mysql>\p;
顯示當前伺服器版本 SELECT VERSION();
顯示目前時間 SELECT NOW();
顯示目前使用者 SELECT USER();
MySQL預設的連接埠號碼是:3306
MySQL超級使用者是:root
建立資料庫:CREATE DATABASE
修改資料庫:ALTER DATABASE
刪除資料庫:DROP DATABASE
資料類型
整型:TINYINT SMALLINT MEDIUMINT INT BIGINT
浮點型: FLOAT[(M,D)] DOUBLE[(M,D)] M為數字總位元,D為小數點後面的位元
字元型:VERCHAR(M)
資料表
查看有什麼資料庫:SHOW DATABASES;
開啟資料庫:USE 資料庫名稱
查看當前資料庫:SELECT DATABASES;
建立資料表:CREATE TABLE[IF NOT EXISTS]table_name(
ageTINYINT UNSGINED(無符號位),
......
)
查看資料表列表:SHOW TABLES[FORM db_name];使用form可以查看別的資料庫中的表
查看資料表結構:SHOW COLUMNS FORM tbl_name;
插入記錄;INSERT [INTO] tbl_name[(coi_name,...)] VALUES(VAL,...);
尋找記錄:SELECT expr,...FORM tbl_name(WHERE .....);
空值與非空
CREATE TABLE[IF NOT EXISTS]table_name(
age1 TINYINT UNSGINED(無符號位) NOT NULL,
age2 TINYINT UNSGINED(無符號位) NULL,//預設是可以為空白
......
)
自動編號AUTO_INCREMENT
1自動編號,且必須與主鍵組合使用
2預設情況下,起始值為1,增量為1
主鍵PRIMARY KEY
1每張表只能有一個主鍵
主鍵保證記錄的唯一性
主鍵自動為NOT NULL
CREATE TABLE[IF NOT EXISTS]table_name(
age1 TINYINT UNSGINED(無符號位) PRIMARY KEY,
......
)
唯一約束UNIQUE KEY
預設約束:DEFAULT
更新記錄UPDATE
文法:UPDATE tb_name SET age=age+10 WHERE name="chaihuo";
刪除記錄FELETE
文法:DELETE FORM tb_name WHERE name="chaihuo";
查詢結果分組GROUP BY
文法:SELECT sex FORM users BY sex;
HCAING分組條件
文法:SELECT sex,age FORM users BY sex HAVING age>35;
主要:此時HAVING後面只有兩種情況1)彙總函式2)在select後面
對查詢結果進行排序ORDER BY
文法:SELECT * FORM users ORDER BY id DESC;
運算子和函數
字元運算子
CONCAT()字元串連
CONCAT_WS()使用指定的分隔字元進行字元串連
FORMAT()數字格式化
LOWER()UPPER()轉換成小/大寫字母
LEFT() RIGHT()擷取左/右側字元
LENGTH()擷取字串長度
SUBSTRING()字串截取
[NOT] LIKE 模式比對
REPLACE()字串替換
數值運算子與函數
CEIL() 進一取整
DIV 整數除法
FLOOR()舍一取整
MOD 取餘數
POWER() 冪運算
ROUND()四捨五入
比較子與函數
[NOT] BETWEEN...AND... [NOT]IN() IS[NOT]NULL
資訊函數
CONNECTION_ID() 串連id
DATEBASE()當前資料庫
LAST_INSERT_ID()最後插入記錄的Id號
USER()目前使用者
VERSON()版本資訊
彙總函式
AVG()平均值
COUNT()計數
MAX() MIN() SUM()
加密函數
MD5()資訊摘要演算法
PASSWORD()密碼演算法
子查詢和串連
將查詢結果寫入資料表
INSERT[INTO] tbl_name[(col_name,...)] SELECT...
例子:INSERT tdb_goods(cate_name) SELECT good_cake FORM table GROUP BY good_cake;
多表更新
UPDATE table1 INNER JOIN table2 ON table1_name=table2_name SET table1_id=table2_di;
CREATE...SELECT
建立資料表同時將查詢結果寫入到資料表
CREATE TABLE table_name [(create_definine)] select_statement
例:CREATE TABLE table1(
id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20) NOT NULL)
SELECT SELECT good_cake FORM table GROUP BY good_cake;
)
儲存引擎
通過修改MySQL設定檔實現
1)-ddfault-storage-engine=engine
2)通過建立資料表命令實現
CREATE TABLE[IF NOT EXISTS]table_name(
age1 TINYINT UNSGINED(無符號位) NOT NULL,
age2 TINYINT UNSGINED(無符號位) NULL,//預設是可以為空白
......
)ENGINE=engine;
通過修改資料表命令實現
-ALTER TABLE table_name ENGINE[=]engine_name;
儲存引擎
MyISAM:儲存現在可達256TB,支援索引。表級鎖定,資料壓縮
InnoDB:儲存限制為64TB,支援事務和索引。鎖顆粒為行鎖