SQL學(xué)習(xí)之一基礎(chǔ)命令

一、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;

SQL學(xué)習(xí)之一基礎(chǔ)命令

注意:在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)

成都網(wǎng)站建設(shè)公司