本篇文章主要給大家介紹SQL的基本操作及表操作,希望對需要的朋友有所幫助!
推薦參考教程:《SQL教程》
SQL 基本操作
基本操作:CURD,即增刪改查。
根據(jù)操作對象的不同,咱們可以將 SQL 的基本操作分為三類,分別為:庫操作、表(字段)操作和數(shù)據(jù)操作。
表操作
1 新增表
基本語法:
create?table?[if?not?exists]?+?表名( ????字段名稱?數(shù)據(jù)類型, ????…… ????字段名稱?數(shù)據(jù)類型???/*?最后后一行,不需要加逗號?*/ )[表選項];
其中,if not exists表示
-
如果表名不存在,就執(zhí)行創(chuàng)建代碼;如果表名存在,則不執(zhí)行創(chuàng)建代碼。
表選項則是用來控制表的表現(xiàn)形式的,共有三種,分別為:
-
字符集設(shè)定:charset/ character set+ 具體字符集,用來表示數(shù)據(jù)存儲的編碼格式,常用的字符集包括GBK和UTF8等。
-
校對集設(shè)定:collate+ 具體校對集,表示數(shù)據(jù)比較的規(guī)則,其依賴字符集。
-
存儲引擎:engine+具體存儲引擎,默認為InnoDB,常用的還有MyISAM.
由于任何表都歸屬于某個數(shù)據(jù)庫,因此在創(chuàng)建表的時候,都必須先指定具體的數(shù)據(jù)庫。在這里,指定數(shù)據(jù)庫的方式有兩種,分別為:
-
第 1 種:顯式的指定表所屬的數(shù)據(jù)庫,示例
create?table?if?not?exists?test.student( ????name?varchar(10), ????age?int,????????????/*?整型不需要指定具體的長度?*/ ????grade?varchar(10)???/*?最后后一行,不需要加逗號?*/ )charset?utf8;
-
第 2 種:隱式的指定表所屬的數(shù)據(jù)庫,示例
use?test;???????????????/*?use?+?數(shù)據(jù)庫名稱,表示切換到指定的數(shù)據(jù)庫,這句命令其實不加分號也可以,但不建議這么做?*/create?table?if?not?exists?student( ????name?varchar(10), ????age?int,????????????/*?整型不需要指定具體的長度?*/ ????grade?varchar(10)???/*?最后后一行,不需要加逗號?*/ )charset?utf8;
2 查詢表
查看全部 –> 基本語法:show tables;
查看部分(模糊查詢)–> 基本語法:show tables like ‘pattern’;
其中,pattern是匹配模式,有兩種,分別為:
-
%:表示匹配多個字符;
-
_:表示匹配單個字符。
此外,在匹配含有下劃線_的表名的時候,需要在下劃線前面加上反斜線_進行轉(zhuǎn)義操作。
示例:show tables like ‘%t’;表示匹配所有以t結(jié)尾的表。
查看表的創(chuàng)建語句 –> 基本語法:show create table + 表名;
在這里,咱們也可以用g和G代替上述語句中的;分號,其中g(shù)等價于分號,G則在等價于分號的同時,將查的表結(jié)構(gòu)旋轉(zhuǎn)90度,變成縱向結(jié)構(gòu)。
查看表中的字段信息 –> 基本語法:desc/describe/show columns from + 表名;
3 更新表
在這里,需要注意:表的修改,分為修改表本身和修改表中的字段。
-
第 1 類:修改表本身
-
修改表名,基本語法:rename table 舊表名 to 新表名;
-
修改表選項,基本語法:alter table + 表名 + 表選項[=] + 值;
-
第 2 類:修改表中的字段,新增、修改、重命名和刪除
-
示例:alter table student drop age;
-
注意:如果表中已經(jīng)存在數(shù)據(jù),那么刪除該字段會清空該字段的所有數(shù)據(jù),而且不可逆,慎用。
-
其中,位置表示此字段存儲的位置,分為first(第一個位置)和after + 字段名(指定的字段后,默認為最后一個位置).
-
示例:alter table student change grade class varchar(10);
-
其中,位置表示此字段存儲的位置,分為first(第一個位置)和after + 字段名(指定的字段后,默認為最后一個位置).
-
示例:alter table student modify name char(10) after id;
-
其中,位置表示此字段存儲的位置,分為first(第一個位置)和after + 字段名(指定的字段后,默認為最后一個位置).
-
示例:alter table student add column id int first;
-
新增字段,基本語法:alter table + 表名 + add + [column] + 字段名 + 數(shù)據(jù)類型 + [列屬性][位置];
-
修改字段,基本語法:alter table + 表名 + modify + 字段名 + 數(shù)據(jù)類型 + [列屬性][位置];
-
重命名字段,基本語法:alter table + 表名 + change + 舊字段名 + 新字段名 + 數(shù)據(jù)類型 + [列屬性][位置];
-
刪除字段,基本語法:alter table + 表名 + drop+ 字段名;
4 刪除表
基本語法:
/**?可以一次刪除多張表?*/drop?table?+?表1,?表2?...?;
在這里,需要注意:此刪除為不可逆操作,希望大家謹慎使用。
溫馨提示:符號[]括起來的內(nèi)容,表示可選項;符號+,則表示連接的意思。