本人是一名學生,正在學習過程中,所以筆記涵蓋的還不是很廣,不過也算基本夠用,希望以後能更加完善。 登陸資料庫 mysql -h 主機名 -u 用戶名 -p > mysql -u root -p 列出資料庫 show databases; 選擇資料庫 use 資料庫名; 查看當前資料庫 select ...
本人是一名學生,正在學習過程中,所以筆記涵蓋的還不是很廣,不過也算基本夠用,希望以後能更加完善。
登陸資料庫 mysql -h 主機名 -u 用戶名 -p > mysql -u root -p 列出資料庫 show databases; 選擇資料庫 use 資料庫名; 查看當前資料庫 select databases; 查看資料庫定義 show create database 資料庫名; 創建資料庫 create databases 資料庫名; default 預設約束 collate 字元序 (例 CREATE DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci) 修改資料庫 alter databases 資料庫名; 刪除資料庫 drop database <資料庫名>;
數據備份: 備份一個資料庫: mysqldump -u username -p dbname table1 table2 ...> path/backupName.sql (dbname為資料庫文件名如:word.sql,table1,table2為參數表名,當沒有表名時,將備份整個資料庫,path/to/your/dictionary為你要備份到什麼地方的路徑) 備份多個資料庫 mysqldump -u username -p --databases dbname1 dbname2...> path/backupName.sql 備份所有資料庫 mysqldump -u username -p --all-databases > path/backupName.sql 直接複製整個資料庫目錄,簡單粗暴: show variables like '%datadir%'; 數據恢復 1. mysql -uusername -p dbname < path/to/your/dictionary 2.進入mysql後選擇資料庫 source 後面直接接路徑 |
顯示表 show tables; 顯示數據表的屬性 show columns from 數據表; 查看表的結構 desc 表名; 查看表的定義結構 show create table 表名; 創建數據表 create table table_name (column_name column_type); 預設數據 default (建表示例: create table customers( id int not null auto_increment, name char(20) not null, address char(50) null, city char(50) null, age int not null, love char(50) not null default 'No habbit', primary key(id) )engine=InnoDB DEFAULT CHARSET=utf8;
#引擎類型,多為engine = InnoDB,如果省略了engine=語句,則使用預設的引擎(MyISAM) #預設字元集,DEFAULT CHARSET,一般為utf8或GBK。 ) 刪除數據表 drop table table_name ; 重命名數據表 rename table 表名 to 新表名 更新表(alter table 表名) 添加列 alter table 表名 add 列名 數據類型 刪除列 alter table 表名 drop column 列名 修改列名 alter table 表名 change 列名 新列名 數據類型 修改列的數據類型 alter table 表名 modify 列名 數據類型 |
自動編號(必須與主鍵組合使用) AUTO_INCREMENT 主鍵(主鍵保證記錄的唯一性,主鍵自動為NOT NULL) PRIMARY KEY 外鍵(指定該列記錄屬於主表中的一條記錄,參照另一條數據) foreign key ( 外鍵:刪除和更新有四種設置方式 (1)cascade:級聯,當父表更新、刪除,子表會同步更新和刪除 (2)set null:置空,當父表更新、刪除的時候,字表會把外鍵欄位變為null,所以這個時候設計表的時候該欄位要允許為null,否則會出錯 (3)restrict:父表在刪除和更新記錄的時候,要在子表中檢查是否有有關該父表要更新和刪除的記錄,如果有,則不允許刪除個更改 (4)no action:和restrict一樣 導入表時外鍵建立不了,查看引擎是否為innodb,(INNODB支持外鍵和事務) 修改表的存儲引擎為INNODB ALTER TABLE 表名 ENGINE='INNODB' ) 唯一約束(指定某列和幾列組合的數據不能重覆) UNIQUE 非空約束(指定某列不為NULL) not null 預設約束 DEFAULT |
插入數據 insert into 表名(列名1,列名2……)values ( 數據1,數據2……) insert into 表名 values (數據1,數據2……) 批量插入 insert into 表名 values (數據1,數據2……),(數據1,數據2……),(數據1,數據2……) 刪除數據 delete from 表名 [where 條件] (沒有條件則刪除整個表) truncate table 表名:先刪除表再重建表 (刪除表) 更新數據 update 表名 set 列名=值,列名=值 [where 條件]; 查詢數據 select[distinct][*][列名1,列名2] from 表名 where 條件 group by…… having 條件過濾 order by 排序; |
|
去重 distinct 限制結果 limit 完全限製表名 表名+. 排序(order by) asc:ascend 升序(預設) desc:descend 降序 分組 group by 合併結果 union 過濾數據 |
|
WHERE子句 = 等於 <> 不等於 != 不等於 < 小於 <= 小於等於 > 大於 >= 大於等於 between……and…… 指定兩個值之間 is null 為空值 AND 兩個條件同時滿足 OR 滿足其中一條 (AND 和 OR 可以組合使用,AND優先順序高於OR) IN 指定條件範圍 (例 IN(1002,1003)) Not 否定後跟條件關鍵字 ====> not in,not like... 分組數據 |
group by 分組數據 having 過濾分組 < having和where的區別 having 與where使用方式類似,在分組之後使用 where是判斷數據從磁碟讀入記憶體的時候 having是判斷分組統計之前的所有條件 having子句中可以使用欄位別名,而where不能使用 having能夠使用統計函數,但是where不能使用 > |
|
|
元字元 \\f 換頁 \\n 換行 \\r 回車 \\t 製表 \\v 縱向製表 |
字元類 [:alnum:] 文字數字字元 [:alpha:] 文字字元 [:blank:] 空白字元 [:cntrl:] 控制字元 [:digit:] 數字字元 [:graph:] 圖形字元 [:lower:] 小寫文字字元 [:print:] 圖形或空格字元 [:punct:] 標點字元 [:space:] 空格、製表符、新行、和回車 [:upper:] 大寫文字字元 [:xdigit:] 十六進位數字字元 (^)字元 匹配字元串的開始位置,如“^a”表示以字母a開頭的字元串。 ($)字元 匹配字元串的結束位置,如“X$”表示以字母X結尾的字元串。 (.)字元 這個字元就是英文下的點,它匹配任何一個字元,包括回車、換行等。 [[:<:]] 詞的開始 [[:>:]] 詞的結尾 |
重覆字元 (*)字元 星號匹配0個或多個字元,在它之前必須有內容。如: (+)字元 加號匹配1個或多個字元,在它之前也必須有內容。加號跟星號的用法類似,只是星號允許出現0次,加號則必須至少出現一次。 (?)字元 問號匹配0次或1次。 {} 區間 {n} 指定數目的匹配 {n,} 不少於指定數目的匹配 {n,m} 匹配數目的範圍(m不超過255) 這是一個更全面的方法,它可以實現前面好幾種保留字的功能 a*可以寫成a{0,} a+可以寫成a{1,} a?可以寫成a{0,1} 計算欄位 + 加 - 減 * 乘 / 除 (select後可以跟計算公式) |
Concat() 拼接欄位 (例 mysql> SELECT CONCAT(’My’, ‘S’, ‘QL’); ---> ‘MySQL’) 函數 |
聚集函數 AVG() 返回某列的平均值 COUNT() 返回某列的行數 MAX() 返回某列的最大值 MIN() 返回某列的最小值 SUM() 返回某列值之和 |
連接 INNER JOIN(內連接,或等值連接):獲取兩個表中欄位匹配關係的記錄。 LEFT JOIN(左連接):獲取左表所有記錄,即使右表沒有對應匹配的記錄。 RIGHT JOIN(右連接): 與 LEFT JOIN 相反,用於獲取右表所有記錄,即使左表沒有對應匹配的記錄。 |
|
視圖(視圖是虛擬表,本身不存儲數據,而是按照指定的方式進行查詢。) -- 1.創建視圖 create view 視圖名 as sql語句; --2.刪除視圖 Drop view 視圖名; --3.修改視圖 ALTER VIEW 視圖名稱 AS SQL語句 |
|