mysql数据库更新表_Mysql数据库(四)表记录的更新操作
一、插入表記錄
1.使用INSERT...VALUES語句插入新紀錄
(1)插入完整數據
mysql> desc tb_manager;
+-------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(30) | YES | | NULL | |
| PWD | varchar(30) | YES | | NULL | |
+-------+------------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
mysql> INSERT INTO tb_manager VALUES(1,'mr','mrsoft');
Query OK, 1 row affected (0.01 sec)
mysql> SELECT * FROM tb_manager;
+----+------+--------+
| id | name | PWD |
+----+------+--------+
| 1 | mr | mrsoft |
+----+------+--------+
1 row in set (0.00 sec)
(2)插入數據記錄的一部分
mysql> INSERT INTO tb_manager(name,PWD) VALUES('Lianjiang','lianjiang');
Query OK, 1 row affected (0.01 sec)
mysql> SELECT * FROM tb_manager;
+----+-----------+-----------+
| id | name | PWD |
+----+-----------+-----------+
| 1 | mr | mrsoft |
| 2 | Lianjiang | lianjiang |
+----+-----------+-----------+
2 rows in set (0.00 sec)
2.插入多條記錄
mysql> INSERT INTO tb_manager(name,PWD) VALUES('lian','111'),('qiao','222'),('tian','333');
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM tb_manager;
+----+-----------+-----------+
| id | name | PWD |
+----+-----------+-----------+
| 1 | mr | mrsoft |
| 2 | Lianjiang | lianjiang |
| 3 | lian | 111 |
| 4 | qiao | 222 |
| 5 | tian | 333 |
+----+-----------+-----------+
5 rows in set (0.00 sec)
3.使用INSERT...SELECT語句將查詢結果插入到指定的數據表中,實現從圖書館tb_borrow中獲取部借閱信息插入到歸還表tb_giveback中
(1)創建借閱表并插入兩條數據
mysql> CREATE TABLE tb_borrow(
-> id int(10) unsigned NOT NULL AUTO_INCREMENT,
-> readerid int(10) unsigned,
-> bookid int(10),
-> borrowTime date,
-> backTime date,
-> operator varchar(30),
-> ifback tinyint(1) DEFAULT '0',
-> PRIMARY KEY(id)
-> )DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.02 sec)
mysql> INSERT INTO tb_borrow(readerid,bookid,borrowTime,backTime,operator,ifback) VALUES
-> (1,1,'2018-04-17','2018-04-20','mr',1),
-> (1,2,'2018-04-16','2018-04-21','mr',0);
Query OK, 2 rows affected (0.01 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM tb_borrow;
+----+----------+--------+------------+------------+----------+--------+
| id | readerid | bookid | borrowTime | backTime | operator | ifback |
+----+----------+--------+------------+------------+----------+--------+
| 1 | 1 | 1 | 2018-04-17 | 2018-04-20 | mr | 1 |
| 2 | 1 | 2 | 2018-04-16 | 2018-04-21 | mr | 0 |
+----+----------+--------+------------+------------+----------+--------+
2 rows in set (0.00 sec)
(2)創建歸還表并查詢readerid和bookid字段的值,插入到數據表tb_giveback中
mysql> CREATE TABLE tb_giveback(
-> id int(10) unsigned NOT NULL AUTO_INCREMENT,
-> readerid int(10) unsigned,
-> bookid int(10),
-> backTime date,
-> operator varchar(30),
-> PRIMARY KEY(id)
-> )DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.02 sec)
mysql> INSERT INTO tb_giveback
-> (readerid,bookid)
-> SELECT readerid,bookid FROM tb_borrow;
Query OK, 2 rows affected (0.01 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM tb_giveback;
+----+----------+--------+----------+----------+
| id | readerid | bookid | backTime | operator |
+----+----------+--------+----------+----------+
| 1 | 1 | 1 | NULL | NULL |
| 2 | 1 | 2 | NULL | NULL |
+----+----------+--------+----------+----------+
2 rows in set (0.00 sec)
4.使用REPLACE語句插入新紀錄
REPLACE語句與INSERT INTO語句相似,所不同的是,如果一個要插入數據的表中存在主鍵約束或者唯一約束,而且要插入的數據中又包含于要插入數據的表中相同的主鍵約束或者唯一約束列的值,那么使用INSERT INTO不能插入這條記錄,而使用REPLACE可以插入,只不過它會先將原數據表中起沖突的記錄刪除,然后再插入新的記錄。
mysql> INSERT INTO tb_giveback
-> SELECT id,readerid,bookid,backTime,operator FROM tb_borrow;
ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'
mysql> REPLACE INTO tb_giveback
-> SELECT id,readerid,bookid,backTime,operator FROM tb_borrow;
Query OK, 4 rows affected (0.01 sec)
Records: 2 Duplicates: 2 Warnings: 0
mysql> SELECT * FROM tb_giveback;
+----+----------+--------+------------+----------+
| id | readerid | bookid | backTime | operator |
+----+----------+--------+------------+----------+
| 1 | 1 | 1 | 2018-04-20 | mr |
| 2 | 1 | 2 | 2018-04-21 | mr |
+----+----------+--------+------------+----------+
2 rows in set (0.00 sec)
二、修改表記錄,將借閱表中id字段為2的記錄的“是否歸還”字段值設為1
mysql> UPDATE tb_borrow SET ifback=1 WHERE id=2;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> SELECT * FROM tb_borrow;
+----+----------+--------+------------+------------+----------+--------+
| id | readerid | bookid | borrowTime | backTime | operator | ifback |
+----+----------+--------+------------+------------+----------+--------+
| 1 | 1 | 1 | 2018-04-17 | 2018-04-20 | mr | 1 |
| 2 | 1 | 2 | 2018-04-16 | 2018-04-21 | mr | 1 |
+----+----------+--------+------------+------------+----------+--------+
2 rows in set (0.00 sec)
三、刪除表記錄
1.使用DELETE語句刪除表記錄
mysql> SELECT * FROM tb_manager;
+----+-----------+-----------+
| id | name | PWD |
+----+-----------+-----------+
| 1 | mr | mrsoft |
| 2 | Lianjiang | lianjiang |
| 3 | lian | 111 |
| 4 | qiao | 222 |
| 5 | tian | 333 |
+----+-----------+-----------+
5 rows in set (0.00 sec)
mysql> DELETE FROM tb_manager WHERE name='Lianjiang';
Query OK, 1 row affected (0.00 sec)
mysql> SELECT * FROM tb_manager;
+----+------+--------+
| id | name | PWD |
+----+------+--------+
| 1 | mr | mrsoft |
| 3 | lian | 111 |
| 4 | qiao | 222 |
| 5 | tian | 333 |
+----+------+--------+
4 rows in set (0.00 sec)
2.使用TRUNCATE語句清空表記錄
mysql> TRUNCATE TABLE tb_manager;
Query OK, 0 rows affected (0.02 sec)
mysql> SELECT * FROM tb_manager;
Empty set (0.00 sec)
總結
以上是生活随笔為你收集整理的mysql数据库更新表_Mysql数据库(四)表记录的更新操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql配置向导文件_Mysql的安全
- 下一篇: java备还原mysql_用java来备