MySQL基礎知識02 4.CRUD 資料庫CRUD語句:增(create)、刪(delete)、改(update)、查(Retrieve) Insert 語句 (添加數據) Update 語句(更新數據) Delete 語句(刪除數據) Select 語句 (查找數據) 指對資料庫中表記錄的操作( ...
MySQL基礎知識02
4.CRUD
資料庫CRUD語句:增(create)、刪(delete)、改(update)、查(Retrieve)
- Insert 語句 (添加數據)
- Update 語句(更新數據)
- Delete 語句(刪除數據)
- Select 語句 (查找數據)
指對資料庫中表記錄的操作(DML 操作)
註意:
alter屬於DDL,用來修改基本表,是對錶的結構進行操作,比如對欄位增加,刪除,修改類型;
DML 操例,如update是用來修改表中的數據,修改某一行某一列的值
對行是數據操縱DML(update),對列是數據定義DDL(alter)
4.1Insert語句
- 使用INSERT 語句向表中插入數據
INSERT INTO tablename [(column [,column ...])]
VALUES (value[, value...]);
例子
- 創建一商品表goods(id int, goods_name varchar(10),price double);
- 添加兩條記錄
# 練習insert語句
-- 1. 創建一商品表goods(id int, goods_name varchar(10),price double);
CREATE TABLE goods(
id INT,
goods_name VARCHAR(10),
price DOUBLE)
-- 2. 添加兩條記錄
INSERT INTO goods (id,goods_name,price)
VALUES(10,'華為手機',2000);
INSERT INTO goods (id,goods_name,price)
VALUES(20,'蘋果手機',3000);
SELECT * FROM goods;
- INSERT語句註意事項
細節說明:
-
插入的數據應該與欄位的數據類型相同,比如把 'abc' 添加到 int 類型會錯誤
-
數據的長度應在列的規定範圍之內,例如:不能將一個長度為80的字元串加入到長度為40的列中
-
在values中列出的數據位置必須與被加入的列的排列位置對應
-
字元和日期型數據應包含在單引號中
-
列可以插入空值[前提是該欄位允許為空],insert into table value(null)
-
insert into table_name(列名...) values (),(),() 形式添加多條記錄
-
如果是給表中的所有欄位添加數據,可以不寫前面的欄位名稱
-
預設值的使用,當不給某個欄位值時,如果有預設值就會添加預設值,否則報錯
如果某個列沒有指定not null,那麼當添加數據時,沒有給定值,則會預設給null
如果我們希望指定某個預設值,可以在創建表時指定
-- - INSERT語句註意事項
-- 細節說明:
-- 1. 插入的數據應該與欄位的數據類型相同
INSERT INTO goods VALUES('北京','小米手機',2000)-- 失敗,id對應的列類型是int
-- 2. 數據的長度應在列的規定範圍之內,例如:不能將一個長度為80的字元串加入到長度為40的列中
INSERT INTO goods VALUES(40,'vovo手機vovovovo手機vovovovo手機vovo',2000)-- 失敗
-- 3. 在values中列出的數據位置必須與被加入的列的排列位置對應
INSERT INTO goods (goods_name,id,price)-- 成功,即使改變了列屬性的位置,只要值是對應的,就ok
VALUES('vivo手機',50,1800)
-- 4. 字元和日期型數據應包含在單引號中
INSERT INTO goods VALUES(60,小米手機,2000)-- 失敗,字元串應該加上單引號
-- 5. 列可以插入空值[前提是該欄位允許為空],insert into table value(null)
INSERT INTO goods (id,goods_name,price)
VALUES(11,'boluo手機',NULL)-- 成功,該欄位允許為空
-- 6. insert into table_name(列名...) values (),(),() 形式添加多條記錄
INSERT INTO goods VALUES(13,'三星手機',2300),(14,'四星手機',2300)-- ok
-- 7. 如果是給表中的所有欄位添加數據,可以不寫前面的欄位名稱
INSERT INTO goods (id) VALUES(66); -- ok,指定了欄位
-- 8. 預設值的使用,當不給某個欄位值時,如果有預設值就會添加預設值,否則報錯
-- 如果某個列沒有指定not null,那麼當添加數據時,沒有給定值,則會預設給null
INSERT INTO goods (id,goods_name)
VALUES(88,'格力手機');-- 這裡的price預設設為null
SELECT * FROM goods;
-- 如果我們希望指定某個預設值,可以在創建表時指定
-- 例如
CREATE TABLE goods2 (
id INT ,
goods_name VARCHAR(10),
price FLOAT NOT NULL DEFAULT 100);
INSERT INTO goods2 (id,goods_name) VALUES(1,'大西瓜手機');
SELECT * FROM goods2;
goods表:
goods2表:
4.2Update語句
- 語法:
UPDATE tab_name
SET col_name1=expr1[, col_name2=expr2...]
[WHERE where_definition]
例子
要求:在上面創建的epm表中修改表中的記錄
- 將所有員工的薪水改為5000元
- 將姓名為‘小妖怪’的員工薪水改為3000元
- 將老妖怪的薪水在原有的基礎上加1000元
-- 要求:在上面創建的epm表中修改表中的記錄
SELECT * FROM emp
-- 1. 將所有員工的薪水改為5000元
UPDATE emp SET salary = 5000
-- 2. 將姓名為‘小妖怪’的員工薪水改為3000元
UPDATE emp SET salary = 3000 WHERE user_name = '小妖怪'
-- 3. 將老妖怪的薪水在原有的基礎上加1000元
INSERT INTO emp
VALUES(200,'老妖怪','1990-1-1','2004-4-12 12:22:09','捶背的',5000,'給大王捶背','111')
UPDATE emp
SET salary = salary + 1000, job='出主意的'
WHERE user_name = '老妖怪'
- 使用細節
- UPDATE 語法可以用新值更新原有表行中的各列
- set子句指示要修改哪些列和要給予哪些值
- WHERE子句指定應更新哪些行,如果沒有WHERE子句,則更新所有的記錄。因此要慎用
- 如果需要修改多個欄位,可以通過set欄位1=值1,欄位2=值2...
4.3Delete語句
- 語法
delete from tbl_name
[WHERE where_definition]
例子
-- delete語句演示
-- 刪除表中名稱為'老妖怪'的記錄
DELETE FROM emp WHERE user_name ='老妖怪'
-- 刪除表中所有記錄
DELETE FROM emp
SELECT * FROM emp
- 使用細節
- 如果不使用子句,將刪除表中所有數據
- delete語句不能刪除某一列的值(可使用update設為null或者 '')
- 使用delete語句僅刪除記錄,不刪除表本身。如果要刪除表,使用drop 語句:
drop table 表名;