一、MySQL 使用
1. 啓動 mysql 服務(避免“服務名無效”)
MySQL 安裝過程中配置服務名,如 5.7.+ 版本默認爲 MySQL57。則 windows 下啓動命令爲:
>net start MySQL57
2. 停止 mysql 服務
管理員/方式一:>net stop MySQL57
非管理員/方式二:>mysqladmin -uroot shutdown -p1231
3. 登錄/退出 mysql
登錄:
>mysql -uroot -p -hlocalhost退出:
mysql> exit;
mysql> quit;
mysql> \q;1
參數 | 描述 |
---|---|
-u | 用戶名 |
-p | 密碼 |
-P | 端口號 |
-h | 服務器名稱 |
–prompt | 修改提示符 日期\D,數據庫\d,服務器\h,用戶\u |
4. 其他常用命令
mysql> 命令 | 描述 |
---|---|
USE db_Name; | 打開數據庫 |
SELECT DATABASE(); | 當前數據庫 |
SELECT VERSION(); | 當前服務器版本 |
SELECT NOW(); | 當前日期時間 |
SELECT USER(); | 當前用戶 |
SET NAME gbk/utf8; | 修改客戶端編碼方式 |
DELIMITER | 修改編輯時結束符/定界符 |
二、數據庫
數據庫操作 | 語法結構 |
---|---|
數據庫創建信息 | SHOW CREATE {DATABASES/SCHEMAS} db_name; |
數據庫列表 | SHOW {DATABASES/SCHEMAS} [LINKE ‘pattern’/WHERE expr]; |
創建數據庫 | CREQTE {DATABASE/SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name; |
修改數據庫編碼 | ALTER {DATABASE/SCHEMA} [db_name] [DEFAULT] CHARACTER SET [=] chartset_name; |
修改數據庫名稱 | RENAME {DATABASE/SCHEMA} db_name TO new_db_name; |
刪除數據庫 | DROP {DATABASE/SCHEMA} [IF EXISTS] db_name; |
三、數據表
1. 數據表操作
數據表操作 | 語法結構 |
---|---|
查看數據表列表 | SHOW TABLES [FROM db_name] [LINK ‘pattern’/WHERE expr]; |
查看數據表結構 | SHOW COLUMNS FROM tbl_name; |
創建數據表 | CREATE TABLE [IF NOT EXISTS] table_name ( column_name data_type, … ); |
修改表名稱 | ALTER TABLE tbl_name RENAME [TO/AS] new_name; or RENAME TABLE tbl_name TO new_name [,tbl_name2 TO new_name2…]; |
多表連接 | tbl1 {[INNER/CROSS] JOIN/{LEFT/RIGHT} [OUTER] JOIN} tbl2 ON {expr} |
單表擬多表連接 | tbl AS s {[INNER/CROSS] JOIN/{LEFT/RIGHT} [OUTER] JOIN} tbl AS p ON {expr} |
2. 數據表列/字段操作
數據表列操作 | 語法結構 |
---|---|
查看列 | DESC tbl_name; |
插入列 | ALTER TABLE tbl_name ADD COLUMN col_name data_type; |
刪除列 | ALTER TABLE tbl_name DROP COLUMN col_name; |
修改列屬性 | ALTER TABLE tbl_name MODIFY col_name data_type; |
修改列名 | ALTER TABLE tbl_name CHANGE col_name new_name data_type; |
跨表列數據插入 | INSERT tbl1(rol_name) SELECT rol_name2 FROM tbl2 GROUP BY rol_name2; |
跨表列數據更新 | UPDATE tbl1 INNER JOIN tbl2 ON {exper} SET tbl1.col1 = tbl2.col2; |
2. 數據錶行/記錄操作
數據錶行操作 | 語法結構 |
---|---|
查看行 | SELECT expr,… [ FROM tbl_references [WHERE where_condition]條件查詢 [GROUP BY {col_name/position}]分組查詢 [HAVING where_condition]分組查詢條件折設置 [ORDER BY {col_name/expr/position}[ASC/DESC],…]查詢結果排序 [LIMIT{[offset,] row_count/row_conunt OFFSET offset}限制返回結果數量 ]; |
插入行 | INSERT [INTO] tbl_name [(col_name,…)] {VALUES/VALUE}({expr/DEFAULT},…),…; or INSERT [INTO] tbl_name SET col_name={expr/DEFAULT},…; or INSERT [INTO] tbl_name [(col_name),…] SELECT…; |
更新行 | UPDATE [LOW_PRIORITY] [IGNORE] tbl_reference SET col_name1={expr/DEFAULT}[,… WHERE where_condition]; |
刪除行 | DELETE FROM tbl_name [WHERE where_condition]; |
4. 數據表屬性
屬性 | 描述 |
---|---|
NULL, NOT NULL | 字段記錄可空/不可爲空 |
PRIMARY KEY | 主鍵約束 |
AUTO_INCREMENT | 自動編號(默認起始值爲1,一張表只能有一個字段設置) |
UNIQUE KEY | 唯一約束(一張表可以有多個字段設置) |
DEFAULT | 默認值(日期時間:TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP) |
UNSIGNED | 無符號類型 |
4. 數據表約束
4.1 PRIMARY KEY 主鍵約束
語法:
約束操作 | 具體實現 |
---|---|
添加 | ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] PRIMARY KEY (index_type) (index_col_name,…); |
4.2 FOREIGN KEY 外鍵約束
描述 :
外鍵約束,保持數據一致性,完整性。實現一對一或一對多關係
要求 :
a. 父表與子表必需使用相同的存儲引擎
b. 數據表的存儲引擎只能爲InnoDB(配置文件設置)
c. 外鍵列和參照列必需具有顯示的數據類型。其中數值的長度或是否有符號位必需相同;而字符的長度則可以不同
d. 外鍵列和參照列必修創建索引。如果外鍵列不存在索引的話,MySQL將自動創建索引
語法:
約束操作 | 具體實現 |
---|---|
添加 | ALTER TABLE tbl_name [CONSTRAINT [symbol]] FOREIGN KEY (id) REFERENCES tbl_name2 (id2) [ON DELETE/UPDATE {CASCADE/SET NULL/NO ACTION/RESTRICT}]; |
查看約束 | SHOW CREATE TABLE tbl_name; |
刪除 | ALTER TABLE tbl_name DROP FOREIGN KEY fk_symbol; |
4.3 UNIQUE 唯一約束
語法:
約束操作 | 具體實現 |
---|---|
添加 | ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] UNIQUE [INDEX/KEY] [index_type] (index_col_name,…); |
查看約束 | SHOW INDEX FROM tbl_name; |
刪除 | ALTER TABLE tbl_name DROP {INDEX/KEY} index_name; |
4.4 DEFAULT 默認約束
語法:
約束操作 | 具體實現 |
---|---|
添加 | ALTER TABLE tbl_name ALTER [COLUMN] col_name {SET DEFAULT literal}; |
刪除 | ALTER TABLE tbl_name ALTER [COLUMN] col_name {DROP DEFAULT}; |
4.5 NOT NULL 非空約束
MySQL啓程學習回憶錄1
MySQL啓程學習回憶錄2
MySQL啓程學習回憶錄3