数据库的增删改查
目录
一,增
语法: 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)