1. 程式人生 > 其它 >Mysql資料庫基礎知識(全)

Mysql資料庫基礎知識(全)

前言:本博文為個人筆記,記錄了Mysql的一些基本操作,一般掌握本博文就可以瞭解資料庫、表、資料項的增刪改查,希望對大家的學習有所幫助。 首先下載PHPSTUDY,將Mysql配置為系統變數。 具體操作如下: 首先找到PHPSTUDY下載目錄,進入Extensions目錄下的Mysql目錄,找到bin檔案,複製相關路徑,如: E:\phpstudy_pro\Extensions\MySQL5.7.26\bin 右擊計算機,選擇屬性,然後選擇高階系統設定,進而點選環境變數 選擇新建,變數名為mysql,變數值為剛才的路徑,點選確定。 然後進入控制檯,輸入mysql -u root -p進行驗證,出現如下情況說明新增環境變數成功。
登入操作: mysql -u [使用者名稱] -p [密碼] -h [IP地址] 退出操作: 1. quit 2. \q 3. exit 資料庫中資料庫相當於資料夾,表相當於檔案。 可以類比為車間名,車間內的分類貨物,具體的貨物 注意資料庫中的密碼一般使用MD5加密: 例:password |5f4dcc3b5aa765d61d8327deb882cf99 命令語句:
#顯示資料庫 show databases; #選擇資料庫 use dvwa; #顯示當前庫中所有的表 show tables; #查看錶中具體的資訊 desc users; #查詢命令 select * from users; 註釋符: 1.# 2.-- - 3./**/ 資料庫的基本操作 #增: create database exampleDb; #刪 drop database exampleDb; #改 alter database exampleDb charset utf8; #查 show databases; 表的基本操作: #查看錶結構 describle table;
DESCRIBE [表名] #查看錶內容 select * from table_name #建立表 CREATE TABLE [表名]( 屬性名 資料型別 [完整約束條件], 屬性名 資料型別 [完整約束條件] ); 例如: CREATE TABLE user ( id int(7) AUTO_INCREMENT; username varchar(100) not null; password varchar(100) not null; PRIMARY KEY(id); )ENGINE=InnoDB DEFAULT CHARSET=utf8; #常見的資料庫引擎 InnoDB 對字元處理比較好
myisam 對儲存資料比較好(大資料的查詢語句) #刪除表 drop table users; #避免建立語句錯誤 create table if not exisit [table]; #修改表的操作 ALTER TABLE [舊錶名] RENAME [新表名]; #修改欄位的資料型別 ALTER TABLE [表名] MODIFY 屬性名 資料型別; #修改欄位名 ALTER TABLE [表名] CHANGE 舊屬性名 新屬性名 #增加欄位名 ALTER TABLE [表名] ADD [屬性名1] 資料型別 [完整性約束條件] #刪除欄位 ALTER TABLE [表名] DROP [屬性名] #更改儲存引擎 ALTER TABLE [表名] ENGINE=儲存引擎名; 資料的增刪改查 #新增資料(指定欄位) 語法:INSERT INTO 表名(欄位名1,欄位名2) VALUES(值1,值2); insert into users (id,username,password) values(1,'admin','password'); #新增資料(不指定欄位) 語法:INSERT INTO 表名 VALUES (值1,值2); #刪除資料 語法:DELETE FROM [表名] WHERE 條件表示式; delete from users where id =1; #刪除表 語法:TRUNCTE [TABLE] 表名 TRUNCTE TABLE users; #更新資料 UPDATE USERS SET password='132' where id=1; #查詢資料 SELECT * FROM users; #查詢指定資料 SELECT username,password FROM USERS; 資料查詢語句 #between查詢 語法:SELECT * |{欄位名1,欄位名2} FROM 表名 WHERE 欄位名 [NOT ] BETWEEN AND SELECT * from users where id not between 1 and 2; #帶Like查詢,一般都會跟著%,意味著任意字元和長度 語法:SELECT *|{欄位名1,欄位名2} FROM 表名 WHERE 欄位名 like '模糊查詢'; SELECT * from users where id like '%admin%'; SELECT * from #帶AND查詢,滿足多個條件 語法:SELECT *|{欄位名1,欄位名2} FROM 表名 WHERE 條件語句1 AND 條件語句2 SELECT * FROM users where id >=0 and username like '%ad%'; #帶OR查詢,滿足一個條件 語法:SELECT * |{欄位名1,欄位名2} FROM 表名 WHERE 條件語句1 OR 條件語句2 高階查詢 #COUNT()函式:統計記錄的條數 語法:SELECT COUNT(*) FROM 表名 SELECT COUNT(*) from users; #SUM ( )函式:對記錄數值進行求和 語法:SELECT SUM(*) FROM 表名 SELECT SUM(id) from users; #分組查詢 單獨使用GROUP BY進行分組 SELCT * FROM USERS GROUP BY username; #HAVING關鍵字 GROUP BY 一般與HAVING關鍵字配合使用,HAVING和WHERE作用相同,但是HAVING可以跟聚合函式 SELECT SUM(id) FROM users GROUP BY password HAVING SUM(id) <4; #LIMIT 限制查詢結果的數量 SELECT * FROM users LIMIT 2; SELECT * FROM user LIMIT 1,1; #AS 為欄位取別名 語法:SELECT 欄位名 [AS] 別名 FROM 表名; 子查詢 #WHERE型查詢 把內層查詢的加過當作外層查詢的比較條件 SELECT * from users where id in (select * from users where id >1); #FROM子查詢 SELECT * from (select * from users where id >=0) as user_id; #EXISTS子查詢 SELECT * FROM USERS WHERE EXISTS (SELECT * FROM USERS WHERE id >1); SQL注入的基本知識 information_schema資料庫是MySQL自帶的,它提供了訪問資料庫元資料的方式。就是資料庫的庫名,表明,列的資料型別和訪問許可權等。 可以把information_schema看作元資料。 SCHEMATA表:提供了當前mysql例項中所有資料庫的資訊,是show databases的結果取之此表 TABLES表:提供了關於資料庫中表的資訊(包括檢視)。詳細表述了某個表屬於哪個schema,表型別,表引擎,建立時間等資訊。是show tables from schema_name的結果。 COLUMNS表:具體tables裡的資訊。 SQL注入語句 #查詢資料庫名 SELECT SCHEMA_NAME FROM information_schema.SCHEMATA limit 1 #查詢資料表名 SELECT * from information_schema.tables where table_schema='users'; #查詢列 SELECT* from information_schema.columns where table_schema='user' and table_name='id';