Mysql資料庫基礎知識(全)
阿新 • • 發佈:2021-07-09
前言:本博文為個人筆記,記錄了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';
登入操作: mysql -u [使用者名稱] -p [密碼] -h [IP地址] 退出操作: 1. quit 2. \q 3. exit 資料庫中資料庫相當於資料夾,表相當於檔案。 可以類比為車間名,車間內的分類貨物,具體的貨物 注意資料庫中的密碼一般使用MD5加密: 例:password |5f4dcc3b5aa765d61d8327deb882cf99 命令語句: