SQL語句基礎理論
SQL是操作和檢索關系型數據庫的標准語言,標准SQL語句可用於操作關系型數據庫。
5大主要類型:
①DQL(Data Query Language,數據查詢語言)語句,主要由於select關鍵字完成,查詢語句是SQL語句中最復雜,功能最豐富的語句。
②DML(Data Munipulation Language,數據操作語言)語句,DML語句修改后數據將保持較好的一致性;操作表的語句,如增插insert、更新update、刪除delete等;
③DDL(Data Definition Language,數據定義語言)語句,操作數據對象的語言,包括創建create、刪除drop、修改alter數據庫對象。
④DCL(Data Control Language,數據控制語言)語句,主要有grant、revoke語句。
⑤事務控制語句:主要有commit、rollback和savepoint三個關鍵字完成
注意:
SQL 對大小寫不敏感:SELECT 與 select 是相同的;
MySQL 的SQL語句以分號 (;) 作為結束標識。
DBA所有的操作必須來自於官方文檔
DBA所有的操作必須來自於官方文檔
DBA所有的操作必須來自於官方文檔
(重要的事情說三遍嘛!!)
一、官方文檔的簡單介紹:
1、Tutorial:將MySQL常用的一些操作使用一個場景串聯起來
只是關注里面的灰色部分就可以,按照里面的灰色操作部分順一遍
---詳細的跟着官方文檔的tutorial模塊操作一遍對於初學者還是很有必要的
2、server Administrator:MySQL管理需要的一些命令、工具、參數等
3、SQL Syntax
SQL語法,使用最多,特別是DDL語句一定要使用SQL語法進行參考(增刪改查)
4、Server Option / Variable Reference:MySQL的參數和狀態值,使用較多
5、Functions and Operators
MySQL常用函數和操作符,使用較多
6、Views and Stored Programs
視圖、存儲過程、函數、觸發器、event語法參考
7、Optimization:優化
非常值得細致的看一遍,此篇文檔不僅僅用來參考,更多的是用來學習優化知識,算是DBA進階寶典
8、Partitioning
如果是要進行表分區,此文檔是必須參考的資料,也是唯一參考的資料
9、Information Schema、Performance Schema
中級DBA常用的兩個參考資料
10、Spatial Extensions
地理位置信息(附近的人、附近的餐館……)
11、Replication
MySQL使用復制功能,常用的參考資料
12、Semisynchronous Replication
半同步復制,個別場合會用到
二、官方文檔使用技巧
1、{}大括號括起來並且中間有個|管道符的代表 n 選一,必須輸入
2、[]中括號里括起來的表示可有可無
3、小寫字母代表變量,將來可以替換
4、大寫字母代表關鍵字,必須輸入
5、一般有 sepcification 后綴的表示這是一個規范,后邊還會有詳細的介紹
6、 |管道符連接的信息沒有用{}大括號括起來代表可以有其中一個也可以同時都有
三、MySQL數據庫常用命令:help contents幫助
1、顯示所有數據庫
show databases:列出MySQL數據庫管理系統的數據庫列表
2、創建數據庫
create database [if not exists] dbName:創建名字為dbName指定的數據庫
3、刪除數據庫
drop database dbName:刪除dbName指定的數據庫
4、統計數據庫信息
show table status [{from|in} db_name] [like 'pattern'|where expr] \G:將輸出Mysql數據庫管理系統的性能及統計信息
示例:
show table status from RUNOOB; #顯示數據庫 RUNOOB 中所有表的信息
show table status from RUNOOB like 'runoob%'; #表名以runoob開頭的表的信息
show table status from RUNOOB like 'runoob%'\G; #加上\G,查詢結果按列打印
5、使用數據庫
use dbName:切換、使用指定數據庫
6、顯示表
show tables:顯示指定數據庫的所有表
7、顯示表結構
desc tableName:顯示表結構describe(desc)
show columns from tableName:顯示數據表的屬性,屬性類型,主鍵信息 ,是否為 NULL,默認值等其他信息---類似於desc tableName
8、顯示表索引
show index from 數據表:顯示數據表的詳細索引信息,包括PRIMARY KEY(主鍵)
9、創建表
create table tableName(列聲明) :創建一張表
示例:創建 students 表,存放 學號(id)、姓名(name)、性別(sex)、年齡(age)、聯系電話(tel)
create table students ( id int unsigned not null auto_increment primary key, name char(8) not null, sex char(4) not null, age tinyint unsigned not null, tel char(13) null default "-" );
10、顯示表內容(數據)
select * from tableName:顯示數據表的具體內容
select 列名稱 from tableName [where 條件]:按條件查詢表中的數據
11、修改表中內容(數據)---增、改、刪
增:insert
insert [into] tableName [(列名1, 列名2, 列名3, ...)] values (值1, 值2, 值3, ...) :向表中插入數據
示例:
insert into classmate values("xiaoming","male",18,"china","tennis");
改:update
update tableName set 列名稱=新值 where 更新條件:更新表中的數據
示例:
update classmate set address="chongyi" where id=3
刪:delete
delete from tableName where 刪除條件:刪除表中的數據
批量刪:drop、truncate
drop table tableName:刪除表(包括表的結構和全部數據)
truncate tableName:刪除表(刪除表里的全部數據,保留表結構)
12、創建后表的修改alter table
添加列
alter table 表名 add 列名 列數據類型 [after 插入位置];
示例:
alter table students add address char(60):在表的最后追加列 address
alter table students add birthday date after age:在age 的列后插入列birthday
修改列
alter table 表名 change 列名稱 列新名稱 新數據類型;
示例:
alter table students change tel telphone char(13) default "-":將表中的tel列改名為telphone
alter table students change name name char(16) not null:將 name 列的數據類型改為 char(16)
刪除列
alter table 表名 drop 列名稱;
示例:
alter table students drop birthday:刪除 birthday 列
重命名表
alter table 表名 rename 新表名;
示例:
alter table students rename workmates:重命名 students 表為 workmates
13、關於事務操作
1. BEGIN 或 START TRANSACTION:顯式地開啟一個事務;
2. COMMIT 或 COMMIT WORK:COMMIT會提交事務,並使已對數據庫進行的所有修改成為永久性的;
3. ROLLBACK 或 ROLLBACK WORK:回滾會結束用戶的事務,並撤銷正在進行的所有未提交的修改;
4. SAVEPOINT identifier:SAVEPOINT允許在事務中創建一個保存點,一個事務中可以有多個SAVEPOINT;
5. RELEASE SAVEPOINT identifier:release(釋放),刪除一個事務的保存點,當沒有指定的保存點時,執行該語句會拋出一個異常;
6. ROLLBACK TO identifier:把事務回滾到標記點;
7. SET TRANSACTION;用來設置事務的隔離級別。