文章目錄
SQL
基本概念
SQL(Structured Query Language)簡稱爲SQL,名爲結構化查詢語言,它是一種解釋型語言。
- 數據(Data):圖像、語音、文字等
- 數據庫(Database):按照數據結構來組織、存儲和管理數據的“倉庫”。
- 數據庫管理系統(DBMS)一種操縱和管理數據的軟件,用於建立、使用和維護數據庫。它對數據庫進行統一的管理和控制,以保證數據庫的安全性和完整性。
- 結構化查詢語句(SQL):一種數據庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關係數據庫系統。
基本操作
這裏我用的是Metasploitable2虛擬機。
(1)進入MySQL監視器
mysql -u root
(2)修改支持中文
set names "utf8";
(3)查看所有數據庫名
show databases;
(4)進入某個數據庫
use security;
(5)查看數據庫中的所有表
show tables;
一、查詢語句
(1)查詢users表中的所有數據
select * from users;
(2)查詢users表中“username”等於“admin”的數據
select * from users where username="admin";
二、插入(增加)語句
往users表中增加一個用戶haofei,id爲15,密碼爲haofei123
insert into users value("15","haofei","haofei123");
三、修改(更新)語句
將haofei用戶的密碼改爲haofei666
update users set password="haofei666" where username="haofei";
四、刪除語句
刪除haofei用戶所在的行
delete from users where username="haofei";
五、order by語句
order by語句通常是用來做排序的,默認按照升序排序。
(1)以users表爲例,以按id進行排序(升序):
select * from users order by id;
(2)以users表爲例,以按id進行排序(降序):
select * from users order by id desc;
六、union聯合查詢
聯合查詢語句就是聯合多個表進行查詢。
這裏我們有兩個表:emails表和users表
emails表:
users表:
(1)利用聯合查詢把兩個表的數據合在一個表裏
select * from emails union all select username,password from users;
注意:聯合查詢時,一定要注意列數要一致
(2)假如我們不想看到users表裏面的內容,但是又需要用聯合查詢的方式
首先我們可以分析看到聯合查詢語句的格式爲:語句1 union all 語句2
所以只要將語句2的返回值爲false就可以只顯示語句1返回的內容了。
說白了就是在語句2後面加上一條限定語句where,限定本身不存在的字段。
select * from emails union all select username,password from users where username=1;