MariaDB數(shù)據(jù)庫的外鍵約束實(shí)例代碼介紹詳解
文章主要給大家介紹了關(guān)于MariaDB數(shù)據(jù)庫的外鍵約束的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧...
文章主要給大家介紹了關(guān)于MariaDB數(shù)據(jù)庫的外鍵約束的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
外鍵
外鍵的用途是確保數(shù)據(jù)的完整性。它通常包括以下幾種:
1 實(shí)體完整性,確保每個(gè)實(shí)體是唯一的(通過主鍵來實(shí)施)
2 域完整性,確保屬性值只從一套特定可選的集合里選擇
3 關(guān)聯(lián)完整性,確保每個(gè)外鍵或是NULL(如果允許的話)或含有與相關(guān)主鍵值相配的值
1.什么是外鍵約束
與主鍵約束不同,創(chuàng)建外鍵約束不會(huì)自動(dòng)創(chuàng)建對應(yīng)的索引。 但是由于以下原因,對外鍵手動(dòng)創(chuàng)建索引通常是有用的:
當(dāng)在查詢中組合相關(guān)表中的數(shù)據(jù)時(shí),經(jīng)常在聯(lián)接條件中使用外鍵列,方法是將一個(gè)表的外鍵約束中的一列或多列與另一個(gè)表中的主鍵列或唯一鍵列匹配。 索引使 數(shù)據(jù)庫引擎 可以在外鍵表中快速查找相關(guān)數(shù)據(jù)。 但是,創(chuàng)建此索引并不是必需的。 即使沒有對兩個(gè)相關(guān)表定義主鍵或外鍵約束,也可以對來自這兩個(gè)表中的數(shù)據(jù)進(jìn)行組合,但兩個(gè)表間的外鍵關(guān)系說明已用其鍵作為條件對其進(jìn)行了優(yōu)化,以便組合到查詢中。
對主鍵約束的更改可由相關(guān)表中的外鍵約束檢查。
外鍵約束(foreign key)就是表與表之間的某種約定的關(guān)系,由于這種關(guān)系的存在,我們能夠讓表與表之間的數(shù)據(jù),更加的完整,關(guān)連性更強(qiáng)。
關(guān)于數(shù)據(jù)表的完整性和關(guān)連性,可以舉個(gè)例子
有二張表,一張是用戶表,一張是訂單表:
1.如果我刪除了用戶表里的用戶,那么訂單表里面跟這個(gè)用戶有關(guān)的數(shù)據(jù),就成了無頭數(shù)據(jù)了,不完整了。
2.如果我在訂單表里面,隨便插入了一條數(shù)據(jù),這個(gè)訂單在用戶表里面,沒有與之對應(yīng)的用戶。這樣數(shù)據(jù)也不完整了。
如果有外鍵的話,就方便多了,可以不讓用戶刪除數(shù)據(jù),或者刪除用戶的話,通過外鍵同樣刪除訂單表里面的數(shù)據(jù),這樣也能讓數(shù)據(jù)完整。
通過外鍵約束,每次插入或更新數(shù)據(jù)表時(shí),都會(huì)檢查數(shù)據(jù)的完整性。
2.創(chuàng)建外鍵約束
2.1 方法一:通過create table創(chuàng)建外鍵
語法:
create
table
數(shù)據(jù)表名稱(
...,
[
CONSTRAINT
[約束名稱]]
FOREIGN
KEY
[外鍵字段]
REFERENCES
[外鍵表名](外鍵字段,外鍵字段2…..)
[
ON
DELETE
CASCADE
]
[
ON
UPDATE
CASCADE
]
)
參數(shù)的解釋:
RESTRICT: 拒絕對父表的刪除或更新操作。
CASCADE: 從父表刪除或更新且自動(dòng)刪除或更新子表中匹配的行。ON DELETE CASCADE和ON UPDATE CASCADE都可用
注意:on update cascade是級聯(lián)更新的意思,on delete cascade是級聯(lián)刪除的意思,意思就是說當(dāng)你更新或刪除主鍵表,那外鍵表也會(huì)跟隨一起更新或刪除。
精簡化后的語法:
foreign
key
當(dāng)前表的字段
references
外部表名 (關(guān)聯(lián)的字段) type=innodb
2.1.1 插入測試數(shù)據(jù)
例子:我們創(chuàng)建一個(gè)數(shù)據(jù)庫,包含用戶信息表和訂單表
MariaDB [book]>
create
database
market; # 創(chuàng)建market數(shù)據(jù)庫
Query OK, 1 row affected (0.00 sec)
MariaDB [book]> use market; # 使用market數(shù)據(jù)庫
Database
changed
MariaDB [market]>
create
table
userprofile(id
int
(11)
not
null
auto_increment,
name
varchar
(50)
not
null
default
''
, sex
int
(1)
not
null
default
'0'
,
primary
key
(id))ENGINE=innodb; # 創(chuàng)建userprofile數(shù)據(jù)表,指定使用innodb引擎
Query OK, 0
rows
affected (0.07 sec)
MariaDB [market]>
create
table
user_order(o_id
int
(11) auto_increment, u_id
int
(11)
default
'0'
, username
varchar
(50), money
int
(11),
primary
key
(o_id),
index
(u_id),
foreign
key
order_f_key(u_id)
references
userprofile(id)
on
delete
cascade
on
update
cascade
); # 創(chuàng)建user_order數(shù)據(jù)表,同時(shí)為user_order表的u_id字段做外鍵約束,綁定userprofile表的id字段
Query OK, 0
rows
affected (0.04 sec)
MariaDB [market]>
insert
into
userprofile(
name
,sex)
values
(
'HA'
,1),(
'LB'
,2),(
'HPC'
,1); # 向userprofile數(shù)據(jù)表插入三條記錄
Query OK, 3
rows
affected (0.01 sec)
Records: 3 Duplicates: 0 Warnings: 0
MariaDB [market]>
select
*
from
userprofile; # 查詢userprofile數(shù)據(jù)表的所有記錄
+
----+------+-----+
| id |
name
| sex |
+
----+------+-----+
| 1 | HA | 1 |
| 2 | LB | 2 |
| 3 | HPC | 1 |
+
----+------+-----+
3
rows
in
set
(0.00 sec)
MariaDB [market]>
insert
into
user_order(u_id,username,money)
values
(1,
'HA'
,234),(2,
'LB'
,146),(3,
'HPC'
,256); # 向user_order數(shù)據(jù)表插入三條記錄
Query OK, 3
rows
affected (0.02 sec)
Records: 3 Duplicates: 0 Warnings: 0
MariaDB [market]>
select
*
from
user_order; # 查詢user_order數(shù)據(jù)表的所有記錄
+
------+------+----------+-------+
| o_id | u_id | username | money |
+
------+------+----------+-------+
| 1 | 1 | HA | 234 |
| 2 | 2 | LB | 146 |
| 3 | 3 | HPC | 256 |
+
------+------+----------+-------+
3
rows
in
set
(0.00 sec)
MariaDB [market]>
select
id,
name
,sex,money,o_id
from
userprofile,user_order
where
id=u_id; # 聯(lián)表查詢
+
----+------+-----+-------+------+
| id |
name
| sex | money | o_id |
+
----+------+-----+-------+------+
| 1 | HA | 1 | 234 | 1 |
| 2 | LB | 2 | 146 | 2 |
| 3 | HPC | 1 | 256 | 3 |
+
----+------+-----+-------+------+
3
rows
in
set
(0.03 sec)
2.1.2 測試級聯(lián)刪除
MariaDB [market]>
delete
from
userprofile
where
id=1; # 刪除
user
表中id為1的數(shù)據(jù)
Query OK, 1 row affected (0.01 sec)
MariaDB [market]>
select
id,
name
,sex,money,o_id
from
userprofile,user_order
where
id=u_id;
+
----+------+-----+-------+------+
| id |
name
| sex | money | o_id |
+
----+------+-----+-------+------+
| 2 | LB | 2 | 146 | 2 |
| 3 | HPC | 1 | 256 | 3 |
+
----+------+-----+-------+------+
2
rows
in
set
(0.00 sec)
MariaDB [market]>
select
*
from
user_order; # 查看
order
表的數(shù)據(jù)
+
------+------+----------+-------+
| o_id | u_id | username | money |
+
------+------+----------+-------+
| 2 | 2 | LB | 146 |
| 3 | 3 | HPC | 256 |
+
------+------+----------+-------+
3
rows
in
set
(0.00 sec)
2.1.3 測試級聯(lián)更新
更新數(shù)據(jù)之前的狀態(tài)
MariaDB [market]>
select
*
from
userprofile; # 查看userprofile表的數(shù)據(jù)
+
----+------+-----+
| id |
name
| sex |
+
----+------+-----+
| 2 | LB | 2 |
| 3 | HPC | 1 |
+
----+------+-----+
3
rows
in
set
(0.00 sec)
MariaDB [market]>
select
*
from
user_order; # 查看
order
表的數(shù)據(jù)
+
------+------+----------+-------+
| o_id | u_id | username | money |
+
------+------+----------+-------+
| 2 | 2 | LB | 146 |
| 3 | 3 | HPC | 256 |
+
------+------+----------+-------+
3
rows
in
set
(0.00 sec)
更新數(shù)據(jù)?
MariaDB [market]>
update
userprofile
set
id=6
where
id=2; # 把userprofile數(shù)據(jù)表中id為2的用戶改為id為6
Query OK, 1 row affected (0.02 sec)
Rows
matched: 1 Changed: 1 Warnings: 0
更新數(shù)據(jù)后的狀態(tài)?
MariaDB [market]>
select
id,
name
,sex,money,o_id
from
userprofile,user_order
where
id=u_id; # 聯(lián)表查詢,可以看出表中已經(jīng)沒有id為2的用戶了
+
----+------+-----+-------+------+
| id |
name
| sex | money | o_id |
+
----+------+-----+-------+------+
| 6 | LB | 2 | 146 | 2 |
| 3 | HPC | 1 | 256 | 3 |
+
----+------+-----+-------+------+
2
rows
in
set
(0.00 sec)
MariaDB [market]>
select
*
from
userprofile; # 查看userprofile表的數(shù)據(jù),id只剩下3和6
+
----+------+-----+
| id |
name
| sex |
+
----+------+-----+
| 3 | HPC | 1 |
| 6 | LB | 2 |
+
----+------+-----+
2
rows
in
set
(0.00 sec)
MariaDB [market]>
select
*
from
user_order; # 查看user_order表的數(shù)據(jù),u_id也改為6
+
------+------+----------+-------+
| o_id | u_id | username | money |
+
------+------+----------+-------+
| 2 | 6 | LB | 146 |
| 3 | 3 | HPC | 256 |
+
------+------+----------+-------+
2
rows
in
set
(0.00 sec)
2.1.4 測試數(shù)據(jù)完整性
MariaDB [market]>
insert
into
user_order(u_id,username,money)
values
(5,
"XJ"
,345); # 單獨(dú)向user_order數(shù)據(jù)表中插入數(shù)據(jù),插入數(shù)據(jù)失敗
ERROR 1452 (23000): Cannot
add
or
update
a child row: a
foreign
key
constraint
fails (`market`.`user_order`,
CONSTRAINT
`user_order_ibfk_1`
FOREIGN
KEY
(`u_id`)
REFERENCES
`userprofile` (`id`)
ON
DELETE
CASCADE
ON
UPDATE
CASCADE
)
在上面的例子中,user_order表的外鍵約束,user_order表受userprofile表的約束
在user_order里面插入一條數(shù)據(jù)u_id為5用戶,在userprofile表里面根本沒有,所以插入數(shù)據(jù)失敗
先向userprofile表中插入記錄,再向user_order表中插入記錄就可以了
MariaDB [market]>
insert
into
userprofile
values
(5,
"XJ"
,1); # 先向userprofile數(shù)據(jù)表中插入id為5的記錄,插入數(shù)據(jù)成功
Query OK, 1 row affected (0.01 sec)
MariaDB [market]>
insert
into
user_order(u_id,username,money)
values
(5,
"XJ"
,345); # 再向user_order數(shù)據(jù)表中插入數(shù)據(jù),成功
Query OK, 1 row affected (0.00 sec)
MariaDB [market]>
select
*
from
userprofile; # 查詢userprofile數(shù)據(jù)表中的所有記錄
+
----+------+-----+
| id |
name
| sex |
+
----+------+-----+
| 3 | HPC | 1 |
| 5 | XJ | 1 |
| 6 | LB | 2 |
+
----+------+-----+
3
rows
in
set
(0.00 sec)
MariaDB [market]>
select
*
from
user_order; # 查詢user_order數(shù)據(jù)表中的所有記錄
+
------+------+----------+-------+
| o_id | u_id | username | money |
+
------+------+----------+-------+
| 2 | 6 | LB | 146 |
| 3 | 3 | HPC | 256 |
| 5 | 5 | XJ | 345 |
+
------+------+----------+-------+
3
rows
in
set
(0.01 sec)
2.2 方法二:通過alter table創(chuàng)建外鍵和級聯(lián)更新,級聯(lián)刪除
語法:
alter
table
數(shù)據(jù)表名稱
add
[
constraint
[約束名稱] ]
foreign
key
(外鍵字段,..)
references
數(shù)據(jù)表(參照字段,...)
[
on
update
cascade
|
set
null
|
no
action
]
[
on
delete
cascade
|
set
null
|
no
action
]
)
例子:
MariaDB [market]>
create
table
user_order1(o_id
int
(11) auto_increment,u_id
int
(11)
default
"0"
,username
varchar
(50),money
int
(11),
primary
key
(o_id),
index
(u_id)); # 創(chuàng)建user_order1數(shù)據(jù)表,創(chuàng)建表時(shí)不使用外鍵約束
Query OK, 0
rows
affected (0.11 sec)
MariaDB [market]> show
create
table
user_order1; # 查看user_order1數(shù)據(jù)表的創(chuàng)建信息,沒有外鍵約束
+
-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
Table
|
Create
Table
|
+
-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| user_order1 |
CREATE
TABLE
`user_order1` (
`o_id`
int
(11)
NOT
NULL
AUTO_INCREMENT,
`u_id`
int
(11)
DEFAULT
'0'
,
`username`
varchar
(50)
COLLATE
utf8_unicode_ci
DEFAULT
NULL
,
`money`
int
(11)
DEFAULT
NULL
,
PRIMARY
KEY
(`o_id`),
KEY
`u_id` (`u_id`)
) ENGINE=InnoDB
DEFAULT
CHARSET=utf8
COLLATE
=utf8_unicode_ci |
+
-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row
in
set
(0.01 sec)
MariaDB [market]>
alter
table
user_order1
add
foreign
key
(u_id)
references
userprofile(id)
on
delete
cascade
on
update
cascade
; # 使用
alter
修改user_order1數(shù)據(jù)表,為user_order1數(shù)據(jù)表添加外鍵約束
Query OK, 0
rows
affected (0.05 sec)
Records: 0 Duplicates: 0 Warnings: 0
MariaDB [market]> show
create
table
user_order1; # 查看user_order1數(shù)據(jù)表的創(chuàng)建信息,已經(jīng)添加了外鍵約束
+
-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
Table
|
Create
Table
|
+
-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| user_order1 |
CREATE
TABLE
`user_order1` (
`o_id`
int
(11)
NOT
NULL
AUTO_INCREMENT,
`u_id`
int
(11)
DEFAULT
'0'
,
`username`
varchar
(50)
COLLATE
utf8_unicode_ci
DEFAULT
NULL
,
`money`
int
(11)
DEFAULT
NULL
,
PRIMARY
KEY
(`o_id`),
KEY
`u_id` (`u_id`),
CONSTRAINT
`user_order1_ibfk_1`
FOREIGN
KEY
(`u_id`)
REFERENCES
`userprofile` (`id`)
ON
DELETE
CASCADE
ON
UPDATE
CASCADE
) ENGINE=InnoDB
DEFAULT
CHARSET=utf8
COLLATE
=utf8_unicode_ci |
+
-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row
in
set
(0.00 sec)
3.刪除外鍵
語法
alter
table
數(shù)據(jù)表名稱
drop
foreign
key
約束(外鍵)名稱
例子:
MariaDB [market]> show
create
table
user_order1; # 查看user_order1數(shù)據(jù)表的創(chuàng)建信息,包含外鍵約束
+
-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
Table
|
Create
Table
|
+
-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| user_order1 |
CREATE
TABLE
`user_order1` (
`o_id`
int
(11)
NOT
NULL
AUTO_INCREMENT,
`u_id`
int
(11)
DEFAULT
'0'
,
`username`
varchar
(50)
COLLATE
utf8_unicode_ci
DEFAULT
NULL
,
`money`
int
(11)
DEFAULT
NULL
,
PRIMARY
KEY
(`o_id`),
KEY
`u_id` (`u_id`),
CONSTRAINT
`user_order1_ibfk_1`
FOREIGN
KEY
(`u_id`)
REFERENCES
`userprofile` (`id`)
ON
DELETE
CASCADE
ON
UPDATE
CASCADE
) ENGINE=InnoDB
DEFAULT
CHARSET=utf8
COLLATE
=utf8_unicode_ci |
+
-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row
in
set
(0.00 sec)
MariaDB [market]>
alter
table
user_order1
drop
foreign
key
user_order1_ibfk_1; # 為user_order1數(shù)據(jù)表刪除外鍵約束,外鍵名稱必須與從`show
create
table
user_order1`語句中查到的相同
Query OK, 0
rows
affected (0.05 sec)
Records: 0 Duplicates: 0 Warnings: 0
MariaDB [market]> show
create
table
user_order1; # 查看user_order1數(shù)據(jù)表的創(chuàng)建信息,外鍵約束已經(jīng)被刪除了
+
-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
Table
|
Create
Table
|
+
-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| user_order1 |
CREATE
TABLE
`user_order1` (
`o_id`
int
(11)
NOT
NULL
AUTO_INCREMENT,
`u_id`
int
(11)
DEFAULT
'0'
,
`username`
varchar
(50)
COLLATE
utf8_unicode_ci
DEFAULT
NULL
,
`money`
int
(11)
DEFAULT
NULL
,
PRIMARY
KEY
(`o_id`),
KEY
`u_id` (`u_id`)
) ENGINE=InnoDB
DEFAULT
CHARSET=utf8
COLLATE
=utf8_unicode_ci |
+
-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row
in
set
(0.00 sec)
4.使用外鍵約束的條件
要想外鍵創(chuàng)建成功,必須滿足以下4個(gè)條件:
1、確保參照的表和字段存在。
2、組成外鍵的字段被索引。
3、必須使用type指定存儲(chǔ)引擎為:innodb.
4、外鍵字段和關(guān)聯(lián)字段,數(shù)據(jù)類型必須一致。
5.使用外鍵約束需要的注意事項(xiàng)
1.on delete cascade on update cascade 添加級聯(lián)刪除和更新:
2.確保參照的表userprofile中id字段存在。
3.確保組成外鍵的字段u_id被索引
4.必須使用type指定存儲(chǔ)引擎為:innodb。
5.外鍵字段和關(guān)聯(lián)字段,數(shù)據(jù)類型必須一致。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值。
- Windows10系統(tǒng)下MariaDB數(shù)據(jù)庫安裝教程圖解
- Mysql數(shù)據(jù)庫大表優(yōu)化方案和Mysql大表優(yōu)化步驟
- Mysql數(shù)據(jù)庫創(chuàng)建存儲(chǔ)過程實(shí)現(xiàn)往數(shù)據(jù)表中新增字段的方
- Mysql數(shù)據(jù)庫自定義函數(shù)的定義、使用方法及操作注意事
- Mysql數(shù)據(jù)庫的max_allowed_packet設(shè)定方法
- Mysql數(shù)據(jù)庫亂碼出現(xiàn)的各個(gè)階段以及對應(yīng)方法
- MySQL數(shù)據(jù)庫的事務(wù)處理用法與實(shí)例代碼詳解
- Mysql數(shù)據(jù)庫使用from與join兩表查詢的方法區(qū)別總結(jié)
- Sql Server數(shù)據(jù)庫類似正則表達(dá)式的字符處理問題
- SQL Server數(shù)據(jù)庫中表和索引結(jié)構(gòu)存儲(chǔ)的原理及如何加快
Windows10系統(tǒng)下MariaDB數(shù)據(jù)庫安裝教程圖解
文章給大家介紹Windows10系統(tǒng)下安裝MariaDB 的教程圖解,感興趣的朋友一起看看吧,MariaDB由MySQL的創(chuàng)始人麥克爾·維德紐斯主導(dǎo)開發(fā),...
Mysql數(shù)據(jù)庫大表優(yōu)化方案和Mysql大表優(yōu)化步驟
當(dāng)MySQL單表記錄數(shù)過大時(shí),增刪改查性能都會(huì)急劇下降,可以參考以下步驟來優(yōu)化。單表優(yōu)化 除非單表數(shù)據(jù)未來會(huì)一直不斷上漲,否則不要一開始就考慮拆分,拆分會(huì)帶來邏輯、部...
Mysql數(shù)據(jù)庫創(chuàng)建存儲(chǔ)過程實(shí)現(xiàn)往數(shù)據(jù)表中新增字段的方法
本文實(shí)例講述了mysql創(chuàng)建存儲(chǔ)過程實(shí)現(xiàn)往數(shù)據(jù)表中新增字段的方法,結(jié)合實(shí)例形式對比分析了通過存儲(chǔ)過程新增字段相關(guān)操作技巧,需要的朋友可以參考下。...
Mysql數(shù)據(jù)庫自定義函數(shù)的定義、使用方法及操作注意事項(xiàng)
文章主要介紹了MySQL自定義函數(shù)簡單用法,結(jié)合實(shí)例形式分析了mysql自定義函數(shù)的基本定義、使用方法及操作注意事項(xiàng),需要的朋友可以參考下。...
Mysql數(shù)據(jù)庫的max_allowed_packet設(shè)定方法
小編為大家分享一篇關(guān)于Mysql的max_allowed_packet設(shè)定,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧...
Mysql數(shù)據(jù)庫亂碼出現(xiàn)的各個(gè)階段以及對應(yīng)方法
MySQL中數(shù)據(jù)庫亂碼一般進(jìn)行字符集的設(shè)定即可,但是亂碼可以出現(xiàn)在各個(gè)階段,所以這篇文章整理一下亂碼出現(xiàn)的各個(gè)階段以及對應(yīng)方法。...
MySQL數(shù)據(jù)庫的事務(wù)處理用法與實(shí)例代碼詳解
文章主要介紹了mysql事務(wù)處理用法與實(shí)例代碼詳解,詳細(xì)的介紹了事物的特性和用法并實(shí)現(xiàn)php和mysql事務(wù)處理例子,非常具有實(shí)用價(jià)值,需要的朋友可以參考下...
Mysql數(shù)據(jù)庫使用from與join兩表查詢的方法區(qū)別總結(jié)
文章主要給大家介紹了關(guān)于mysql使用from與join兩表查詢的區(qū)別的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面...
Sql Server數(shù)據(jù)庫類似正則表達(dá)式的字符處理問題
SQL Serve提供了簡單的字符模糊匹配功能,比如:like, patindex,不過對于某些字符處理場景還顯得并不足夠,日常碰到的幾個(gè)問題有:...
SQL Server數(shù)據(jù)庫中表和索引結(jié)構(gòu)存儲(chǔ)的原理及如何加快搜索速度分析
本文詳細(xì)分析了SQL Server中表和索引結(jié)構(gòu)存儲(chǔ)的原理以及對于如何加快搜索速度和提高效率等方面做了詳細(xì)的分析,以下是主要內(nèi)容。...