資料庫基礎

Tybyq發表於2018-11-14

導讀:資料庫中常用到增刪改查,具體的應用一些小結,以MySQL為例來說明。

資料庫基礎

資料庫的管理是計算機的重要應用,資料的管理技術經歷了這幾個階段:

  1. 人工管理階段

  2. 檔案管理階段

  3. 資料庫管理階段

什麼是資料庫?

  • 資料庫是組織、儲存、管理和加工資料的倉庫

  • 資料庫是長期儲存在計算機內的、有組織的、可共享的資料集合

  • 資料庫是資料的聚合

舉例

在關係型資料庫中,由若干個資料表組成,每個資料表都有很多個行(記錄,相當於物件),每個記錄都有很多列(欄位,相當於物件的屬性),表之間可以透過關鍵欄位實現表之間的關係。透過關係,我們可以更靈活的操縱資料庫中的資料。

特點:

  1. 表中的每一列都不可再分的基本屬性

  2. 各列被指定為不同的名字

  3. 各行不允許重複

  4. 列和行次序無關

資料庫基礎

關係型資料庫系統主要有:

Access、FoxPro、SQL Server、MySQL、Oracle......

  • Access 小型資料庫,配置簡單、移植方便、但訪問率比較低,適合小型網站(如個人網站)。 

  • SQL Server 中型資料庫,執行穩定、訪問率高、速度快,但配置、移植比較複雜。 利用SQL Server 的匯入功能可以將Acess資料庫轉化為SQL Server 資料庫

  • Oracle 具有伸縮性的大型網站,訪問率高。

MySQL是開源的關係型資料庫服務軟體

官方站點:

MySQL特點:

  • 多程式、多使用者

  • 簡單易用、查詢速度快

  • 基於C/S架構

  • 安全可靠

訪問資料庫資料表中資料應用SQL(結構化查詢語句),常用的:

  • select 語句 -- 查詢資料

  • insett 語句 -- 新增記錄

  • delete/drop 語句 --刪除記錄

  • uodate 語句 --跟新記錄

1.select語句 --查詢資料

主要的實現資料庫的查詢,取得滿足指定條件的記錄集。而選出符合條件的虛擬資料表

語法:

select 欄位1名,欄位2名 ... from 表(where條件)

例如查詢符合條件的記錄,並顯示所有欄位的資料

select * from test where name='admin';

資料庫基礎

2. 選取符合條件的記錄,並只顯示指定欄位的資料

select name,password from test where name='admin'

資料庫基礎

select 語句示例:

  1. 選取符合和條件的記錄,並顯示所有欄位的資料

select * from user where tel='565645123'

2. 只選取符合條件的前n條資料

select top 1 real_name,email from user where tel = '1234567'

select real_name,email from user where tel = '1234567' limit 0, 1

(limit子句可以被用於強制SELECT語句返回指定的記錄數。limit接收一個或兩個引數,引數必須是整型,第一個引數指定第一個返回記錄行的偏移量,第二個引數指定返回記錄行的最大數目。初始化記錄行的偏移量是0不是1)

資料庫基礎

資料庫基礎

運算子:

主要有四大類:算術運算子、比較運算子、邏輯運算子、位操作運算子

資料庫基礎

where表示式運算子的使用示例:

  • 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 語句的非精確查詢:

select * from user where real_name like “%勇%”

經常應用在網頁搜尋

Select語句的查詢結果排序 :

按某一(或多個)欄位升序或降序的方式排列記錄。

語法為: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 運算子用於合併兩個或多個 SELECT 語句的結果集。請注意,UNION 內部的 SELECT語句必須擁有相同數量的列。列也必須擁有相似的資料型別。同時,每條 SELECT 語句中的列的順序必須相同。

SQL UNION 語法

select name,password from test

union

select host,address from test1;

註釋:預設地,UNION 運算子選取不同的值。如果允許重複的值,請使用 UNION ALL

資料庫基礎

2. Insert語句——新增記錄

在ASP中,我們經常會新增資料到資料庫中。這項任務可以由Insert語句實現。

語 法:

Insert Into 表(欄位1,欄位2,……)

values(欄位1的值,欄位2的值,……)

範例 : 

新增一個使用者,使用者ID為3 使用者名稱為marry 使用者密碼為 456

insert into user(id,username,password) values(3,”marry”,456)

注 意:

(1)各欄位、各欄位的值要用逗號分開,並且各欄位和其對應的欄位值在順序上要一致。

(2)如果某個欄位的值為字元型或備註型,則該欄位值兩邊要加引號;如果為日期/時間型,則該欄位值兩邊要加#號或引號;若為布林型,則該欄位的值為true或false;若為自動編號型別,則不要給該欄位賦值

(3)設計資料表時要慎重考慮欄位下面幾個屬性的設定:“default”、“必填欄位” 。

  • 如果某欄位設定了“default”值,並想在某個新加的記錄裡把該欄位設定為預設值,則該欄位值填寫Default;

  • 如果某欄位“必填欄位”設定為“是”,則在某個新加的記錄裡,該欄位必須有值或使用預設值,否則出錯。

  • 如果對欄位沒有進行特殊的設定,則可以把沒有值的欄位不出現在Insert語句中。

  • 如果該欄位是自動編號的,該欄位可以不出現在Insert語句中。

3. Delete語句——刪除記錄

可刪除表中無用的記錄來維護資料庫。

語 法:

Delete from 表 [條件]

範例:

刪除 lisi 使用者

delete from user where username='lisi';

4. Update語句——更新記錄

實現資料庫中資料的更新以維護資料庫。

語 法:

Update 資料表名 set 欄位1=欄位值1,欄位2=欄位值2,…… [where 條件]

說 明:

  1. 預設條件則修改所有記錄指定的欄位值

  2. 不預設條件則修改資料表中符合條件的記錄

示 例: 

更改使用者密碼

update user set password=555 where username='wangwu'

Mysql常用函式:

1、 select @@basedir 查詢資料庫安裝路徑

2 、select @@datadir 查詢資料庫所在目錄

3 、select version() 查詢資料庫的版本

4 、select user() 查詢當前資料庫的使用使用者

5 、select database() 當前使用資料庫的名字

資料庫基礎


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31557424/viewspace-2219999/,如需轉載,請註明出處,否則將追究法律責任。

相關文章