導(dǎo)讀:數(shù)據(jù)庫(kù)中常用到增刪改查,具體的應(yīng)用一些小結(jié),以MySQL為例來(lái)說(shuō)明。
數(shù)據(jù)庫(kù)的管理是計(jì)算機(jī)的重要應(yīng)用,數(shù)據(jù)的管理技術(shù)經(jīng)歷了這幾個(gè)階段:
人工管理階段
文件管理階段
數(shù)據(jù)庫(kù)管理階段
什么是數(shù)據(jù)庫(kù)?
數(shù)據(jù)庫(kù)是組織、存儲(chǔ)、管理和加工數(shù)據(jù)的倉(cāng)庫(kù)
數(shù)據(jù)庫(kù)是長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)的、有組織的、可共享的數(shù)據(jù)集合
數(shù)據(jù)庫(kù)是數(shù)據(jù)的聚合
舉例
在關(guān)系型數(shù)據(jù)庫(kù)中,由若干個(gè)數(shù)據(jù)表組成,每個(gè)數(shù)據(jù)表都有很多個(gè)行(記錄,相當(dāng)于對(duì)象),每個(gè)記錄都有很多列(字段,相當(dāng)于對(duì)象的屬性),表之間可以通過(guò)關(guān)鍵字段實(shí)現(xiàn)表之間的關(guān)系。通過(guò)關(guān)系,我們可以更靈活的操縱數(shù)據(jù)庫(kù)中的數(shù)據(jù)。
特點(diǎn):
表中的每一列都不可再分的基本屬性
各列被指定為不同的名字
各行不允許重復(fù)
列和行次序無(wú)關(guān)
關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)主要有:
Access、FoxPro、SQL Server、MySQL、Oracle......
Access 小型數(shù)據(jù)庫(kù),配置簡(jiǎn)單、移植方便、但訪問(wèn)率比較低,適合小型網(wǎng)站(如個(gè)人網(wǎng)站)。
SQL Server 中型數(shù)據(jù)庫(kù),運(yùn)行穩(wěn)定、訪問(wèn)率高、速度快,但配置、移植比較復(fù)雜。 利用SQL Server 的導(dǎo)入功能可以將Acess數(shù)據(jù)庫(kù)轉(zhuǎn)化為SQL Server 數(shù)據(jù)庫(kù)
Oracle 具有伸縮性的大型網(wǎng)站,訪問(wèn)率高。
MySQL是開(kāi)源的關(guān)系型數(shù)據(jù)庫(kù)服務(wù)軟件
官方站點(diǎn):http://www.mysql.com
MySQL特點(diǎn):
多進(jìn)程、多用戶
簡(jiǎn)單易用、查詢速度快
基于C/S架構(gòu)
安全可靠
訪問(wèn)數(shù)據(jù)庫(kù)數(shù)據(jù)表中數(shù)據(jù)應(yīng)用SQL(結(jié)構(gòu)化查詢語(yǔ)句),常用的:
select 語(yǔ)句 -- 查詢數(shù)據(jù)
insett 語(yǔ)句 -- 添加記錄
delete/drop 語(yǔ)句 --刪除記錄
uodate 語(yǔ)句 --跟新記錄
主要的實(shí)現(xiàn)數(shù)據(jù)庫(kù)的查詢,取得滿足指定條件的記錄集。而選出符合條件的虛擬數(shù)據(jù)表
語(yǔ)法:
select 字段1名,字段2名 ... from 表(where條件)
例如查詢符合條件的記錄,并顯示所有字段的數(shù)據(jù)
select * from test where name='admin';
2. 選取符合條件的記錄,并只顯示指定字段的數(shù)據(jù)
select name,password from test where name='admin'
select 語(yǔ)句示例:
選取符合和條件的記錄,并顯示所有字段的數(shù)據(jù)
select * from user where tel='565645123'
2. 只選取符合條件的前n條數(shù)據(jù)
select top 1 real_name,email from user where tel = '1234567'
select real_name,email from user where tel = '1234567' limit 0, 1
(limit子句可以被用于強(qiáng)制SELECT語(yǔ)句返回指定的記錄數(shù)。limit接收一個(gè)或兩個(gè)參數(shù),參數(shù)必須是整型,第一個(gè)參數(shù)指定第一個(gè)返回記錄行的偏移量,第二個(gè)參數(shù)指定返回記錄行的最大數(shù)目。初始化記錄行的偏移量是0不是1)
運(yùn)算符:
主要有四大類:算術(shù)運(yùn)算符、比較運(yùn)算符、邏輯運(yùn)算符、位操作運(yùn)算符
where表達(dá)式運(yùn)算符的使用示例:
select name,password from test where password>'123';
select name,password from test where password<'123456';
select name,password from test WHERE id>= 2;
select name,password from test where password>='123';
select name,password from test where id between 2 and 5;
select name,password from test where id not between 2 and 5;
select name,password from test where id in('1','3');
select name,password from test where id not in('1','3');
select name,password from test where name is null/not null;
select * from test where name='admin' and password='123';
select * from test where name='admin' or password='123';
select * from test where name is null or name='admin' and password='123';
select name,password from test where password like '%123%';
select 語(yǔ)句的非精確查詢:
select * from user where real_name like “%勇%”
經(jīng)常應(yīng)用在網(wǎng)頁(yè)搜索
Select語(yǔ)句的查詢結(jié)果排序 :
按某一(或多個(gè))字段升序或降序的方式排列記錄。
語(yǔ)法為:Order By 字段1 ASC 或者
Order By 字段1 DESC
舉例:
select * from user order by id DESC //DESC 降序查詢
select * from user order by id ASC //ASC 升序查詢
UNION 操作符用于合并兩個(gè)或多個(gè) SELECT 語(yǔ)句的結(jié)果集。請(qǐng)注意,UNION 內(nèi)部的 SELECT語(yǔ)句必須擁有相同數(shù)量的列。列也必須擁有相似的數(shù)據(jù)類型。同時(shí),每條 SELECT 語(yǔ)句中的列的順序必須相同。
SQL UNION 語(yǔ)法
select name,password from test
union
select host,address from test1;
注釋:默認(rèn)地,UNION 操作符選取不同的值。如果允許重復(fù)的值,請(qǐng)使用 UNION ALL
在ASP中,我們經(jīng)常會(huì)添加數(shù)據(jù)到數(shù)據(jù)庫(kù)中。這項(xiàng)任務(wù)可以由Insert語(yǔ)句實(shí)現(xiàn)。
語(yǔ) 法:
Insert Into 表(字段1,字段2,……)
values(字段1的值,字段2的值,……)
范例:
添加一個(gè)用戶,用戶ID為3 用戶名為marry 用戶密碼為 456
insert into user(id,username,password) values(3,”marry”,456)
注 意:
(1)各字段、各字段的值要用逗號(hào)分開(kāi),并且各字段和其對(duì)應(yīng)的字段值在順序上要一致。
(2)如果某個(gè)字段的值為字符型或備注型,則該字段值兩邊要加引號(hào);如果為日期/時(shí)間型,則該字段值兩邊要加#號(hào)或引號(hào);若為布爾型,則該字段的值為true或false;若為自動(dòng)編號(hào)類型,則不要給該字段賦值
(3)設(shè)計(jì)數(shù)據(jù)表時(shí)要慎重考慮字段下面幾個(gè)屬性的設(shè)置:“default”、“必填字段” 。
如果某字段設(shè)置了“default”值,并想在某個(gè)新加的記錄里把該字段設(shè)置為默認(rèn)值,則該字段值填寫(xiě)Default;
如果某字段“必填字段”設(shè)置為“是”,則在某個(gè)新加的記錄里,該字段必須有值或使用默認(rèn)值,否則出錯(cuò)。
如果對(duì)字段沒(méi)有進(jìn)行特殊的設(shè)置,則可以把沒(méi)有值的字段不出現(xiàn)在Insert語(yǔ)句中。
如果該字段是自動(dòng)編號(hào)的,該字段可以不出現(xiàn)在Insert語(yǔ)句中。
可刪除表中無(wú)用的記錄來(lái)維護(hù)數(shù)據(jù)庫(kù)。
語(yǔ) 法:
Delete from 表 [條件]
范例:
刪除 lisi 用戶
delete from user where username='lisi';
實(shí)現(xiàn)數(shù)據(jù)庫(kù)中數(shù)據(jù)的更新以維護(hù)數(shù)據(jù)庫(kù)。
語(yǔ) 法:
Update 數(shù)據(jù)表名 set 字段1=字段值1,字段2=字段值2,…… [where 條件]
說(shuō) 明:
缺省條件則修改所有記錄指定的字段值
不缺省條件則修改數(shù)據(jù)表中符合條件的記錄
示 例:
更改用戶密碼
update user set password=555 where username='wangwu'
Mysql常用函數(shù):
1、 select @@basedir 查詢數(shù)據(jù)庫(kù)安裝路徑
2 、select @@datadir 查詢數(shù)據(jù)庫(kù)所在目錄
3 、select version() 查詢數(shù)據(jù)庫(kù)的版本
4 、select user() 查詢當(dāng)前數(shù)據(jù)庫(kù)的使用用戶
5 、select database() 當(dāng)前使用數(shù)據(jù)庫(kù)的名字
聯(lián)系客服