本篇博客旨在更详细简洁的介绍MYSQl修改表格数据的相关基本操作,包括插入数据、修改数据和删除数据。文中有详细的源代码作示例,可以粘贴到MYSQL直接运行。
首先创建一个空表格,id是唯一的,且自增长:
USE `s_book`;
DROP TABLE IF EXISTS `t_book`; /*上次博客用了这个表格,这次我们重新建立一个*/
create table `t_book`(
`id` int(11) NOT NULL AUTO_INCREMENT, /*auto_increment 表示id 自增长,意思是,我插入一串数据,id自动增加*/
`bookName` varchar(20) DEFAULT NULL,
`price` decimal(6,2) DEFAULT NULL,
`author` varchar(20) DEFAULT NULL,
`bookTypeId` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
)
mysql> desc t_book; /*表格创建完成了*/
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| bookName | varchar(20) | YES | | NULL | |
| price | decimal(6,2) | YES | | NULL | |
| author | varchar(20) | YES | | NULL | |
| bookTypeId | int(11) | YES | | NULL | |
+------------+--------------+------+-----+---------+----------------+
mysql> select *from t_book; /可以看到这是个空表格,方便后续插入数据/
Empty set (0.00 sec)
mysql> insert into t_book values(null,'数学分析',120,'张三',1);
/*由于id自动增长,我们直接用Null就行了;这儿要注意,字符型要加英文的引号'',逗号也要是英文的,不然会报错*/
mysql> select *from t_book; /*这就插入数据成功了*/
+----+--------------+--------+--------+------------+
| id | bookName | price | author | bookTypeId |
+----+--------------+--------+--------+------------+
| 1 | 数学分析 | 120.00 | 张三 | 1 |
+----+--------------+--------+--------+------------+
mysql> insert into t_book(bookname,author,booktypeid) values('高等代数','张三',2);
/*注意逗号和引号,t_book()里面要和后面的values()一一对应*/
mysql> select *from t_book; /*未插入的数据就用null代替*/
+----+--------------+--------+--------+------------+
| id | bookName | price | author | bookTypeId |
+----+--------------+--------+--------+------------+
| 1 | 数学分析 | 120.00 | 张三 | 1 |
| 2 | 高等代数 | NULL | 张三 | 2 |
+----+--------------+--------+--------+------------+
mysql> insert into t_book values(null,'泛函分析',110,'李四',3),(null,'复变函数',80,'李四',4);
/*插入多条数据,直接如上所示*/
mysql> select *from t_book;
+----+--------------+--------+--------+------------+
| id | bookName | price | author | bookTypeId |
+----+--------------+--------+--------+------------+
| 1 | 数学分析 | 120.00 | 张三 | 1 |
| 2 | 高等代数 | NULL | 张三 | 2 |
| 3 | 泛函分析 | 110.00 | 李四 | 3 |
| 4 | 复变函数 | 80.00 | 李四 | 4 |
+----+--------------+--------+--------+------------+
mysql> update t_book set price=20 where id=2;
/*将表格第二行的价格改成20*/
mysql> select *from t_book;
+----+--------------+--------+--------+------------+
| id | bookName | price | author | bookTypeId |
+----+--------------+--------+--------+------------+
| 1 | 数学分析 | 120.00 | 张三 | 1 |
| 2 | 高等代数 | 20.00 | 张三 | 2 |
| 3 | 泛函分析 | 110.00 | 李四 | 3 |
| 4 | 复变函数 | 80.00 | 李四 | 4 |
+----+--------------+--------+--------+------------+
mysql> update t_book set price=100 where id in (1,4);
mysql> update t_book set price=20 where id between 1 and 4;
/*把id在1到4之间的price全改成20*/
mysql> select *from t_book;
+----+--------------+-------+--------+------------+
| id | bookName | price | author | bookTypeId |
+----+--------------+-------+--------+------------+
| 1 | 数学分析 | 20.00 | 张三 | 1 |
| 2 | 高等代数 | 20.00 | 张三 | 2 |
| 3 | 泛函分析 | 20.00 | 李四 | 3 |
| 4 | 复变函数 | 20.00 | 李四 | 4 |
+----+--------------+-------+--------+------------+
mysql> update t_book set price=60 where id>2;/*把id>2的价格设置为60*/
mysql> update t_book set price=70 where author like '%张三%';
/*把author中含有‘张三’的行的价格改成70*/
mysql> select *from t_book;
+----+--------------+-------+--------+------------+
| id | bookName | price | author | bookTypeId |
+----+--------------+-------+--------+------------+
| 1 | 数学分析 | 70.00 | 张三 | 1 |
| 2 | 高等代数 | 70.00 | 张三 | 2 |
| 3 | 泛函分析 | 60.00 | 李四 | 3 |
| 4 | 复变函数 | 60.00 | 李四 | 4 |
+----+--------------+-------+--------+------------+
其实where 条件表达式还有很多,大家可以参考我的博文
MYSQL查询表格数据基本操作指南里面有更详细的where表达式用法。
mysql> DELETE FROM t_book WHERE id=4;
/**删除第四行/
mysql> select *from t_book;
+----+--------------+-------+--------+------------+
| id | bookName | price | author | bookTypeId |
+----+--------------+-------+--------+------------+
| 1 | 数学分析 | 70.00 | 张三 | 1 |
| 2 | 高等代数 | 70.00 | 张三 | 2 |
| 3 | 泛函分析 | 60.00 | 李四 | 3 |
+----+--------------+-------+--------+------------+
mysql> delete from t_book where author like '%张三%';
/*删除作者姓名包含‘张三’的行*/
mysql> select *from t_book;
+----+--------------+-------+--------+------------+
| id | bookName | price | author | bookTypeId |
+----+--------------+-------+--------+------------+
| 3 | 泛函分析 | 60.00 | 李四 | 3 |
+----+--------------+-------+--------+------------+
1 row in set (0.00 sec)
类似更新数据中WHERE表达式,
其实where 条件表达式还有很多,这里就不一一说明了,只要表达式符合逻辑,就可以进行删除操作。