文章目錄
- 一、 SQL基本介紹
- 二、SQL基礎
- 1、SQL基本語法
- 2、SQL庫操作
- 1) 創建資料庫
- 2) 顯示資料庫
- 3) 使用資料庫
- 4) 修改資料庫
- 5) 洗掉資料庫
- 6) 總結
- 3、SQL表(欄位)操作
- 1) 創建資料表
- 2) 顯示資料表
- 3) 查看資料表
- 4) 更改資料表
- 5) 更改欄位
- ① 新增欄位
- ② 欄位位置
- ③ 更改欄位名
- ④ 修改欄位
- 6)洗掉欄位
- 7)總結
- 4、SQL資料操作
- 1)新增資料
- 2、查看資料
- 3) 更新資料
- 4、洗掉資料
- 5)總結
一、 SQL基本介紹
SQL (Structured Query Language):結構化查詢語言,是一種針對關系型資料庫特殊標準化的編程語言
- SQL是一種編程語言
- 能夠實作用戶資料庫查詢和程式設計
- SQL根據操作不同,分為幾類
- DQL: Data Query Language,資料查詢語言,用于查詢和檢索資料
- DML: Data Manipulation Language,資料操作語言,用于資料的寫操作(增刪改)
TPL:Transaction Process Language,事務處理語言,輔助DML進行事務操作(因此也歸屬于DML) - DDL: Data Definition Language,資料定義語言,用于創建資料結構
- DCL: Data Control Language,資料控制語言,用于用戶權限管理
注意:
1、SQL雖然是編程語言,但是目前資料庫通常只用來進行資料管理(邏輯部分給其他編程語言)
2、SQL雖然是針對關系型資料庫的通用語言,但是不同的產品操作指令不完全通用
3、資料庫連接資源有限,用完即關閉
二、SQL基礎
目標:學習基本的SQL操作,實作資料庫的基本管理
- SQL基本語法
- SQL庫操作
- SQL表操作
- SQL資料操作
1、SQL基本語法
目標:了解SQL的基本語法規則
SQL語法規則:
- 基礎SQL指令通常是以行為單位
- SQL指令需要陳述句結束符,默認是英文分號:;、\g、\G
- \G:主要用于查詢資料,立體展示結果
- SQL指令類似自然語言
- 撰寫的SQL中如果用到了關鍵字或者保留字,需要使用反引號``來包裹,讓系統忽略
1、結構創建
create 結構型別 結構名 結構描述;
2、顯示結構
- 顯示結構:
show 結構型別(復數); - 顯示結構創建詳情:
show create 結構型別 結構名;
3、資料操作(資料表)
- 新增資料:
insert into 表名 values; - 查看資料:
select from 表名; - 更新資料:
update 表名 set; - 洗掉資料:
delete from 表名;
小結
1、SQL是一種類似于自然語言的編程語言
- 基本SQL指令以行為單位
- SQL指令需要陳述句結束符
2、根據資料庫的物件層級,可以將基礎SQL操作分為三類
- 庫操作:資料庫相關操作
- 表操作:資料表(欄位)相關操作
- 資料操作:資料相關操作
2、SQL庫操作
目標:掌握資料庫相關SQL指令
- 創建資料庫
- 顯示資料庫
- 使用資料庫
- 修改資料庫
- 洗掉資料庫
1) 創建資料庫
創建資料庫:根據專案需求創建一個存盤資料的倉庫
- 使用create database 資料庫名字創建
- 資料庫層面可以指定字符集:charset / character set
- 資料庫層面可以指定校對集:collate
- 創建資料庫會在磁盤指定存放處產生一個檔案夾
- 創建語法:
create database 資料庫名字 [資料庫選項];
1、創建一個指定名字的資料庫
create database db_1;
2、創建一個指定字符集的資料庫
create database db_2 charset utf8MB4;
3、創建一個指定校對集的資料庫
create database db_3 charset utf8MB4 collate utf8mb4_general_ci;
小結
1、資料庫的創建是存盤資料的基礎,資料庫的創建通常是一次性的
2、創建資料庫的語法包含幾個部分
- 關鍵字: create database
- 資料庫名字: 自定義名字
- 數字、字母和下劃線組成
- 不區分大小寫
- 數字不能開頭
- 使用下劃線法創建復雜資料庫名字
- 資料庫選項:非必須的規定
- 字符集:charset /character set 字符集,非必須,默認繼承DBMS
- 校對集:collate 校對集,非必須,依賴字符集
3、創建好的資料庫可以在資料存盤指定地點(安裝時指定)看到
2) 顯示資料庫
顯示資料庫:通過客戶端指令來查看已有資料庫
- 資料庫的查看是根據用戶權限限定的
- 資料庫的查看分為兩種查看方式:
- 查看全部資料庫:
show databases; - 查看資料庫創建指令:
show create database 資料庫名字;
- 查看全部資料庫:
1、顯示所有資料庫
show databases;
2、顯示資料庫創建指令
show create database db_1;
小結
1、查看資料庫分為兩種方式
- 查看全部
- 查看具體創建指令
2、查看資料庫的目的和應用
- 開發人員確認資料庫是否存在
- 資料庫管理員維護
3) 使用資料庫
使用資料庫:指在進行具體SQL指令之前,讓系統知道操作針對的是哪個資料庫
- 資料庫的操作通常是針對資料表或者資料
- 通過使用資料庫可以讓后續指令默認針對具體資料庫環境
- 使用資料庫語法:
use 資料庫名字;
1、使用某個資料庫
use db_1;
小結
1、使用資料庫的指令是:use 資料庫名字;
2、使用資料庫的目標
- 讓系統知道后續SQL指令都是針對當前選擇的資料庫
- 簡化后續SQL指令的復雜度(如果不指定資料庫,那么所有的SQL操作都必須強制指定資料庫名字)
4) 修改資料庫
修改資料庫:修改資料庫的相關庫選項
- 資料庫名字不可修改(老版本可以)
- 先新增
- 后遷移
- 最后洗掉
- 資料庫修改分為兩個部分(庫選項)
- 字符集
- 校對集
- 資料庫修改指令(與創建指令差不多):
alter database 資料庫名字 庫選項
1、修改資料庫字符集
alter database db_2 charset gbk;
2、修改資料庫校對集(如果字符集修改必須同時改變字符集)
alter database db_3 charset gbk collate gbk_chinese_ci;
小結
1、資料庫的修改只能修改庫選項,不能修改名字
2、字符集的修改指令使用alter,其他跟創建指令一致
3、資料庫修改通常有兩部分
- 字符集修改
- 校對集修改(校對集必須對應字符集)
4、一般都不會使用資料庫修改(一般要改也是洗掉后新增)
5) 洗掉資料庫
洗掉資料庫:將當前已有資料庫洗掉
- 洗掉資料庫會洗掉資料庫內所有的表和資料
- 洗掉資料庫操作要慎重(刪前備份)
- 洗掉資料庫后,對應的存盤檔案夾就會消失
- 洗掉語法:
drop database 資料庫名字;
1、洗掉某個資料庫
drop database db_1;
小結
1、洗掉資料庫使用指令:drop database 資料庫名字
2、資料庫的洗掉不可逆
- 洗掉會清空當前資料庫內的所有資料表(表里資料一并洗掉)
- 洗掉資料庫會將對應的檔案夾從磁盤抹掉
- 資料庫洗掉要謹慎(一般不建議洗掉)
6) 總結
1、資料庫的操作通常是一次性的,即在進行業務代碼開展之前將資料庫維護好
2、資料庫的洗掉需要非常慎重,尤其是生產環境,資料庫的洗掉是不可逆(會將資料庫中的所有資料全部洗掉)
3、SQL表(欄位)操作
目標:掌握資料庫和欄位的相關操作指令,熟練運用這些指令完成資料表的增刪改查
- 創建資料表
- 顯示資料表
- 查看表結構
- 更改資料表
- 更改欄位
- 洗掉資料表
1) 創建資料表
目標:了解資料表創建的語法,掌握創建規則
創建資料表:根據業務需求,確定資料表的欄位資訊,然后創建表結構
- 表與欄位不分家,相輔相成
- 表的創建需要指定存盤的資料庫
- 明確指定資料庫:
資料庫.表名 - 先使用資料庫:
use 資料庫名字
- 明確指定資料庫:
- 欄位至少需要指定名字、型別
- 資料庫表不限定欄位數量
- 每個欄位間使用逗號
,分隔 - 最后一個欄位不需要逗號
- 每個欄位間使用逗號
- 表可以指定表選項(都有默認值)
- 存盤引擎:engine [=] 具體存盤引擎
- 字符集:[default] charset 具體字符集(繼承資料庫)
- 校對集:collate(繼承資料庫)
- 表創建語法:
create table [資料庫名.]表名(欄位名 欄位型別,...欄位名 欄位型別)表選項;
1、創建簡單資料表(指定資料庫創建資料表)
create table db_2.t_1(
name varchar(50)
);
2、創建資料表——多欄位
# 使用資料庫(進入資料庫環境)
use db_2;
create table t_2(
name varchar(50),
age int,
gender varchar(10)
);
3、創建資料表——表選項
create table t_3(
name varchar(50)
)engine Innodb charset utf8MB4;
小結
1、創建資料庫表是為了存盤具體資料
2、資料表的創建與欄位是同時存在的
3、資料表的創建需要指定資料庫
- 在表名字前指定資料庫:資料庫名.表名
- 進入資料庫環境(常用)
4、一張資料表用來存一組相關資料
5、擴展:存盤引擎是指資料存盤和管理的方式,MySQL中提供了多種存盤引擎,一般使用默認存盤引擎
- InnoDB
- 默認存盤引擎
- 支持事務處理和外鍵
- 資料統一管理
- MyIsam
- 不支持事務和外鍵
- 資料、表結構、索引獨立管理
- MySQL5.6以后不再維護
6、擴展:如果想創建一個與已有表一樣的資料表,MySQL提供了一種便捷的復制模式
create table 表名 like 資料庫名字.表名;
2) 顯示資料表
目標:了解如何查看資料表結構
顯示資料表:客戶端通過指令顯示已有的資料表
- 資料表的顯示跟用戶權限有關
- 顯示資料表有兩種方式
- 顯示所有資料表:
show tables [from 指定資料庫]; - 顯示部分:
show tables like 'pattern'; - 顯示具體資料表的創建指令:
show create table 表名;
- 顯示所有資料表:
1、顯示所有資料表——當前資料庫下
show tables;
2、顯示所有資料表——指定資料庫
show tables from db_3;
3、顯示部分關聯資料表——匹配
show tables like '%like'; # _表示匹配一個字符(固定位置),%表示匹配N個字符
4、顯示資料表的創建指令
show create table t_1; # 看到的結果未必一定是真實創建的指令(系統會加工)
小結
1、顯示資料表有兩種形式
- 顯示所有資料表:show tables [from 指定資料庫];
- 顯示部分:show tables like ‘pattern’; 匹配模式:_匹配單個字符,%匹配不限量字符
- 顯示資料表創建指令:show create table 表名;
2、顯示資料表通常是為了驗證資料表是否存在或者驗證資料表的創建指令是否正確
3、在顯示資料的時候可以使用不同的陳述句結束符
- \g:與普通分號無區別
- \G:縱向顯示列資料
3) 查看資料表
目標:了解查看資料表的概念和掌握資料表查看的語法
查看資料表:指查看資料表中的具體結構
- 通常是查看欄位資訊
- 詳細的顯示欄位的各項資訊
- 查看語法有三種(效果一樣)
desc 表名;describe 表名;show columns from 表名;
desc t_1;
小結
1、資料表的查看是為了查看表中具體欄位的資訊
2、查看資料表的指令有多個,效果都一樣
- desc 表名;(常用)
- describe 表名;
- show columns from 表名;
3、查看表結構的原因通常是在開發程序中為了更清晰的了解資料的存盤形式和要求
4) 更改資料表
目標:了解資料表的修改內容以及修改語法
更改資料表:修改表名字和表選項
- 修改表名:
rename table 表名 to 新表名; - 修改表選項:
alter table 表名 表選項;
1、修改表名
rename table t_1 to t1;
注意:如果有時候想要跨庫修改的話,需要使用資料庫名.表名
2、修改表選項
alter table t1 charset utf8;
小結
1、更改資料表分為兩個部分
- 更改表名:rename table 原表名 to 新表名;
- 更改表選項:alter table 表名 表選項
2、通常我們較少使用更改資料表,資料表應該在創建時就定義好
5) 更改欄位
目標:了解欄位更改的型別和基本語法的使用
更改欄位:指標對表創建好后,里面欄位的增刪改
- 欄位操作包含欄位名字、型別和屬性的操作
- 欄位操作分為四類
- 新增欄位:add [column]
- 更改欄位名:change
- 修改型別:modify
- 洗掉欄位:drop
- 欄位操作還有位置處理
- 欄位操作通常是在表已經存在資料后進行
① 新增欄位
新增欄位:在表創建好后往里面增加其他欄位
-
欄位的新增必須同時存在欄位型別
-
新增語法:
alter table 表名 add [column] 欄位名 欄位型別 [欄位屬性] [欄位位置]
1、給已經存在的t_3表增加一個欄位age
alter table t_3 add age int;
2、給已經存在的t_3表增加一個欄位nickname
alter table t_3 add column nickname varchar(10);
小結
1、新增欄位就是給已有表追加一個欄位(較少)
2、欄位新增必須指定欄位型別
3、欄位新增語法為:alter table 表名 add [column] 欄位名 欄位型別;
4、欄位的追加默認是在所有欄位之后
② 欄位位置
欄位位置:指欄位放到某個指定欄位之后
- 欄位位置分為兩種
- 第一個欄位:first
- 某個欄位后:after 已經存在欄位名
- 欄位位置適用于追加欄位、修改欄位、更改欄位名
- 欄位位置語法:
alter table 表名 欄位操作 欄位位置;
1、為t_3表增加一個id欄位,放到最前面
alter table t_3 add id int first;
2、在t_3表name欄位后增加一個身份證欄位card
alter table t_3 add card varchar(18) after name;
小結
1、欄位位置是配合欄位操作的(新增、修改)
2、欄位位置分兩種
- 最前面(第一個欄位):first
- 欄位后面:after 已存在欄位名
③ 更改欄位名
更改欄位名:指對已經存在的欄位名進行修改
- 欄位名的修改也必須跟上欄位型別
- 欄位名修改語法:
alter table 表名 change 原欄位名 新欄位名 欄位型別 [欄位屬性] [位置]
1、修改欄位名card為sfz
alter table t_3 change card sfz varchar(18);
小結
1、欄位名更改通常只是修改欄位名字,但是也必須跟隨型別
2、欄位名修改語法:alter table 表名 change 原欄位名 新欄位名 欄位型別
3、欄位名修改change其實也可以修改欄位型別、屬性和位置,但是通常不使用(專人專事)
④ 修改欄位
修改欄位:指修改欄位的相關資訊
- 修改欄位型別、欄位屬性和位置
- 修改欄位語法:
alter table 表名 modify 欄位名 欄位型別 [欄位屬性] [位置];
1、修改身份證的型別為char(18)并且位置放到id后面
alter table t_3 modify sfz char(18) after id;
小結
1、修改欄位包含多個操作
- 欄位型別修改
- 欄位屬性修改
- 欄位位置修改
2、修改欄位語法:alter table 表名 modify 欄位名 欄位型別 [欄位屬性] [位置];
6)洗掉欄位
目標:了解欄位洗掉語法
洗掉欄位:即將某個不要的欄位從表中剔除
- 洗掉欄位會將資料也洗掉(不可逆)
- 洗掉欄位語法:
alter table 表名 drop 欄位名;
1、洗掉年齡欄位
alter table t_3 drop age;
小結
1、欄位洗掉在洗掉欄位名的同時會洗掉欄位對應的資料,而且不可逆
2、欄位洗掉語法:alter table 表名 drop 欄位名
7)總結
1、資料表結構的操作是資料操作的基礎
2、一般情況下新手都不會接觸資料表的設計,但是作為一名新手一定要在使用資料表之前查看資料表的結構資訊
3、不要輕易的修改或者洗掉資料表結構(資料會一并被處理掉)
4、資料表結構的維護通常是一次性的,在業務開展前盡可能好的設計好資料表,而不要后期再進行其他維護
4、SQL資料操作
目標:掌握mysql中資料的增刪改查的基本操作
- 新增資料
- 查看資料
- 更新資料
- 洗掉資料
1)新增資料
目標:了解資料的新增指令和邏輯,實作資料的入庫操作
新增資料:將資料插入到資料表永久存盤
- 新增資料是根據表的欄位順序和資料型別要求將資料存放到資料表中
- 資料表中的資料以行(row) 為存盤單位,實際存盤屬于 欄位(field) 存盤資料
- 資料插入分兩種方式:
- 全欄位插入:
insert into 表名 values(欄位串列順序對應的所有值); - 部分欄位插入:
insert into 表名 (欄位串列) values(欄位串列對應的值順序串列);
- 全欄位插入:
1、給t_3表插入一條完整資料
insert into t_3 values(1,'440111200011111101','Jim','Green');
2、根據欄位插入資料
insert into t_3 (id,sfz,name) values(2,'441000200011111211','Tom');
小結
1、資料插入是利用insert指令將資料永久存盤到資料表中
2、資料存盤以行為單位,欄位為最小實際存盤單位
3、資料插入分為兩種方式插入資料
- 全欄位插入
- insert into 表名 values(值串列)
- 值串列必須與欄位串列順序一致
- 值串列的每個資料型別必須與欄位型別一致
- 部分欄位插入
- insert into 表名 (欄位串列) values(值串列)
- 欄位串列可以順序隨意
- 值串列必須與指定的欄位串列順序一致
- 值串列元素的型別必須與欄位串列的型別一致
2、查看資料
目標:了解資料查看的指令,掌握資料查看實際操作
查看資料:將表中已經存在的資料按照指定的要求顯示出來
- 查到的資料顯示出來是一張二維表
- 資料顯示包含欄位名和資料本身
- 資料查看分兩種方式
- 查看全部欄位:使用
*代替所有欄位 - 查看部分欄位:明確欄位名,使用逗號分隔
- 查看全部欄位:使用
- 查看資料很多時候也是根據條件查詢部分資料
- 查看語法:
select */欄位串列 from 表名;
1、查看t_3表中所有資料
select * from t_3;
2、查看t_3表中的name和身份證資訊
select name,sfz from t_3;
3、查看t_3表中id值為1的資訊
select * from t_3 where id = 1;
小結
1、資料查看是資料庫中最常用的操作(99%)
2、資料查看分兩種情況
- 查看全部:select * (*叫做通配符)
- 查看部分:select 欄位串列(建議)
3、實際使用時通常會帶where條件進行資料篩選
3) 更新資料
目標:了解更新資料的語法,掌握資料更新操作
更新資料:即更新某個已有欄位的值
- 更新資料通常是根據條件更新某些資料,而不是全部記錄都更新
- 更新資料語法:
update 表名 set 欄位 = 新值[,欄位 = 新值] [where條件篩選];
1、更新所有記錄的身份證資訊
update t_3 set sfz = '440100200010100001';
2、更新某個記錄的多個欄位資料
update t_3 set name = 'Lily',sfz = '440100200010100002' where id = 1;
小結
1、更新資料的針對記錄的欄位資料進行更新
2、更新通常是限定條件更新(一般不會更新全部)
4、洗掉資料
目標:了解洗掉語法,掌握洗掉操作實作
洗掉資料:將資料從已有資料表中清除(針對的是記錄record)
- 洗掉資料是一種不可逆操作
- 資料洗掉通常都是有條件洗掉
- 資料洗掉語法:
delete from 表名 [where條件];
1、洗掉t_3表中id為2的資料
delete from t_3 where id = 2;
小結
1、資料洗掉是不可逆的操作
2、資料洗掉通常都匹配條件部分洗掉
5)總結
1、資料操作不論是初級開發者還是高級開發者都頻繁接觸的操作
2、資料操作中讀操作,往往占據了整個操作的99%以上
3、基本的增刪改查是作為進階的必要知識,必須熟練掌握和頻繁練習(盡可能使用原碼,集成工具后期開發時使用)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/290948.html
標籤:其他
上一篇:cgb2106-day02
