操作數據表中的記錄

原始表user3

CREATE TABLE user3(
id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL,
password VARCHAR(32) NOT NULL,
age TINYINT UNSIGNED DEFAULT 10,
sex BOOLEAN
);

一、插入記錄

1、標準插入

INSERT [INTO] table_name [(col_name,...)] [VALUES | VALUE] ({expr | DEFAULT},...) ,(...),...;

|----如果省略掉字段名,則所有字段都要賦值
e.g.

INSERT user3 VALUES (NULL,'WANG','123',21,1);
#由于id字段是自增的故設為null ,還可以寫為DEFAULT
INSERT user3 VALUES (DEFAULT,'LI','456',76-62,1);
#插入的VALUES 也可是表達式、函數等等
INSERT user3 VALUES (DEFAULT,'LI','456',76-62,1),(NULL,'DDG',md5('345'),DEFAULT,0); 
#由于age字段有DEFAULT值,故可將其設置為DEFAULT
#md5()是一個函數

**為什么sex字段要設為1 **點此
2、INSERT [INTO] t1b_name SET col_name={expr | DEFAULT},...
相比較第一種而言,此方法可以使用子查詢(SubQuery),一次只能插入一條記錄,并不常用
3、 INSERT [INTO] tb_name [(col_name),...] SELECT ...
此方法是將SELECT查詢結果插入相應的數據表中
創建新表

CREATE TABLE test (
id TINYINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL
);

e.g.

INSERT INTO test(username) SELECT usernsme FROM user3 WHERE age > 22;
#將user3表中age大于22的記錄的username插入表test中

二、更新數據表

1、更新記錄(單表)

UPDATE [LOW_PRIORITY] [IGNORE] tb_reference SET col_name1={expr | DEFAULT } [,col_name2={expr | DEFAULT}]... [WHERE where_definition]

e.g.

UPDATE user3 SET age = age + 5;

在MySQL Workbench 中執行如果出現如下錯誤,點此,語句本身是正確的

Error Code: 1175. You are using safe update mode and you tried to update a table
 without a WHERE that uses a KEY column To disable safe mode, toggle the option in 
Preferences -> SQL Editor and reconnect.

其它e.g.

UPDATE user3 SET sex = 0 WHERE id % 2 = 0;
#將id為偶數的記錄sex字段設置為0

注:priority [pra???r?ti] 優先

三、刪除記錄

DELETE FROM tb_name [WHERE where_definition]

四、查詢記錄

SELOECT select_expr [,select_expr,...]
[
FROM tb_reference
[WHERE where_definition]
[GROUP BY {col_name | position} [ASC | DESC] ,...]
[HAVING where_condition]
[ORDER BY {col_name | expr | position}] [ASC | DESC,...]
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
]

e.g.各種查詢舉例--還需添加

SELECT now();#查詢當前時間
SELECT username AS un FROM user3;#將username起了一個別名,結果集列名為un
SELECT id,username FROM user3 GROUP BY id DESC;#將結果集分組按照id倒序排列
SELECT sex,age FROM  user3 GROUP BY sex HAVING age > 20;
#HAVING 是GROUP BY 的條件,注意條件如果不是聚合函數(max()、min())的話
#出現的字段必須在SELECT后面 例如age字段
SELECT * FROM user3 ORDER BY age DESC,id DESC;#對結果集進行排序,條件可以是多個
SELECT * FROM user3 LIMIT 2,2;
#特別注意MySQL結果集下標是從0開始的,所以當前語句查到的是第3、4條記錄

子查詢&多表更新 點此
多表連接&刪除 點此
|----查找全部SELECT * FROM table_name; //* 是對字段的過濾
|----自動編號AUTO _INCREMENT 需注意必須與主鍵配合使用。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容