一、SQL的簡介
結構化查詢語言(Structured Query Language),簡稱SQL。它是專門用來訪問數據庫的標準編程語言。它可以用於存儲數據,查詢數據,更新數據以及管理關係型數據庫等操作。同時,數據庫腳本文件的擴展名也是sql。
SQL是高級的非過程化編程語言,允許用戶在高層數據結構上工作。同時,SQL語句可以嵌套,因此擁有極大的靈活性和強大的功能。但是,數據庫廠商都對SQL標準語言做了某些改編和擴充,因此,不同的數據庫的SQL語言,用法、格式等不完全一致。
SQL語言可以分成五個部分,分別爲DDL,DML,TCL,DCL,DQL。
1、數據定義語言(Data Definition Language ),簡稱DDL。
用於建立,刪除,修改數據庫對象的語言。包含如下關鍵字
create:用於創建表或者其他對象的結構
drop:用於刪除表或者其他對象的結構
alter:用於修改表或者其他對象的結構
truncate:用於清空表數據,保留表結構
2、數據操縱語言(Data Manipulation Language),簡稱DML。
用於改變數據表的數據。通常與事務控制語言一起使用,要經過事務控制語言的提交操作,纔會真正的將數據持久到數據庫中。包含如下關鍵字:
insert:將數據插入到數據表中。
update:更新數據表中已存在的數據。
delete:刪除數據表中的數據。
3、數據查詢語言(Data Query Language),簡稱DQL。
用於查詢數據表中的數據。或者用於科學計算。關鍵字如下:
select:選擇要顯示的數據。
4、事務控制語言(Transaction Control Language),簡稱TCL。
用於保證數據的完整性和一致性。只有數據表正在進行DML操作時,纔會涉及到事務。關鍵字如下:
commit:提交,確任。將已經進行的DML操作的數據持久化。
rollback:回滾,回退。用於取消已經進行的DML操作。
savepoint:保存點。可以將當前的DML操作回退到指定的保存點,便於取消部分改變。
5、數據控制語言(Data Control Language),簡稱DCL。
用於執行關於權限的授予和撤銷操作。關鍵字如下:
grant:授權。用於給用戶或者角色授予權限.
revoke:撤銷。用於回收用戶或者角色的權限。
create user:創建用戶。
drop user :刪除用戶。
二、MySql的常用SQL語法
市場上流通的數據庫雖然都遵守了SQL語言的標準規範,但是用法也不完全相同。下面我將MySQL數據庫的各個部分的使用語法整理一下,方便大家記憶。PS:下面會用到"[]"中括號,表示可選。
1、關於數據庫的創建,刪除等操作語法
在實際開發中,任何一個項目的數據存儲與管理都對應一個數據庫(數據存儲空間),避免與其他項目的數據混在同一個數據庫中,因此,會涉及到數據庫的創建等操作。
(1)創建數據庫:create database [if not exists] dbName [default character set utf8] [collate utf8_general_ci | utf8_general_cs];
>解析> 此語句指定數據庫的字符集爲utf8。utf8_general_ci表示字母大小寫不敏感;utf8_general_cs表示大小寫敏感
(2)查看數據庫:show databases;
(3)選擇數據庫:use dbName;
(4)刪除數據庫:drop database dbName;
(5)查看數據庫字符集:show variables like "%character%";
(6)修改數據庫字符集:alter database dbName character set cName;
(7)修改命令提示符界面顯示字符集(當前窗口有效):set name cName;
2、DDL語言的操作語法
(1)創建表結構:
create table tName (colName1 type1,...,colNameN typeN) [engine=innodb][default character set cName][collate utf8_general_ci]
(2)顯示錶結構:desc tName 或者 show columns from tName;
(3)添加表字段:alter table tName add colName Type;
(4)刪除表字段:alter table tName drop colName;
(5)修改表字段類型/表字段名稱
alter table tName modify colName newType;
alter table tName change colName newColName newType;
(6)修改表名:alter table oldName rename newName;
(7)清空表數據,保留表結構:truncate table tName;
(8)刪除表結構:drop table tName;
(9)複製表結構:create table newName like oldName;
3、DML語言的操作語法
(1)插入數據到表中:
方法1: insert into tName (colName1,....,colNameN)values (value1,.....,valueN);
方法2: insert into tName values ( value1,.....,valueN); /*按照建表字段順序賦值*/
(2)修改表中數據:
update tName set colName1=value1,.....colNameN=valueN [ where 條件 ];
(3)刪除表中數據:delete from tName [ where 條件 ];
4、DQL語言的操作語法
select colName1,......,colNameN from tName [where 子句] [ group by 子句] [ having 子句] [order by子句]
select有選擇的意思,即選擇哪些字段進行查詢,顯示。