1. 資料(data): 在計算機系統中,各種字母、數字符號的組合、語音、圖形、影象等統稱為資料。
2. 資料庫(database):資料庫是按照資料結構來組織、儲存和管理資料的"倉庫"。
3. 資料庫管理系統(dbms):資料庫管理系統(database management system)是一種操縱和管理資料庫的軟體,用於建立、使用和維護資料庫。它對資料庫進行統一的管理和控制,以保證資料庫的安全性和完整性。
4. 結構化查詢語言(sql):結構化查詢語言是一種資料庫查詢和程式語言,用於訪問資料以及查詢、更新和管理關係資料庫系統。
我們先開啟mysql: 先進入你mysql的目錄,然後輸入mysql -h localhost -u root -p,回車提示輸入密碼,成功後連線mysql資料庫。
檢視有哪些資料庫:show databases; (注意每次執行資料庫命令時要加";",你也可以設定成其他符號,這裡不再敘述)
進入指定資料庫 : use 資料庫名;
檢視資料庫中有哪些表: show tables;
我們來實驗按dvwa來實驗一下:
select * from information_schema.schemata; //爆出資料庫
select table_name from information_schema.tables where table_schema='dvwa'; //爆出指定資料庫 dvwa 的所有表名
select column_name from information_schema.columns where table_schema='dvwa' and table_name='users';// 爆出 dvwa 指定表,users 的所有欄位名
//爆出資料庫 users 內容
select version(),@@version,@@global.version,database();//查主機名稱,資料庫路徑,作業系統版本
select user(),current_user(),system_user(),session_user();//查詢資料庫使用者資訊
user() 系統使用者和登入主機名
current_user() 當前登入使用者和登入主機名
system_user() 資料庫系統使用者賬戶名稱和登入主機名
session_user() 當前會話使用者名稱和登入主機名
資料庫語法太多了,我們這裡就簡單介紹一點了。
where語句用法
select 查詢列表(字段、常量、表示式、函式) from 表名 where (列、運算子、值)
下面的運算子可以在where子句中使用
操作符
描述=等於
<>
不等大於<
小=大於等於
<=
小於等於
between
在某個範圍內
like
搜尋某種模式
注意:在一些版本裡的sql中,操作符<>可以寫成!=。
聯合語句查詢——union
聯合查詢時,查詢結果的列標題為第乙個查詢語句的列標題。因此,要定義列標題必須在第乙個查詢語句中定義。要對聯合查詢結果排序時,也必須使用第一查詢語句中的列名、列標題或者列序號。
在使用union 運算子時,應保證每個聯合查詢語句的選擇列表中有相同數量的表示式,並且每個查詢選擇表示式應具有相同的資料型別,或是可以自動將它們轉換為相同的資料型別。在自動轉換時,對於數值型別,系統將低精度的資料型別轉換為高精度的資料型別。
在包括多個查詢的union語句中,其執行順序是自左至右,使用括號可以改變這一執行順序。例如:查詢1 union (查詢2 union 查詢3)
order by n //判斷當前查詢結果的列數,配合 union 實用。
order by n+1; 讓 n 一直增加直到出現錯誤頁面。
union 聯合查詢 union select …
select * from dvwa.guestbook order by 3;
select * from dvwa.guestbook order by 4;//order by 4報錯,說明結果為3列
select * from dvwa.guestbook where name= 'test' union select 1,2,3;
select * from dvwa.guestbook where name= 'test' and 1=2 union select 1,2,3;
concat ,concat_ws ,group_concat 函式
在實際注入中,巧妙借助 concat,concat_ws,group_concat 函式,可以將注入結果更好的顯示在頁面中。
concat(str1,str2...)——沒有分隔符串聯多列結果。
concat_ws(separator,str1,str2,...)——含有分隔符地串聯多列結
果上述兩個函式功能而非常類似,只是在分隔符上的區別.
應用場景:查詢結果只有一行,一列或多列資料。
concat()和 concat_ws()函式的對比,兩者均可以將一行多列的資料連線為一列,區別 concat()連線沒有連線符號。concat_ws()可以定義連線符,用分隔符將結果連線起來。//0x3a是十六進製制":"的意思。
測試結果一目了然concat函式可以把多列合成一列,concat_ws可以在其基礎上用:分割。
group_concat(str1,str2,...)——用逗號,串聯多行結果為一行,每行結果用逗號串聯。
應用場景:查詢結果有一行或多行,一列或多列資料。
group_concat()可以將多行多列查詢結果,顯示在一行一列,並且多行結果之間用逗號","分隔。
通過對比可以發現,group_concat()可以將多行資料用逗號隔開成為一行。
具體注入方式,在以前的部落格中提到過很多,接下來會重新學習並記錄下來。
mysql查資料庫 mysql檢視資料庫命令
mysql檢視資料庫命令 2012 11 29 19 51 25 標籤 it mysql檢視資料庫命令 開啟的資料庫的命令 mysql use mysql database changed 檢視資料庫的命令 mysql show databases 檢視資料表的詳細結構 mysql desc fun...
資料庫基礎,表及SQL語句
1 資料庫的設計 2 三大正規化 3 1.第一正規化 保證列的原子性,相對於功能 4 山東省淄博市張店區 5 山東省 淄博市 張店區 6 7 2.第二正規化 每一列都要和主鍵有關係 8 每一列和該錶有關係 9 10 3.第三正規化 每一列都要和主鍵有直接關係 11 12 13 14 15 16 t ...
後端基礎SQL 資料庫簡介及SQL語法
一 資料庫是什麼 資料庫就是將大量的資料儲存起來,通過計算機加工而成的可以高效訪問的資料集合。資料庫是長期儲存在計算機內,有組織的 可共享的資料集合。也可以通俗的理解成儲存資料的倉庫。二 我們身邊的資料庫 1.在你過生日的時候支付寶給你發來祝福 2.中國移動傳送簡訊提醒你流量的使用情況 3.登入 後...