MySQL入門

一个空指针發表於2024-04-13

相關概念

  1. 資料;描述資料特徵的符號
  2. 記錄:事物一系列典型的特徵
  3. 表:檔案
  4. 庫:資料夾
  5. 資料庫管理軟體:mysql,oracle,db2,SQLserver
  6. 資料庫伺服器:執行資料庫管理軟體的計算機截圖2024-02-28 19.56.59.png

統一字元編碼

統一客戶端,服務端,mysqld的字元編碼為utf8

SQL語句

截圖2024-02-28 22.07.56.png

操作資料夾(庫)

增:create database db1 charset utf8;
刪: drop database db1;
改:alter database db1 charset gbk;
查:show create database db1;
show database;

操作檔案(表)

切換資料夾:use db1;
檢視當前所在資料夾:select database();
增: create table t1(id int,name char) 表明欄位
查: show create table t1;
show tables;
desc t1/describe;
改: alter table t1 modify name char(6);
alter table t1 change name NAME char(7);
刪: drop table t1;

操作檔案內容(記錄)

增:insert t1(id,name) values(1,'adam'),(2,'matthew');
insert t1 values(1,'adam'),(2,'matthew');(預設欄位順序插入)
查:select id,name from db1.t1;
select * from db1.t1;
改:update db1.t1 set name='SB'(所有欄位)
update db1.t1 set name='ALEX' where id=2;(指定欄位)
刪:delete from t1;
delete from t1 where id=2;

庫操作

截圖2024-02-28 22.11.19.png截圖2024-02-28 22.12.31.png

儲存引擎介紹

儲存引擎就是表的型別(txt,png)截圖2024-02-28 22.16.42.png

檢視Mysql支援的儲存引擎

show engines;

指定表的型別/儲存引擎

create table t1(id int) engine=innodb;

表的增刪改查

截圖2024-03-05 00.42.50.png截圖2024-03-05 00.44.00.png截圖2024-03-05 00.46.18.png截圖2024-03-05 00.48.57.png截圖2024-03-05 00.49.21.png

資料型別

數值型別

截圖2024-03-05 00.54.31.png截圖2024-03-05 00.54.59.png截圖2024-03-05 01.07.58.png截圖2024-03-05 01.13.52.png

日期型別

截圖2024-03-05 01.19.07.png補全&退出

字元型別

截圖2024-03-19 00.26.50.png
截圖2024-03-19 00.31.17.png

列舉型別和集合型別

截圖2024-03-19 00.41.43.png
非範圍內的值,傳入為空

完整性約束

約束條件not null 與 default

截圖2024-03-20 01.21.00.png截圖2024-03-20 01.21.26.png

約束條件unique key

截圖2024-03-20 01.26.08.png截圖2024-03-20 01.26.57.png截圖2024-03-20 01.29.19.png截圖2024-03-20 01.32.07.png

約束條件primary key

截圖2024-03-27 01.09.18.png截圖2024-03-27 01.10.42.png

約束條件auto_increment

自增長欄位必須為key。
截圖2024-03-27 01.14.47.png
可以不用傳自增長欄位,也可以傳(會從上一條記錄自增長 )。
截圖2024-03-27 01.16.30.png
截圖2024-03-27 01.23.56.png
截圖2024-03-27 01.29.19.png
truncate會將自增長欄位索引一起刪除,不會導致重新插入值依然沿著上次的記錄增長。

約束條件之foreign key

截圖2024-03-27 01.39.59.png截圖2024-03-27 01.42.56.png截圖2024-03-27 01.45.28.png截圖2024-03-27 01.53.30.png
想要直接刪除被關聯表欄位,關聯表欄位需要增加約束條件,刪除同步和更新同步。
截圖2024-03-27 01.50.54.png

表關係

多對一截圖2024-03-29 00.43.30.png

多對多

截圖2024-03-29 00.19.20.png

一對一截圖2024-03-29 00.42.45.png

截圖2024-03-29 00.38.07.png

資料操作

截圖2024-03-29 00.46.03.png截圖2024-03-29 00.49.34.png截圖2024-03-29 00.49.48.png

單表查詢

image.png截圖2024-03-29 01.05.01.png

多表查詢

where約束

截圖2024-03-30 01.39.19.png截圖2024-03-30 01.42.28.png

group by分組

截圖2024-03-30 01.57.52.png截圖2024-03-30 01.56.48.png截圖2024-03-30 01.59.54.png截圖2024-03-30 02.00.32.png

having過濾截圖2024-03-31 00.52.43.png

截圖2024-03-31 00.55.04.png

order by排序

limit限制條數截圖2024-03-31 01.22.19.png截圖2024-03-31 01.22.38.png

正則查詢

截圖2024-04-01 00.24.19.png

連表操作截圖2024-04-01 00.38.17.png

執行順序

截圖2024-04-01 00.47.13.png

子查詢

截圖2024-04-03 00.34.48.png截圖2024-04-03 00.36.45.png

許可權管理

截圖2024-04-11 01.35.29.png

Navicat使用

課件裡

pymysql模組基本使用

截圖2024-04-11 23.43.05.png 截圖2024-04-11 23.53.53.png

pymysql模組之sql注入

--➕空格 會註釋後續內容
兩種攻擊注入方式
截圖2024-04-11 23.56.42.png
截圖2024-04-11 23.58.31.png
使用模組內建拼接解決
截圖2024-04-12 00.02.35.png

pymysql模組之增刪改查

插一行
截圖2024-04-12 00.06.03.png
插多行,其他操作類似
截圖2024-04-12 00.07.16.png
查詢一行
截圖2024-04-12 00.09.31.png
修改遊標為字典遊標,以字典形式返回
截圖2024-04-12 00.11.38.png
查詢多行
截圖2024-04-12 00.12.59.png
重複查詢
截圖2024-04-12 00.15.02.png截圖2024-04-12 00.16.11.png
查詢插入的第一條記錄的自增id
截圖2024-04-12 00.19.11.png

MySQL內建功能介紹

檢視(虛擬表)-只有表結構,沒有表資料

可擴充套件性比較差,只是方便查詢

觸發器

截圖2024-04-12 23.38.49.png

delimiter定義結束符號,防止then後面的SQL語句的分號導致提前結束

截圖2024-04-12 23.39.15.png截圖2024-04-12 23.41.02.png

儲存過程(內建功能的總和)-有點像封裝函式

無參儲存過程
截圖2024-04-12 23.47.56.png這裡沒有下劃線callproc
截圖2024-04-12 23.47.33.png
有參儲存過程
必須表明傳入還是傳出引數,以及型別
截圖2024-04-12 23.56.41.png最後是p2_2,寫錯了
截圖2024-04-12 23.52.40.pngmysql示例
截圖2024-04-12 23.58.36.pngpython示例

應用程式和資料庫結合使用

截圖2024-04-13 00.07.02.png

事務-一堆SQL一起執行-原子操作,要麼都成功,一個失敗都失敗

截圖2024-04-13 00.09.13.pngcommit執行完才真正修改了表
宣告結束符號,再定義一個儲存過程,先定義兩種異常,在定義一個事務,在設定一個返回值
截圖2024-04-13 00.13.53.png

函式與流程控制

截圖2024-04-13 00.18.36.png截圖2024-04-13 00.18.50.png

相關文章