麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 數(shù)據(jù)庫(kù) > MySQL > 正文

MySQL SQL 語(yǔ)法參考

2020-01-19 00:27:01
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
一、資料定義 ddl(data definition language) 
資料定語(yǔ)言是指對(duì)資料的格式和形態(tài)下定義的語(yǔ)言,他是每個(gè)資料庫(kù)要建立時(shí)候時(shí)首先要面對(duì)的,舉凡資料分哪些表格關(guān)系、表格內(nèi)的有什麼欄位主鍵、表格和表格之間互相參考的關(guān)系等等,都是在開(kāi)始的時(shí)候所必須規(guī)劃好的。 

1、建表格: 
create table table_name( 
column1 datatype [not null] [not null primary key], 
column2 datatype [not null], 
...);
說(shuō)明:  
datatype --是資料的格式,詳見(jiàn)表。 
nut null --可不可以允許資料有空的(尚未有資料填入)。 
primary key --是本表的主鍵。 

2、更改表格  
alter table table_name 
add column column_name datatype 
說(shuō)明:增加一個(gè)欄位(沒(méi)有刪除某個(gè)欄位的語(yǔ)法。 
alter table table_name 
add primary key (column_name) 
說(shuō)明:更改表得的定義把某個(gè)欄位設(shè)為主鍵。 
alter table table_name 
drop primary key (column_name) 
說(shuō)明:把主鍵的定義刪除。 

3、建立索引  
create index index_name on table_name (column_name) 
說(shuō)明:對(duì)某個(gè)表格的欄位建立索引以增加查詢時(shí)的速度。 

4、刪除  
drop table_name 
drop index_name 

二、的資料形態(tài) datatypes 
smallint 
16 位元的整數(shù)。 
interger 
32 位元的整數(shù)。 
decimal(p,s) 
p 精確值和 s 大小的十進(jìn)位整數(shù),精確值p是指全部有幾個(gè)數(shù)(digits)大小值,s是指小數(shù) 
點(diǎn)後有幾位數(shù)。如果沒(méi)有特別指定,則系統(tǒng)會(huì)設(shè)為 p=5; s=0 。 
float 
32位元的實(shí)數(shù)。 
double 
64位元的實(shí)數(shù)。 
char(n) 
n 長(zhǎng)度的字串,n不能超過(guò) 254。 
varchar(n) 
長(zhǎng)度不固定且其最大長(zhǎng)度為 n 的字串,n不能超過(guò) 4000。 
graphic(n) 
和 char(n) 一樣,不過(guò)其單位是兩個(gè)字元 double-bytes, n不能超過(guò)127。這個(gè)形態(tài)是為 
了支援兩個(gè)字元長(zhǎng)度的字體,例如中文字。 
vargraphic(n) 
可變長(zhǎng)度且其最大長(zhǎng)度為 n 的雙字元字串,n不能超過(guò) 2000。 
date 
包含了 年份、月份、日期。 
time 
包含了 小時(shí)、分鐘、秒。 
timestamp 
包含了 年、月、日、時(shí)、分、秒、千分之一秒。 

三、資料操作 dml (data manipulation language) 
資料定義好之後接下來(lái)的就是資料的操作。資料的操作不外乎增加資料(insert)、查詢資料(query)、更改資料(update) 、刪除資料(delete)四種模式,以下分 別介紹他們的語(yǔ)法: 

1、增加資料: 
insert into table_name (column1,column2,...) 
values ( value1,value2, ...) 
說(shuō)明: 
1.若沒(méi)有指定column 系統(tǒng)則會(huì)按表格內(nèi)的欄位順序填入資料。 
2.欄位的資料形態(tài)和所填入的資料必須吻合。 
3.table_name 也可以是景觀 view_name。 

insert into table_name (column1,column2,...) 
select columnx,columny,... from another_table 
說(shuō)明:也可以經(jīng)過(guò)一個(gè)子查詢(subquery)把別的表格的資料填入。 

2、查詢資料: 
基本查詢 
select column1,columns2,... 
from table_name 
說(shuō)明:把table_name 的特定欄位資料全部列出來(lái) 
select * 
from table_name 
where column1 = xxx 
[and column2 > yyy] [or column3 <> zzz] 
說(shuō)明: 
1.'*'表示全部的欄位都列出來(lái)。 
2.where 之後是接條件式,把符合條件的資料列出來(lái)。 

select column1,column2 
from table_name 
order by column2 [desc] 
說(shuō)明:order by 是指定以某個(gè)欄位做排序,[desc]是指從大到小排列,若沒(méi)有指明,則是從小到大 
排列 

組合查詢 
組合查詢是指所查詢得資料來(lái)源并不只有單一的表格,而是聯(lián)合一個(gè)以上的 
表格才能夠得到結(jié)果的。 
select * 
from table1,table2 
where table1.colum1=table2.column1 
說(shuō)明: 
1.查詢兩個(gè)表格中其中 column1 值相同的資料。 
2.當(dāng)然兩個(gè)表格相互比較的欄位,其資料形態(tài)必須相同。 
3.一個(gè)復(fù)雜的查詢其動(dòng)用到的表格可能會(huì)很多個(gè)。 

整合性的查詢: 
select count (*) 
from table_name 
where column_name = xxx 
說(shuō)明: 
查詢符合條件的資料共有幾筆。 
select sum(column1) 
from table_name 
說(shuō)明: 
1.計(jì)算出總和,所選的欄位必須是可數(shù)的數(shù)字形態(tài)。 
2.除此以外還有 avg() 是計(jì)算平均、max()、min()計(jì)算最大最小值的整合性查詢。 
select column1,avg(column2) 
from table_name 
group by column1 
having avg(column2) > xxx 
說(shuō)明: 
1.group by: 以column1 為一組計(jì)算 column2 的平均值必須和 avg、sum等整合性查詢的關(guān)鍵字 
一起使用。 
2.having : 必須和 group by 一起使用作為整合性的限制。 

復(fù)合性的查詢 
select * 
from table_name1 
where exists ( 
select * 
from table_name2 
where conditions ) 
說(shuō)明: 
1.where 的 conditions 可以是另外一個(gè)的 query。 
2.exists 在此是指存在與否。 
select * 
from table_name1 
where column1 in ( 
select column1 
from table_name2 
where conditions ) 
說(shuō)明:  
1. in 後面接的是一個(gè)集合,表示column1 存在集合里面。 
2. select 出來(lái)的資料形態(tài)必須符合 column1。 

其他查詢 
select * 
from table_name1 
where column1 like 'x%' 
說(shuō)明:like 必須和後面的'x%' 相呼應(yīng)表示以 x為開(kāi)頭的字串。 
select * 
from table_name1 
where column1 in ('xxx','yyy',..) 
說(shuō)明:in 後面接的是一個(gè)集合,表示column1 存在集合里面。 
select * 
from table_name1 
where column1 between xx and yy 
說(shuō)明:between 表示 column1 的值介於 xx 和 yy 之間。 

3、更改資料: 
update table_name 
set column1='xxx' 
where conditoins 
說(shuō)明: 
1.更改某個(gè)欄位設(shè)定其值為'xxx'。 
2.conditions 是所要符合的條件、若沒(méi)有 where 則整個(gè) table 的那個(gè)欄位都會(huì)全部被更改。 

4、刪除資料: 
delete from table_name 
where conditions 
說(shuō)明:刪除符合條件的資料。 

說(shuō)明:關(guān)于where條件后面如果包含有日期的比較,不同數(shù)據(jù)庫(kù)有不同的表達(dá)式。具體如下: 
(1)如果是access數(shù)據(jù)庫(kù),則為:where mydate>#2000-01-01# 
(2)如果是oracle數(shù)據(jù)庫(kù),則為:where mydate>cast('2000-01-01' as date) 
或:where mydate>to_date('2000-01-01','yyyy-mm-dd') 
在delphi中寫成: 
thedate='2000-01-01'; 
query1.sql.add('select * from abc where mydate>cast('+''''+thedate+''''+' as date)'); 

如果比較日期時(shí)間型,則為: 
where mydatetime>to_date('2000-01-01 10:00:01','yyyy-mm-dd hh24:mi:ss');
上一篇:SQL 優(yōu)化

下一篇:MySQL 管理

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 中国性xxx| 中国洗澡偷拍在线播放 | 激情亚洲一区二区三区 | 成人福利电影在线观看 | 99麻豆久久久国产精品免费 | 7777久久香蕉成人影院 | 久久国产综合视频 | 国产高潮国产高潮久久久91 | 国产精品69久久 | 国产精品成年片在线观看, 激情小说另类 | 久久精品一区二区三 | 大片毛片| 色婷婷久久久 | 亚洲精品一区二区三区在线看 | 九色成人在线 | 久久不射电影网 | 久草干| 在线观看免费毛片视频 | 国产精品一区二区三区在线播放 | 偷偷操偷偷操 | 国产乱乱视频 | 一区二区精品视频在线观看 | 国产在线区 | 欧美日韩亚洲不卡 | 亚洲3atv精品一区二区三区 | 中文字幕伦乱 | 亚洲第一男人天堂 | 黄色免费高清网站 | 久久久婷婷一区二区三区不卡 | 国产精品久久久久久久久久久久午夜 | 久精品国产 | 久久综合一区二区 | 91在线视频精品 | 精品国产91久久久久久 | 欧美一级黑人 | 亚洲国产网址 | 免费在线观看毛片视频 | 精品国产一区二区三区四区在线 | 国产女厕一区二区三区在线视 | 欧美一级黄色片在线观看 | 精国产品一区二区三区四季综 |