MySQL学习——操作表里的数据

Posted 鲨猫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL学习——操作表里的数据相关的知识,希望对你有一定的参考价值。

mysql学习——操作表里的数据

摘要:本文主要学习了使用DML语句操作表里数据的方法。

插入数据

语法

通过传入数据插入:

1 insert into 表名 [(列名1, …, 列名n)] values (值1, …, 值n);

通过查询数据插入:

1 insert into 表名 [(列1, ..., 列n)]
2 select 列1, ..., 列n from 查询的表;

实例

1 mysql> insert into score values (null, 张三, 计算机, 98);
2 Query OK, 1 row affected (0.00 sec)
3 
4 mysql> 

更新数据

语法

1 update 表名 set 字段1 = 值1, …, 字段n = 值n
2 [where 表达式]
3 [order by 表达式]
4 [limit 起始编号, 查询条数]

实例

1 mysql> update score set grade = 99 where id = 1;
2 Query OK, 1 row affected (0.00 sec)
3 Rows matched: 1  Changed: 1  Warnings: 0
4 
5 mysql> 

删除数据

语法

1 delete from 表名
2 [where 表达式]
3 [order by 表达式]
4 [limit 表达式]

实例

1 mysql> delete from score where id = 1;
2 Query OK, 1 row affected (0.00 sec)
3 
4 mysql> 

基本查询

语法

1 select 字段列名 from 表名
2 [where 表达式]
3 [group by 表达式]
4 [having 表达式]
5 [order by 表达式]
6 [limit 起始编号, 查询条数]

说明

1 字段列名:表示查询的字段,查询多个字段用,分隔,使用*号表示查询全部字段。
2 表名:表示查询数据的来源,可以是单个或多个,多个表名用,分隔。
3 where 表达式:可选,限定查询满足的条件。
4 group by 表达式:可选,按照指定的字段分组。
5 having 表达式:可选,限定查询满足的条件,用于使用了聚合函数限定条件。
6 order by 表达式:可选,指明排序的方式,升序(asc)和降序(desc)。
7 limit 起始编号, 查询条数:可选,设置每次显示查询出来的数据条数。

实例

创建成绩表:

1 mysql> create table score (
2     ->   id int(10) primary key auto_increment ,
3     ->   student varchar(20) not null,
4     ->   course varchar(20) not null,
5     ->   grade int(10)
6     -> );
7 Query OK, 0 rows affected (0.00 sec)
8 
9 mysql> 

插入数据:

 1 insert into score values(null, 张三, 计算机, 98);
 2 insert into score values(null, 张三, 英语,  53);
 3 insert into score values(null, 李四, 计算机, 48);
 4 insert into score values(null, 李四, 中文, 88);
 5 insert into score values(null, 王五, 中文, 95);
 6 insert into score values(null, 赵六, 计算机, 70);
 7 insert into score values(null, 赵六, 英语, 92);
 8 insert into score values(null, 赵六, 中文, 73);
 9 insert into score values(null, 孙七, 英语, 94);
10 insert into score values(null, 周八, 计算机, 90);
11 insert into score values(null, 周八, 英语, 85);
12 insert into score values(null, 吴九, 计算机, 90);
13 insert into score values(null, 吴九, 中文, 55);

查询所有成绩:

 1 mysql> select * from score;
 2 +----+---------+-----------+-------+
 3 | id | student | course    | grade |
 4 +----+---------+-----------+-------+
 5 |  1 | 张三    | 计算机    |    98 |
 6 |  2 | 张三    | 英语      |    53 |
 7 |  3 | 李四    | 计算机    |    48 |
 8 |  4 | 李四    | 中文      |    88 |
 9 |  5 | 王五    | 中文      |    95 |
10 |  6 | 赵六    | 计算机    |    70 |
11 |  7 | 赵六    | 英语      |    92 |
12 |  8 | 赵六    | 中文      |    73 |
13 |  9 | 孙七    | 英语      |    94 |
14 | 10 | 周八    | 计算机    |    90 |
15 | 11 | 周八    | 英语      |    85 |
16 | 12 | 吴九    | 计算机    |    90 |
17 | 13 | 吴九    | 中文      |    55 |
18 +----+---------+-----------+-------+
19 13 rows in set (0.00 sec)
20 
21 mysql> 

查询计算机的成绩:

 1 mysql> select * from score where course = 计算机;
 2 +----+---------+-----------+-------+
 3 | id | student | course    | grade |
 4 +----+---------+-----------+-------+
 5 |  1 | 张三    | 计算机    |    98 |
 6 |  3 | 李四    | 计算机    |    48 |
 7 |  6 | 赵六    | 计算机    |    70 |
 8 | 10 | 周八    | 计算机    |    90 |
 9 | 12 | 吴九    | 计算机    |    90 |
10 +----+---------+-----------+-------+
11 5 rows in set (0.00 sec)
12 
13 mysql> 

查询成绩都及格的学生编号和姓名,并按照编号排序:

 1 mysql> select id,student from score group by student having min(grade) > 60 order by id;
 2 +----+---------+
 3 | id | student |
 4 +----+---------+
 5 |  5 | 王五    |
 6 |  6 | 赵六    |
 7 |  9 | 孙七    |
 8 | 10 | 周八    |
 9 +----+---------+
10 4 rows in set (0.00 sec)
11 
12 mysql> 

未完待续

以上是关于MySQL学习——操作表里的数据的主要内容,如果未能解决你的问题,请参考以下文章

怎么往mysql表里添加数据

我myeclipse用SSH+MYSQL做CRUD操作时候,后台显示insert into...但是mysql表里并没有插入的这条数据,急HEL

爬虫写入mysql表里的数据都是这种Unicode编码,怎么转为可读文字

java使用jdbc连接mysql数据库,表里有记录,但是查询的结果集为空,是啥原因

如何批量删除数据库里某个表里的多条记录

如何查看mysql数据库表里的数据