MYSQL數(shù)據(jù)庫基本操作

插入數(shù)據(jù)

在建立一個空的數(shù)據(jù)庫和數(shù)據(jù)表時,首先需要考慮的是如何向數(shù)據(jù)表中添加數(shù)據(jù),該操作可以使用INSERT語句來完成。使用INSERT語句可以向一個已有數(shù)據(jù)表插一個新行,也就插入一行新記錄。
在MySQL中,INSERT語句有3種語法格式,分別是INSERT... VALUES語句、INSERT... SET語句和INSERT... SELECT語句。

創(chuàng)新互聯(lián)成都網(wǎng)站建設(shè)按需求定制網(wǎng)站,是成都網(wǎng)站營銷推廣公司,為陽臺護(hù)欄提供網(wǎng)站建設(shè)服務(wù),有成熟的網(wǎng)站定制合作流程,提供網(wǎng)站定制設(shè)計服務(wù):原型圖制作、網(wǎng)站創(chuàng)意設(shè)計、前端HTML5制作、后臺程序開發(fā)等。成都網(wǎng)站維護(hù)熱線:13518219792

使用INSERT... VALUES語句插入數(shù)據(jù)

使用INSERT... VALUES語句插入數(shù)據(jù),是INSERT語句的最常用的語法格式。

語法格式如下:?

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] 數(shù)據(jù)表名 [(字段名,...)]
VALUES ({值 | DEFAULT},...),(...),...
[ ON DUPLICATE KEY UPDATE 字段名=表達(dá)式, ... ]

例子:

create database test; #創(chuàng)建庫
use test; #進(jìn)入庫
create table info (id int not null,name char(16),score decimal(5,2),age int(8)); #創(chuàng)建表
插入測試數(shù)據(jù)
insert into info (id,name,score,age)values(1,'san',88,33);
insert into info (id,name,score,age)values(2,'lisi',48,31);
insert into info (id,name,score,age)values(3,'wwu',68,27);
insert into info (id,name,score,age)values(4,'pw',98,25);
insert into info (id,name,score,age)values(5,'wlk',19,37);
insert into info (id,name,score,age)values(3,'lihua',58,23);
SELECT * FROM info;

MYSQL 數(shù)據(jù)庫基本操作

使用INSERT... SET語句插入數(shù)據(jù)

在MySQL中,除了使用INSERT... VALUES語句可以插入數(shù)據(jù)外,還可以使用INSERT... SET語句插入數(shù)據(jù)。這種語法格式用于通過直接給表中的某些字段指定對應(yīng)的值來實現(xiàn)插入指定數(shù)據(jù),對于未指定值的字段將采用默認(rèn)值進(jìn)行添加。

INSERT... SET語句的語法格式如下:

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] 數(shù)據(jù)表名
SET 字段名={值 | DEFAULT}, ...
[ ON DUPLICATE KEY UPDATE 字段名=表達(dá)式, ... ]

例子:

insert into info SET id =8, name='xiaohong',score=88,age=56;
SELECT * FROM info;

MYSQL 數(shù)據(jù)庫基本操作

插入查詢結(jié)果

在MySQL中,支持將查詢結(jié)果插入到指定的數(shù)據(jù)表中,這可以通過>INSERT...SELECT語句來實現(xiàn)。
?
語法如下:
INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
[INTO] 數(shù)據(jù)表名 [(字段名,...)]
SELECT ...
[ ON DUPLICATE KEY UPDATE 字段名=表達(dá)式, ... ]

例子:

insert into info(id,name,score,age)SELECT * from info where id=4;
SELECT * FROM info;

MYSQL 數(shù)據(jù)庫基本操作

修改數(shù)據(jù)

要執(zhí)行修改的操作可以使用UPDATE語句,

語法如下:

UPDATE [LOW_PRIORITY] [IGNORE] 數(shù)據(jù)表名
SET 字段1=值1 [, 字段2=值2 ...]
[WHERE 條件表達(dá)式]
[ORDER BY ...]
[LIMIT 行數(shù)]

例子:

UPDATE info set score=77 where age <=30;
SELECT * FROM info;

MYSQL 數(shù)據(jù)庫基本操作
MYSQL 數(shù)據(jù)庫基本操作

刪除數(shù)據(jù)

在數(shù)據(jù)庫中,有些數(shù)據(jù)已經(jīng)失去意義或者錯誤時就需要將它們刪除,在MySQL中,可以使用DELETE語句或者TRUNCATE TABLE語句刪除表中的一行或多行數(shù)據(jù).

通過DELETE語句刪除數(shù)據(jù)

通過DELETE語句刪除數(shù)據(jù)的基本語法格式如下:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM 數(shù)據(jù)表名
[WHERE 條件表達(dá)式]
[ORDER BY ...]
[LIMIT 行數(shù)]

例子:

DELETE FROM info;
DELETE from info WHERE id=4;
SELECT * FROM info;

MYSQL 數(shù)據(jù)庫基本操作

通過TRUNCATE TABLE語句刪除數(shù)據(jù)

在刪除數(shù)據(jù)時,如果要從表中刪除所有的行,那么不必使用通過TRUNCATE
TABLE語句刪除數(shù)據(jù)的基本語法格式如下:
TRUNCATE [TABLE] 數(shù)據(jù)表名

例子:

TRUNCATE table info;

Drop,Truncate,Delete區(qū)別

1.drop (刪除表):刪除內(nèi)容和定義,釋放空間。簡單來說就是把整個表去掉.以后要新增數(shù)據(jù)是不可能的,除非新增一個表。
drop語句將刪除表的結(jié)構(gòu)被依賴的約束(constrain),觸發(fā)器(trigger)索引(index);依賴于該表的存儲過程/函數(shù)將被保留,但其狀態(tài)會變?yōu)椋篿nvalid。
2.truncate (清空表中的數(shù)據(jù)):刪除內(nèi)容、釋放空間但不刪除定義(保留表的數(shù)據(jù)結(jié)構(gòu))。與drop不同的是,只是清空表數(shù)據(jù)而已。
注意:truncate 不能刪除行數(shù)據(jù),要刪就要把表清空。
3.delete (刪除表中的數(shù)據(jù)):delete 語句用于刪除表中的行。delete語句執(zhí)行刪除的過程是每次從表中刪除一行,并且同時將該行的刪除操作作為事務(wù)記錄在日志中保存。以便進(jìn)行進(jìn)行回滾操作。truncate與不帶where的delete :只刪除數(shù)據(jù),而不刪除表的結(jié)構(gòu)(定義)
4.truncate table 刪除表中的所有行,但表結(jié)構(gòu)及其列、約束、索引等保持不變。新行標(biāo)識所用的計數(shù)值重置為該列的種子。如果想保留標(biāo)識計數(shù)值,請改用delete如果要刪除表定義及其數(shù)據(jù),請使用 drop table 語句。
5.對于由foreign key約束引用的表,不能使用truncate table ,而應(yīng)使用不帶where子句的delete語句。由于truncate table 記錄在日志中,所以它不能激活觸發(fā)器。
6.執(zhí)行速度,一般來說: drop> truncate > delete。
7.delete語句是數(shù)據(jù)庫操作語言(dml),這個操作會放到 rollback segement 中,事務(wù)提交之后才生效;如果有相應(yīng)的 trigger,執(zhí)行的時候?qū)⒈挥|發(fā)。
8.truncate、drop 是數(shù)據(jù)庫定義語言(ddl),操作立即生效,原數(shù)據(jù)不放到 rollback segment 中,不能回滾,操作不觸發(fā) trigger

網(wǎng)頁標(biāo)題:MYSQL數(shù)據(jù)庫基本操作
URL分享:http://bm7419.com/article14/pscode.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、App設(shè)計域名注冊網(wǎng)站設(shè)計公司、用戶體驗、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

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