清屏: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,支持事務和索引。鎖顆粒為行鎖