INSERT INTO tbl_name (column_list) VALUES (value_list) 在插入數(shù)據(jù)前,首先創(chuàng)建一張表:
mysql> CREATE TABLE person -> ( -> id INT UNSIGNED NOT NULL AUTO_INCREMENT, -> name CHAR(40) NOT NULL DEFAULT '', -> age INT NOT NULL DEFAULT 0, -> info CHAR(50) NULL, -> PRIMARY KEY (id) -> ); Query OK, 0 rows affected (0.03 sec) 在person表中,插入一條新記錄,id值為1,name值為Green,age值為21,info值為L(zhǎng)awyer
mysql> INSERT INTO person (id ,name, age , info) -> VALUES (1,'Green', 21, 'Lawyer'); Query OK, 1 row affected (0.02 sec)
mysql> SELECT * FROM person; +----+-------+-----+--------+ | id | name | age | info | +----+-------+-----+--------+ | 1 | Green | 21 | Lawyer | +----+-------+-----+--------+ 1 row in set (0.00 sec) 在person表中,插入一條新記錄,id值為2,name值為Suse,age值為22,info值為dancer
mysql> INSERT INTO person (age ,name, id , info) -> VALUES (22, 'Suse', 2, 'dancer'); Query OK, 1 row affected (0.02 sec)
mysql> SELECT * FROM person; +----+-------+-----+--------+ | id | name | age | info | +----+-------+-----+--------+ | 1 | Green | 21 | Lawyer | | 2 | Suse | 22 | dancer | +----+-------+-----+--------+ 2 rows in set (0.00 sec) 為表的指定字段插入數(shù)據(jù)
在person表中,插入一條新記錄,name值為Willam,age值為20,info值為sports man
mysql> INSERT INTO person (name, age,info) -> VALUES('Willam', 20, 'sports man'); Query OK, 1 row affected (0.02 sec)
mysql> SELECT * FROM person; +----+--------+-----+------------+ | id | name | age | info | +----+--------+-----+------------+ | 1 | Green | 21 | Lawyer | | 2 | Suse | 22 | dancer | | 3 | Willam | 20 | sports man | +----+--------+-----+------------+ 3 rows in set (0.00 sec) 在person表中,插入一條新記錄,name值為laura,age值為25
mysql> INSERT INTO person (name, age ) VALUES ('Laura', 25); Query OK, 1 row affected (0.01 sec)
mysql> SELECT * FROM person; +----+--------+-----+------------+ | id | name | age | info | +----+--------+-----+------------+ | 1 | Green | 21 | Lawyer | | 2 | Suse | 22 | dancer | | 3 | Willam | 20 | sports man | | 4 | Laura | 25 | NULL | +----+--------+-----+------------+ 4 rows in set (0.00 sec) 可以發(fā)現(xiàn)id字段在插入數(shù)據(jù)后,沒(méi)有賦值時(shí)自動(dòng)增加,在這里id字段為表的主鍵,不能為空,紫銅會(huì)自動(dòng)為字段插入自增的序列值。
INSERT INTO tbl_name1 (column_list1) SELECT (column_list2) FROM table_name2 WHERE (condition) 從person_old表中查詢(xún)所有的記錄,并將其插入到person表中
首先,創(chuàng)建一個(gè)名為person_old的數(shù)據(jù)表,其表結(jié)構(gòu)與person結(jié)構(gòu)相同 mysql> CREATE TABLE person_old -> ( -> id INT UNSIGNED NOT NULL AUTO_INCREMENT, -> name CHAR(40) NOT NULL DEFAULT '', -> age INT NOT NULL DEFAULT 0, -> info CHAR(50) NULL, -> PRIMARY KEY (id) -> ); Query OK, 0 rows affected (0.11 sec)
UPDATE table_name SET col_name1=value1,col_name2=value2,..., WHERE where_condition 在person表中,更新id值為11的記錄,將age字段值改為15,將name字段值改為L(zhǎng)iMing
mysql> UPDATE person SET age = 15, name='LiMing' WHERE id = 11; Query OK, 1 row affected (0.02 sec) Rows matched: 1 Changed: 1 Warnings: 0
mysql> SELECT * FROM person WHERE id=11; +----+--------+-----+---------+ | id | name | age | info | +----+--------+-----+---------+ | 11 | LiMing | 15 | student | +----+--------+-----+---------+ 1 row in set (0.00 sec) 在person表中,更新age值為19~22的記錄,將info字段值都改為student
mysql> UPDATE person SET info='student' WHERE age BETWEEN 19 AND 22; Query OK, 6 rows affected (0.02 sec) Rows matched: 6 Changed: 6 Warnings: 0
mysql> SELECT * FROM person WHERE age BETWEEN 19 AND 22; +----+---------+-----+---------+ | id | name | age | info | +----+---------+-----+---------+ | 1 | Green | 21 | student | | 2 | Suse | 22 | student | | 3 | Willam | 20 | student | | 6 | Dale | 22 | student | | 9 | Harry | 21 | student | | 10 | Harriet | 19 | student | +----+---------+-----+---------+ 6 rows in set (0.00 sec) 3、刪除數(shù)據(jù)
執(zhí)行刪除操作前,使用SELECT語(yǔ)句查看當(dāng)前id=11的記錄 mysql> SELECT * FROM person WHERE id=11; +----+--------+-----+---------+ | id | name | age | info | +----+--------+-----+---------+ | 11 | LiMing | 15 | student | +----+--------+-----+---------+ 1 row in set (0.00 sec)
使用DELETE語(yǔ)句刪除該記錄 mysql> DELETE FROM person WHERE id = 11; Query OK, 1 row affected (0.02 sec)
語(yǔ)句執(zhí)行完畢,查看執(zhí)行結(jié)果: mysql> SELECT * FROM person WHERE id=11; Empty set (0.00 sec) 在person表中,使用DELETE語(yǔ)句同時(shí)刪除多條記錄,刪除age字段在19-22的記錄
執(zhí)行刪除操作前,使用SELECT語(yǔ)句查看當(dāng)前的數(shù)據(jù) mysql> SELECT * FROM person WHERE age BETWEEN 19 AND 22; +----+---------+-----+---------+ | id | name | age | info | +----+---------+-----+---------+ | 1 | Green | 21 | student | | 2 | Suse | 22 | student | | 3 | Willam | 20 | student | | 6 | Dale | 22 | student | | 9 | Harry | 21 | student | | 10 | Harriet | 19 | student | +----+---------+-----+---------+ 6 rows in set (0.00 sec)
DELETE刪除這些記錄 mysql> DELETE FROM person WHERE age BETWEEN 19 AND 22; Query OK, 6 rows affected (0.01 sec)
查看執(zhí)行結(jié)果 mysql> SELECT * FROM person WHERE age BETWEEN 19 AND 22; Empty set (0.00 sec) 刪除person表中所有記錄,SQL語(yǔ)句如下
執(zhí)行刪除操作前,使用SELECT語(yǔ)句查看當(dāng)前的數(shù)據(jù): mysql> SELECT * FROM person; +----+---------+-----+-----------+ | id | name | age | info | +----+---------+-----+-----------+ | 4 | Laura | 25 | NULL | | 5 | Evans | 27 | secretary | | 7 | Edison | 28 | singer | | 12 | Beckham | 31 | police | +----+---------+-----+-----------+ 4 rows in set (0.00 sec)