MySQL資料庫基礎知識彙總(學習筆記)
阿新 • • 發佈:2019-01-09
前言
此文章主要內容是簡單的記錄學習歷程,主要通途是日後查詢東西比較方便,當做字典來使用。內容的順序也是從簡單的入門開始的。內容無非就是增刪改查。
~~ ~~
關係資料庫往簡單了說就是一個一個的表,每個表都有行和列,表與表之間又有聯絡。其中列,就是一個一個的欄位,代表著你要存入資料的標題。行,就是一條一條的資訊,就是你填入對應列的資訊。
~~ ~~
入門操作:
登入MySQL:
>mysql -u root -p
進去xxx資料庫:
>use mysql; #進入mysql資料庫
檢視當前資料庫中所有的表:
>show tables;
更改許可權(變更本地登入許可權為%):
>update user set Host=’%’ where User=’root’ #修改root的host為萬用字元%
重新整理許可權(一般用於修改密碼和更改許可權之類的)
>flush privileges
建立賬戶:
#語法是CREATE USER 'username'@'host' IDENTIFIED BY 'password';
>CREATE USER 'test'@'% *IDENTIFIED BY '123456';
設定或更改密碼:
#語法:SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword'); > SET PASSWORD FOR 'test'@'%' = PASSWORD("123456");
賬戶授權:
#語法是GRANT privileges ON databasename.tablename TO 'username'@'host':
#解析:privileges是使用者的操作許可權(增刪改查什麼的),如果給予所有許可權使用ALL;databasename.tablename分別是資料庫名和表名,如果提供全部許可權使用*.*或者對某資料庫的所有表就是:資料庫名.* ;後邊倆不說了。完事要重新整理許可權。
> GRANT ALL ON *.* TO 'test'@'%':
> flush privileges;
撤銷使用者授權:
#語法:REVOKE privilege ON databasename.tablename FROM 'username'@'host'; > REVOKE ALL ON *.* FROM 'test'@'%;
刪除使用者:
#語法:DROP USER 'username'@'host';
>DROP USER ‘test’@’%’;
新建資料庫命令:
CREATE DATABASE 資料庫名;
刪除資料庫命令:
DROP DATABASE 資料庫名
~~ ~~
常見操作(XXX代表某資料庫,xxx代表某表):
檢視所有資料庫列表:
>SHOW DATABASES;
切換資料庫(選擇資料庫):
>USE XXX;
檢視資料庫內所有表的列表:
>SHOW TABLES;
檢索資料:
#檢索x列,在xxx表中。(先切換資料庫XXX)
#ps:檢索多個列,就加’,’然後加列名。檢索所有列就用*
#ps2:也可以不進入表來操作,就是第一行直接用SELECT XXX.xxx
>USE XXX;
>SELECT x
>FROM xxx;
檢索資料2:
#如果你檢索的列存在很多重複項,可使用DISTINCT關鍵字,來過濾重複項,返回不同的值。
>SELECT DISTINCT x
>FROM xxx;
限制檢索結果:
#使用LIMIT子句,來指定返回多少行。
>SELECT DISTINCT x
>FROM xxx
>LIMIT 5;
索引後資料的排序(升序和降序):
#使用ORDER BY子句,預設升序,如果降序需在子句最後加DESC關鍵字。
#經常使用兩列同時排序,則可以使用‘,’隔開兩列的名稱。
>SELECT id ,name,age,tel
>FROM name_login
>ORDER BY id,name DESC; #DESC需要時新增,僅標明參考位置
過濾資料(從檢索出的所有資料中,過濾出符合條件的資料):
操作符 說明
= 等於
<> 不等於
!= 不等於
< 小於
<= 小於等於
> 大於
>= 大於等於
BETWEEN 在指定的兩個值之間
#過濾條件使用WHERE子句
>SELECT id
>FROM name_login
>WHERE id = 1; #這裡可以使用大於小於不等於等操作符,也可以用IS NULL,進行空值檢查。
資料過濾2(多重過濾):
#結合WHERE子句,使用AND,OR,IN或者NOT操作符(注意AND的優先順序高)。
#IN操作符是給定範圍的: IN (0,5)
#NOT是否定後邊的關鍵字的。
>SELECT *
>FROM name_login
>WHERE id < 5 AND id < 3;
使用萬用字元過濾LIKE:
#%代表任意次數,_代表單個字元
>SELECT *
>FROM name_login
>WHERE id LIKE ‘%’;
使用正則表示式過濾REGEXP:
>SELECT *
>FROM name_login
>WHERE id REGEXP ‘[12345]’;
建立聯結(建立兩個表的關係的查詢):
#聯結表1列1和表2列1
>SELEST 列2,列2,列3
>FROM 表1,表2
WHERE 表1.列1 = 表2.列1
ORDER BY 列1,列1;
新增資料:
新增行INSERT:
#一共兩種一種安位置,一種按關鍵字
>INSERT INTO name_login
>VALUES(’6’,’6’,’6’,’6’,’6’,’6’)
>INSERT INTO user_login(id,
login_name,
name,
age,
ad,
tel)
VALUES(‘6’,
‘login_name_6’,
‘666’,
‘6’,
‘6’,
‘6’);
更新資料(修改資料):
#可使用UPDATE語句
>UPDATE user_login
>set age = ‘7’
>where id = 6; #一定要有where,否則就把所有行的age全給改了。
ps。此語句可以刪除列。
刪除資料(行):
>DELETE FROM user_login
>WHERE id = 7;
#請務必限定範圍,否則就清庫了。