sql: structured query language,結構化查詢語言(資料以查詢為主:99%是在進行查詢)
sql分為三部分
ddl:
data definition language,資料定義語言,用來存貯維護資料的結構(資料庫,表)
代表指令:crate,drop,,alter等
dmldata manipualation language, 資料操作語言,用來對資料進行操作(資料表中的內容)
代表指令:insert,delete,update等 其中dml中又單獨分出乙個類dql(data query laguage:資料查詢語言,select)
dcldata control language,資料控制語言,只要負責許可權管理(使用者)
代表指令:grant revoke等
互動方式
客戶端連線認證:連線伺服器,認證身份mysql -h[主機] -p[埠] -u[使用者名稱] -p 傳送sql指令 show databases; – 檢視所有的資料庫 伺服器接收sql指令:處理sql指令:返回操作結果 客戶端接收結果:顯示結果 斷開連線(釋放資源:伺服器併發限制)exit/quit/『\q』基本操作:crud
將sql的基本操作根據操作物件分類:分為三類:庫操作,表操作(字段),資料操作
對資料庫的增刪改查
+ 新增資料庫
基本操作
注釋:-- 雙下劃線+空格, 也可以使用 #號
create databases 資料庫名字 [庫選項];
庫選項: 用來約束資料庫,分為兩個選項
字符集設定:charset/character set 具體字符集(資料儲存的編碼格式):常用字符集:gbk和utf8
校對集設定:collate具體校對及(資料比較的規則)當資料庫中sql語句執行後發生了什麼?
1. 增加了對應的資料庫資訊
2. 儲存資料資料夾下data目錄,建立乙個對應資料庫名字的資料夾
3. 資料夾下會有乙個.opt檔案,資料庫庫選項(字符集,校對集:校對集依賴字符集)
檢視所有資料庫:show databases; 檢視指定部分資料庫:模糊查詢 show databases like 『pattern』 – pattern 是匹配模式(%:表示匹配對各字元, _:表示匹配單個字元)注意:其中包含_ 需要『\』轉義 檢視資料庫的建立語句:show create database [databasename];資料庫名字不可修改。
資料庫僅限修改庫選項:字符集和校對集(校對集依賴字符集)
alter database 資料庫名字 [庫選項];
charsett/character set = 字符集
collate 校對集
drop database 資料庫名;
刪除資料庫語句後發生了什麼?
1. 在資料庫內部看不到對應的資料庫
2. 對應的資料庫儲存資料夾內:資料對應名字的資料夾也被刪除(級聯刪除)
注意:資料庫不要隨意刪除應,應先備份後操作(刪除不可逆)
表與字段密不可分。
create table [if not exists] 表名(
欄位名 字段型別,
欄位名 字段型別 -- 最後一行不需要加逗號
)[表選項];
if not exists 做表名不存在就建立,否則不執行建立**:檢查功能
表選項:控制表的表現
1. 字符集 charset/character set 具體字符集; -- 保證表中資料儲存的字符集
2. 校對集:collata 具體校對集;
3. 儲存引擎:engin 具體儲存引擎(innodb和myisam)
建立資料庫語句出錯,no database selected 沒有選擇資料庫。
方案一:顯示的指定表所屬的資料庫
create table 資料庫名.表名(); -- 將當前資料表建立到指定資料庫下
方案二:隱式指定表所屬的資料庫:先進入某個資料庫環境,然後建立的表就自動歸屬到指定資料庫
進入資料庫(使用資料庫): use 資料庫名字;建立資料表sql指令執行後發生了什麼?
1. 在指定資料庫下已存在對應的表
2. 資料庫資料夾下會產生對應表結構的檔案(和儲存引擎相關) .frm 檔案
檢視所有表:show tables; 檢視部分表:show tables like 『%s』; 檢視表的建立語句:show create table; 檢視表結構:檢視表中字段資訊:desc/describe 表名; show collumns from 表名;表本身,欄位兩部分
修改表本身
表本身修改:表名,表選項
修改表名:rename table 舊表名 to 新錶名;
修改表選項:字符集,校對集和儲存引擎
alter table student charset gbk;修改字段
字段操作:新增,修改,重名,刪除
新增字段;
alter table 表名 add [column] 欄位名 資料型別 [列屬性][位置];
位置:欄位名存在表中的任意位置
first: 第乙個位置
after: 在某乙個字段之後;預設在最後乙個字段之後;
修改字段:修改通常是該屬性或者資料型別
alter table 表名 modify 欄位名 資料型別 [屬性][位置];
重新命名字段
alter table 表名 change 舊欄位 新字段 資料型別 [屬性][位置];
刪除字段
alter table drop 欄位名;
小心:如果表中已經存在資料,那麼刪除欄位會清空該字段的所有資料(不可逆);
drop table 表名1,表名2.。。;可以一次性刪除多張表
刪除資料表指令執行後發生了什麼?
1. 在表空間中,沒有了指定的表(資料也沒了)
2. 在資料庫對應的資料夾下,表對應的檔案(與儲存引擎有關)也會被刪除
注意:刪除有危險,操作需要謹慎(不可逆)
兩種方案
方案1:給全表插入資料,不需要指定字段列表,要求資料的之出現的順序必須與表中設計的字段出先的順序一直:凡是非數值資料,都需要使用引號(建議單引號)包裹
insert into 表名 values(值列表),(值列表),(值列表),… – 可以一次性插入多條記錄
方案2:給部分字段插入資料,需要選定字段列表:字段列出表現的順序與字段順序無關;但是只列表順序必須與選定字段順序一致。
insert into 表名 (字段列表) values(值列表),values(值列表),… – 可以一次性插入多條記錄
檢視所有
select */字段列表 from 表名;
檢視指定字段,指定條件的資料
例如:select id, num, name from student where id=1;
update 表名 set 字段 = 值 [where條件]; – 建議都使用where ,沒有where條件的是更新全部內容
更新不一定會成功:當資料更新沒有變化時就會顯示皇后影響條數0條;
刪除不可逆:謹慎刪除
delete from 表名 [where條件];
雲資料庫MySQL版快速上手教程
阿里雲大學免費課程 雲資料庫mysql版快速上手教程 課程介紹 mysql 是全球最受歡迎的開源資料庫,作為開源軟體組合 lamp linux apache mysql perl php python 中的重要一環,廣泛應用於各類應用場景。本課程主要介紹雲資料庫 mysql 版的使用 資料遷移 備份...
雲資料庫MySQL版快速上手教程
mysql是一種開放源 的關係型資料庫管理系統 rdbms mysql資料庫系統使用最常用的資料庫管理語言 結構化查詢語言 sql 進行資料庫管理。mysql因為其速度 可靠性和適應性而備受關注。大多數人都認為在不需要事務化處理的情況下,mysql是管理內容最好的選擇。mysql這個名字,起源不是很...
雲資料庫MySQL版快速上手教程
mysql是一種開放源 的關係型資料庫管理系統 rdbms mysql資料庫系統使用最常用的資料庫管理語言 結構化查詢語言 sql 進行資料庫管理。mysql因為其速度 可靠性和適應性而備受關注。大多數人都認為在不需要事務化處理的情況下,mysql是管理內容最好的選擇。mysql這個名字,起源不是很...