MySQL学习——操作表里的数据
程序员文章站
2022-05-03 22:22:38
MySQL学习——操作表里的数据 摘要:本文主要学习了使用DML语句操作表里数据的方法。 插入数据 语法 通过传入数据插入: 通过查询数据插入: 实例 更新数据 语法 实例 删除数据 语法 实例 基本查询 语法 说明 实例 创建成绩表: 插入数据: 查询所有成绩: 查询计算机的成绩: 查询成绩都及格 ......
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>
未完待续
上一篇: 动态SQL各个标签作用以及注意事项详解