MySQL基础操作(中)

数据库的增删改查


目录

一,增

 二,查

1.全列查询

2.指定列查询

3.查询字段为表达式

4.别名查询

5.去重查询

6.排序查询

1)升序

扫描二维码关注公众号,回复: 14995952 查看本文章

2)降序

7.条件查询

 1)基本查询

2)and与or查询

3)范围查询

4)模糊查询

8.分页查询

三,改

四,删


一,增

 语法: create table 表名;
 
 create table user(id int,id_name varchar(30),sex varchar(20));//创建一个表

 insert into user values(1,'张三','男');//全列插入数据

 insert into user (id,id_name) values(1,'张三');//制定列插入数据

 二,查

1.全列查询

语法:select * from 表名;//全列查询

mysql> drop table user;
Query OK, 0 rows affected (0.02 sec)

mysql> create table student(name varchar(20),chinese int,math int,english int);
Query OK, 0 rows affected (0.03 sec)

mysql> insert into student values('张三',82,90,75);
Query OK, 1 row affected (0.01 sec)

mysql> insert into student values('李四',85,82,90);
Query OK, 1 row affected (0.01 sec)

mysql> insert into student values('王五',84,90,90);
Query OK, 1 row affected (0.01 sec)

mysql> select * from student;
+------+---------+------+---------+
| name | chinese | math | english |
+------+---------+------+---------+
| 张三 |      82 |   90 |      75 |
| 李四 |      85 |   82 |      90 |
| 王五 |      84 |   90 |      90 |
+------+---------+------+---------+

2.指定列查询

//查询姓名和语文成绩字段
mysql> select name,chinese from student;
+------+---------+
| name | chinese |
+------+---------+
| 张三 |      82 |
| 李四 |      85 |
| 王五 |      84 |
+------+---------+
3 rows in set (0.00 sec)

3.查询字段为表达式

//查询姓名,以及三科成绩的总和
mysql> select name ,chinese+math+english from student;
+------+----------------------+
| name | chinese+math+english |
+------+----------------------+
| 张三 |                  247 |
| 李四 |                  257 |
| 王五 |                  264 |
+------+----------------------+
3 rows in set (0.00 sec)

4.别名查询

mysql> select name ,chinese+math+english from student;
+------+----------------------+
| name | chinese+math+english |
+------+----------------------+
| 张三 |                  247 |
| 李四 |                  257 |
| 王五 |                  264 |
+------+----------------------+
3 rows in set (0.00 sec)

//这里我们把三科成绩起了个别名,在视觉上,可以更直观的看出
mysql> select name ,chinese+math+english as tetol from student;
+------+-------+
| name | tetol |
+------+-------+
| 张三 |   247 |
| 李四 |   257 |
| 王五 |   264 |
+------+-------+
3 rows in set (0.00 sec)

5.去重查询

mysql> select english from student;
+---------+
| english |
+---------+
|      75 |
|      90 |
|      90 |
+---------+
3 rows in set (0.00 sec)

//去重查询使用关键字distinct
mysql> select distinct english from student;
+---------+
| english |
+---------+
|      75 |
|      90 |
+---------+
2 rows in set (0.00 sec)

6.排序查询

1)升序

//使用order by 关键字进行升序
mysql> select chinese from student order by chinese;
+---------+
| chinese |
+---------+
|      82 |
|      84 |
|      85 |
+---------+
3 rows in set (0.00 sec)

2)降序

//在order by的基础上,增加desc关键字进行降序;
mysql> select chinese from student order by chinese desc;
+---------+
| chinese |
+---------+
|      85 |
|      84 |
|      82 |
+---------+
3 rows in set (0.00 sec)

7.条件查询

 1)基本查询

//查询语文成绩大于82分以上(不包括82)的同学
mysql> select name from student where chinese>82;
+------+
| name |
+------+
| 李四 |
| 王五 |
+------+
2 rows in set (0.00 sec)

2)and与or查询

//查询语文成绩大于82,并且数学成绩大于82的同学
mysql> select name from student where chinese>82 and math>82;
+------+
| name |
+------+
| 王五 |
+------+
1 row in set (0.00 sec)



//查询语文成绩大于82,或者数学成绩大于82的同学
mysql> select name from student where chinese>82 or math>82;
+------+
| name |
+------+
| 张三 |
| 李四 |
| 王五 |
+------+
3 rows in set (0.00 sec)

3)范围查询

//查询语文成绩在84到85之间的同学
mysql> select name from student where chinese between 84 and 85;
+------+
| name |
+------+
| 李四 |
| 王五 |
+------+
2 rows in set (0.00 sec)

4)模糊查询

mysql> select * from student;
+--------+---------+------+---------+
| name   | chinese | math | english |
+--------+---------+------+---------+
| 张三   |      82 |   90 |      75 |
| 李四   |      85 |   82 |      90 |
| 王五   |      84 |   90 |      90 |
| 张伟   |      99 |   89 |      78 |
| 张大大 |     100 |   59 |      78 |
+--------+---------+------+---------+
5 rows in set (0.00 sec)

//    %可以匹配任意多个字符
mysql> select name from student where name like '张%';
+--------+
| name   |
+--------+
| 张三   |
| 张伟   |
| 张大大 |
+--------+
3 rows in set (0.00 sec)

//   _只能匹配一个任意字符
mysql> select name from student where name like '张_';
+------+
| name |
+------+
| 张三 |
| 张伟 |
+------+
2 rows in set (0.00 sec)

8.分页查询

//使用limit关键字进行分页查询
mysql> select * from student;
+--------+---------+------+---------+
| name   | chinese | math | english |
+--------+---------+------+---------+
| 张三   |      82 |   90 |      75 |
| 李四   |      85 |   82 |      90 |
| 王五   |      84 |   90 |      90 |
| 张伟   |      99 |   89 |      78 |
| 张大大 |     100 |   59 |      78 |
+--------+---------+------+---------+
5 rows in set (0.00 sec)

mysql> select chinese from student limit 3;
+---------+
| chinese |
+---------+
|      82 |
|      85 |
|      84 |
+---------+
3 rows in set (0.00 sec)

mysql> select chinese from student limit 3,5;
+---------+
| chinese |
+---------+
|      99 |
|     100 |
+---------+
2 rows in set (0.00 sec)

mysql> select chinese from student limit 3 offset 0;
+---------+
| chinese |
+---------+
|      82 |
|      85 |
|      84 |
+---------+
3 rows in set (0.00 sec)

mysql> select chinese from student limit 3 offset 3;
+---------+
| chinese |
+---------+
|      99 |
|     100 |
+---------+
2 rows in set (0.00 sec)

三,改

mysql> select * from student;
+--------+---------+------+---------+
| name   | chinese | math | english |
+--------+---------+------+---------+
| 张三   |      82 |   90 |      75 |
| 李四   |      85 |   82 |      90 |
| 王五   |      84 |   90 |      90 |
| 张伟   |      99 |   89 |      78 |
| 张大大 |     100 |   59 |      78 |
+--------+---------+------+---------+
5 rows in set (0.00 sec)

//将张三的数学成绩改为100
mysql> update student set math=100 where name='张三';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from student;
+--------+---------+------+---------+
| name   | chinese | math | english |
+--------+---------+------+---------+
| 张三   |      82 |  100 |      75 |
| 李四   |      85 |   82 |      90 |
| 王五   |      84 |   90 |      90 |
| 张伟   |      99 |   89 |      78 |
| 张大大 |     100 |   59 |      78 |
+--------+---------+------+---------+
5 rows in set (0.00 sec)

//将张三的语文成绩改为90,数学成绩改成100;
mysql> update student set chinese=90, math=100 where name='张三';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

//将所有同学的语文成绩都加10分;
mysql> update student set chinese=chinese+10;
Query OK, 5 rows affected (0.00 sec)
Rows matched: 5  Changed: 5  Warnings: 0

mysql> select * from student;
+--------+---------+------+---------+
| name   | chinese | math | english |
+--------+---------+------+---------+
| 张三   |     100 |  100 |      75 |
| 李四   |      95 |   82 |      90 |
| 王五   |      94 |   90 |      90 |
| 张伟   |     109 |   89 |      78 |
| 张大大 |     110 |   59 |      78 |
+--------+---------+------+---------+
5 rows in set (0.00 sec)

四,删

mysql> select * from student;
+--------+---------+------+---------+
| name   | chinese | math | english |
+--------+---------+------+---------+
| 张三   |     100 |  100 |      75 |
| 李四   |      95 |   82 |      90 |
| 王五   |      94 |   90 |      90 |
| 张伟   |     109 |   89 |      78 |
| 张大大 |     110 |   59 |      78 |
+--------+---------+------+---------+
5 rows in set (0.00 sec)

//删除张三同学的所有成绩
mysql> delete from student where name='张三';
Query OK, 1 row affected (0.01 sec)

mysql> select * from student;
+--------+---------+------+---------+
| name   | chinese | math | english |
+--------+---------+------+---------+
| 李四   |      95 |   82 |      90 |
| 王五   |      94 |   90 |      90 |
| 张伟   |     109 |   89 |      78 |
| 张大大 |     110 |   59 |      78 |
+--------+---------+------+---------+
4 rows in set (0.00 sec)

猜你喜欢

转载自blog.csdn.net/m0_63635730/article/details/129215902