原始表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 需注意必須與主鍵配合使用。