操作表中數(shù)據(jù)
數(shù)據(jù)表是數(shù)據(jù)的載體星立,在使用的過程中我們需要頻繁的對數(shù)據(jù)表中的數(shù)據(jù)進(jìn)行增減店雅、刪除和修改操作。MYSQL中提供了對數(shù)據(jù)進(jìn)行添加贞铣、刪除和修改的完整功能闹啦,提高了數(shù)據(jù)庫的管理效率
SQL中的表達(dá)式和邏輯運算符和邏輯運算符
SQL命令中的表達(dá)式和開發(fā)語言中的表達(dá)式定義是一樣的秽之,都是指用 運算符將同類型的數(shù)據(jù)(如:變量椎麦、常量、函數(shù)等) 按一定的規(guī)則連接起來的具有特定意義的語句暖璧,表達(dá)式可以分為條件表達(dá)式和邏輯表達(dá)式
表達(dá)式
在數(shù)據(jù)庫中的表達(dá)式一般是指由常量酱畅、變量琳袄、函數(shù)和運算符組成。需要特別注意的是單個常量纺酸、變量和函數(shù)亦可稱為表達(dá)式窖逗。SQL語言中包括三種表達(dá)式,第一種<表名>后跟<字段名表達(dá)式>餐蔬,第二種是select語句后的<目標(biāo)表達(dá)式>碎紊,第三種是where語句后的<條件表達(dá)式>
比較運算符
比較運算符就是用來比較兩個數(shù)的大小,其結(jié)果是1樊诺、0或者Null,SQL中的條件運算符其意義如下
運算符 | 含義 |
---|---|
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
= | 等于 |
!= 或<> | 不等于 |
IS null | 是否為空 |
IS NOT NULL | 是否不為空 |
IN | 判斷一個值是IN列表中的任意一個值 |
NOT IN | 判斷一個值不是IN列表中的任意一個值 |
LIKE | 通配符匹配 |
BETWEEN AND | 判斷一個值是否在兩個值之間 |
邏輯運算符
SQL命令支持的邏輯運算符有 AND( 或者 &&) 仗考、 Or( 或者|| ) 和 Not(或者 !)词爬。
當(dāng)一個語句中使用了多個邏輯運算符時秃嗜,運算時先求Not的值,然后求And的值,最后再求Or的值
向表中插入數(shù)據(jù)
數(shù)據(jù)可時用來存放數(shù)據(jù)的锅锨,如何才能能高效的實現(xiàn)數(shù)據(jù)添加工作時本課程的一個重點叽赊。在數(shù)據(jù)庫中最常用的添加數(shù)據(jù)命令就是 insert 語句
一次添加一條數(shù)據(jù)
語法
insert [INTO] table_name[(column1,column2,column3,...)]
values (value1,value2,value3,...);
語法說明:
TABKE_name 表名;
column:列名
value: 需要添加到數(shù)據(jù)表的值必搞,和column對應(yīng)
into 語法關(guān)鍵字可以省略
注意:
- 添加記錄但不指定所有字段值必指,不指定字段時,該字段必須為空顾画;
- 自動增長列盡量不要指定值
- 有默認(rèn)值約束的列不指定值時將使用默認(rèn)值
- 主鍵列取劫、唯一約束列的值不能重復(fù)匆笤;
- 值于字段名必須一一匹配研侣,但是可以不按照表中字段順序指定
一次添加多行數(shù)據(jù)
在數(shù)據(jù)庫的使用過程中,偶爾會需要一次添加多條數(shù)據(jù)炮捧,這時我們可以使用 insert 語句可以一次添加多條數(shù)據(jù)
語法格式:
insert [into] table_name[(column1,column2,column3....]
values
(value1,value2,value3,....),
(value1,value2,value3,....),
(value1,value2,value3,....),
(value1,value2,value3,....),
(value1,value2,value3,....);
修改表中數(shù)據(jù)
數(shù)據(jù)庫中的數(shù)據(jù)不是永遠(yuǎn)不變的庶诡,他會隨著時間,業(yè)務(wù)的變化而變化咆课。當(dāng)需要修改現(xiàn)有數(shù)據(jù)時末誓,就需要使用 update 語句
語法:
update table_name
set
ci=olumn_name=value,column_name=value,,....,column_name=value
[where<表達(dá)式>]
語法說明
set: 是對指定的字段進(jìn)行修改
column_name:要被修改值的字段名
value 新增
where 條件語句可選的 代表修改數(shù)據(jù)時的條件,如果不選擇該語句书蚪,代表的則是修改表中的全部數(shù)據(jù)
修改表中的全部數(shù)據(jù)
修改表中的全部數(shù)據(jù)時一種不太常用的操作喇澡。
根據(jù)條件修改表中的數(shù)據(jù)
根據(jù)條件修改表中的數(shù)據(jù)時一種常用的操作。根據(jù)條件修改表中的數(shù)據(jù)殊校,是使用upadte...set....where ... 語句來完成的
刪除表中的數(shù)據(jù)記錄
使用delete
MySQL中刪除操作時數(shù)據(jù)庫中比較常用的操作之一晴玖。
語法:
delete from table_name [where search-condition]
語法說明
table_name :要刪除數(shù)據(jù)的表明
search-condition : 篩選條件
刪除所有信息:
案例:刪除studentinfo表中所有的記錄
delectEfrom studentinfo
注意:
不要輕易使用delect命令,在使用前要慎重考慮为流。因為大多數(shù)數(shù)據(jù)中的提交方式是自動的呕屎,在沒有標(biāo)識為事務(wù)的情況下是不能回滾的。DELECT命令是要記錄到日志的操作敬察,所以如果五一中使用 DELECT 命令秀睛,只能從備份的數(shù)據(jù)庫中進(jìn)行恢復(fù)
根據(jù)WHERE條件刪除數(shù)據(jù)
如果要刪除數(shù)據(jù)庫中指定的多條信息,只能通過where語句來實現(xiàn)莲祸,
使用TRUNCATE
DELECT 雖然能夠刪除表中全部的數(shù)據(jù)蹂安,但是DELECT 的操作是要記錄在日志文件中的,如果數(shù)據(jù)表的數(shù)據(jù)量比較大锐帜,刪除的速度就會收到影響藤抡,而且 DEKECT 刪除數(shù)據(jù)后,表所占的空間并沒有收回
TRUNCSTE 可以刪除表中的所有數(shù)據(jù)抹估,只留下一個表的結(jié)構(gòu)定義缠黍。 使,用TRUNCSTE 是不記錄日志操作的药蜻,因此其速度要比 DELECT語句塊好多瓷式。 而且TRUNCSTE 語句將釋放數(shù)據(jù)表的數(shù)據(jù)和索引所占據(jù)的所有空間替饿,以及釋放所有索引分配的空間
語法如下:
TRUNCATE TABLE TABLE_NAME
注意:
TRUNCATE TABLE命令不能用于有外鍵約束的表,如果存在外鍵約束則必須使用DELETE命令來刪除數(shù)據(jù)
總結(jié):
SQL中的運算符:
算數(shù)運算符 關(guān)系運算符贸典、邏輯運算符视卢、賦值運算符。
使用SQL語句增廊驼、刪据过、改、數(shù)據(jù)
Insert插入數(shù)據(jù)
Update 修改數(shù)據(jù)
Delete刪除數(shù)據(jù)
TRUNCATE 刪除數(shù)據(jù)