一、SQL語(yǔ)法
創(chuàng)新互聯(lián)建站專(zhuān)業(yè)提供成都主機(jī)托管四川主機(jī)托管成都服務(wù)器托管四川服務(wù)器托管,支持按月付款!我們的承諾:貴族品質(zhì)、平民價(jià)格,機(jī)房位于中國(guó)電信/網(wǎng)通/移動(dòng)機(jī)房,BGP機(jī)房服務(wù)器托管服務(wù)有保障!
1、數(shù)據(jù)庫(kù)表
一個(gè)數(shù)據(jù)庫(kù)通常包含一個(gè)或多個(gè)表。每個(gè)表由一個(gè)名字標(biāo)識(shí),表包含帶有數(shù)據(jù)的行。
2、大小寫(xiě)
SQL對(duì)大小寫(xiě)不敏感。
3、SQL語(yǔ)句后的分號(hào)
某些數(shù)據(jù)庫(kù)要求在每條SQL命令的末尾使用分號(hào),比如MySQL。
4、SQL的DML和DDL
可以把SQL分為兩個(gè)部分:DML(data manipulation language數(shù)據(jù)操作語(yǔ)言)和DDL(data definition language數(shù)據(jù)定義語(yǔ)言)
查詢(xún)和更新數(shù)據(jù)的指令構(gòu)成了SQL的DML部分:
select —— 從數(shù)據(jù)庫(kù)表中讀取數(shù)據(jù)
update —— 更新數(shù)據(jù)庫(kù)表中的數(shù)據(jù)
delete —— 從數(shù)據(jù)庫(kù)表中刪除數(shù)據(jù)
insert into —— 向數(shù)據(jù)庫(kù)表中插入數(shù)據(jù)
SQL的DDL部分指創(chuàng)建或刪除表格,更新表結(jié)構(gòu),定義索引,規(guī)定表之間的鏈接,施加表間的約束的命令。
create database —— 創(chuàng)建新數(shù)據(jù)庫(kù)
alter database —— 修改數(shù)據(jù)庫(kù)
create table —— 創(chuàng)建新表
alter table —— 更新表結(jié)構(gòu)
drop table —— 刪除表
create index —— 創(chuàng)建索引
drop index —— 刪除索引
二、創(chuàng)建一個(gè)實(shí)例
以MySQL為例:
mysql> create database study; mysql> use study; mysql> create table students(id int auto_increment primary key,name varchar(255),sex char(10)); mysql> insert into students (name,sex) values ('zhangsan','man'),('lisi','woman'),('wangwu','man'),('zhaoliu','woman'); mysql> select * from students;
注意:在MySQL中值除了數(shù)字之外,都需要用''包含。
三、基礎(chǔ)SQL語(yǔ)句
1、select:用于從表中獲取數(shù)據(jù)。
格式:select 列名 from 表名;
例子:
①?gòu)膕tudents表中選取所有的學(xué)生姓名:
mysql> select name from students;
②從students表中選取所有的學(xué)生姓名和性別:
mysql> select name,sex from students;
多個(gè)列名之間用逗號(hào)隔開(kāi)。
③查看students表中的所有數(shù)據(jù):
mysql> select * from students;
“*”代表所有的列名。
2、distinct:在表中,可能包含有重復(fù)的數(shù)據(jù),但是有時(shí)希望僅僅列出不同的值。這時(shí)使用distinct返回唯一不同的值。
格式:select distinct 列名 from 表名;
例子:
①?gòu)膕tudents表中列出所有的性別(……):
mysql> select distinct sex from students; +-------+ | sex | +-------+ | man | | woman | +-------+ man和woman各被列出一次。
3、where:用于有條件地從表中獲取數(shù)據(jù),通常和select一起使用。
格式:select 列名 from 表名 where 列名 運(yùn)算符 值;
這里的運(yùn)算符包含=(等于)、<>(或!=,不等于)、>=(大于等于)、<=(小于等于)、>(大于)、<(小于)、between(在某個(gè)范圍內(nèi))、like(以某種模式)
例子:
①?gòu)膕tudents表中列出所有性別為“man”的學(xué)生:
mysql> select name from students where sex = 'man';
這樣會(huì)列出‘zhangsan’,‘wangwu’二個(gè)值。
②從students表中列出所有ID不超過(guò)3的學(xué)生:
mysql> select name from students where id <= 3;
這樣會(huì)列出‘zhangsan’,‘lisi’,‘wangwu’三個(gè)值。
③從students表中列出所有ID在2和3之間的學(xué)生:
mysql> select name from students where id between 2 and 3;
這樣會(huì)列出‘lisi’,‘wangwu’二個(gè)值。不同的數(shù)據(jù)庫(kù)對(duì)兩個(gè)邊界值(2和3)的處理方式不同,mysql會(huì)列出包含2和3的列,但是有些數(shù)據(jù)庫(kù)不會(huì)列出。
4、and和or:用于對(duì)一個(gè)以上的記錄進(jìn)行過(guò)濾??梢栽趙here子句中把兩個(gè)或多個(gè)條件結(jié)合起來(lái)。
例子:
①?gòu)膕tudents表中列出ID不超過(guò)3,且性別為女的學(xué)生姓名:
mysql> select name from students where id <=3 and sex='woman';
這樣會(huì)列出‘lisi’一個(gè)值。
5、order by:用于對(duì)獲取的結(jié)果進(jìn)行排序。默認(rèn)是對(duì)結(jié)果進(jìn)行升序排序,可以使用desc關(guān)鍵字對(duì)結(jié)果進(jìn)行降序排序。
例子:
①對(duì)students表中的姓名按照字母順序顯示:
mysql> select name from students order by name;
②對(duì)students表中的姓名按照id由大到小顯示:
mysql> select id,name from students order by id desc;
6、insert into:用于向表中插入新的行(數(shù)據(jù))。
格式:insert into 表名 values (值1,值2,……);
向指定的列插入數(shù)據(jù):insert into 表名 (列1,列2,……)values (值1,值2,……);
例子:
①向students表中插入一行,id 5,姓名 qianqi,性別 woman:
mysql> insert into students values (5,'qianqi','woman');
②向students表中插入兩行:
mysql> insert into students (name,sex) values ('sunba','man'),('wujiu','man');
一個(gè)()里是一行,多行用逗號(hào)“,”隔開(kāi)。
7、update:用于修改表中的數(shù)據(jù)。
格式:update 表名 set 列名=新值 where 列名=某值;兩個(gè)列為不同的列。
例子:
①將students表中zhangsan的性別改為woman:
mysql> update students set sex='woman' where name='zhangsan';
8、delete:用于刪除表中的行(數(shù)據(jù))。
格式:delete from 表名 where 列名=值;
例子:
①?gòu)膕tudents表中刪除姓名為wujiu的行:
mysql> delete from students where name='wujiu';
②刪除students表中所有的行:
mysql> delete from students;或者 mysql> delete * from students;
這樣只會(huì)刪除表中的所有數(shù)據(jù),并不會(huì)刪除表結(jié)構(gòu)、索引、屬性。
9、alter:用于在數(shù)據(jù)表中添加、修改、刪除列,修改表名稱(chēng)。
①向表中添加一列:
格式:alter table 表名 add 列名 數(shù)據(jù)類(lèi)型;
例子:向students表中添加一列‘a(chǎn)ge’,數(shù)據(jù)類(lèi)型‘int’:
mysql> alter table students add age int;
②修改表中某一列的列名:
格式:alter table 表名 change 現(xiàn)在的列名 修改后的列名 數(shù)據(jù)類(lèi)型;
例子:修改students表中‘name’為‘perons’:
mysql> alter table students change name persons varchar(255);
③修改表中某一列的數(shù)據(jù)類(lèi)型:
格式:alter table 表名 modify 列名 修改后的數(shù)據(jù)類(lèi)型
例子:將students表中persons的數(shù)據(jù)類(lèi)型改為char(100):
mysql> alter table students modify persons char(100);
④修改表名
格式:alter table 表名 rename 修改后的表名;
例子:將students表的表名改為learners:
mysql> alter table students rename learners;
⑤刪除表中的某一列
格式:alter table 表名 drop 列名;
例子:刪除learners表中的age列:
mysql> alter table learners drop age;
10、drop:用來(lái)刪除數(shù)據(jù)庫(kù)表、索引。
①刪除數(shù)據(jù)庫(kù):
格式:drop database 數(shù)據(jù)庫(kù)名
②刪除數(shù)據(jù)表:
格式:drop table 數(shù)據(jù)表名
③刪除索引,用于MySQL的語(yǔ)法:
格式:alter table 表名 drop 索引名稱(chēng)
11、primary key:主鍵,唯一標(biāo)識(shí)數(shù)據(jù)庫(kù)表中的每條記錄。
主鍵必須唯一,且不能包含空值。每個(gè)表都應(yīng)該有一個(gè)主鍵,并且每個(gè)表只能有一個(gè)主鍵。
在實(shí)例中是把id設(shè)為了主鍵,在創(chuàng)建表的時(shí)候在id后面加上primary key。
12、auto_increment:設(shè)置主鍵自增長(zhǎng)。
文章名稱(chēng):SQL學(xué)習(xí)之一基礎(chǔ)命令
新聞來(lái)源:http://www.muchs.cn/article4/ghjpoe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、服務(wù)器托管、企業(yè)建站、軟件開(kāi)發(fā)、Google、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)