mysql中sql语句去重_mysql基本SQL语句

SQL语句中的大小写问题

a.关键字、函数名、列名和索引名不区分大小写。

b.数据库名、表名、别名及视图名区分大小写。

一.基本的操作

1.库操作

mysql>show databases; #查看所有库

mysql> usemysql; #切换库

mysql> create databasetest_ku; #创建一个库

mysql> drop database test_ku; #删除一个库

2.表操作

mysql>show tables; #查看当前库中的所有列表

mysql> create table class_7(id int(11),name char(10),addr char(10)); #创建一个表

mysql> descclass_7; #查看表的结构

mysql> show create tablestudent_info; #查看表的属性

mysql> show create table student_info\Gmysql> alter table class_7 rename to student_info; #更改表的名字

mysql> drop table student_info; #删除表

3.字段操作

mysql> alter table score add id int(2) first;  #在最前面添加字段

mysql> alter table score add record int(3);  #添加字段,默认最后添加

mysql> alter table score add sex char(3) after name;  #在制定的字段后面添加字段

mysql> alter table score change record first_record int(2) default 0;  #修改字段名和属性

mysql> alter table score modify sex enum('男','女');  #修改字段属性的另一种方法,与change不同的是不能修改字段名

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

+--------------+-------------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+--------------+-------------------+------+-----+---------+-------+

| id | int(2) | YES | | NULL | |

| name | char(4) | YES | | NULL | |

| sex | enum('男','女') | YES | | NULL | |

| first_record | int(2) | YES | | 0 | |

+--------------+-------------------+------+-----+---------+-------+

属性变化示例

mysql> alter table score drop first_record;   #删除字段

4.记录操作(增删改)

(1)增(insert)

mysql> insert into score value(1,'科比','男');  #按照默认的顺序添加

mysql> insert into score(id,name) value('2','毛线');   #也可以指定要添加的字段

mysql> insert into score value(4,'蒋大爷','男'),(5,'秦子琪','女');  #也可以一次添加多条

(2)改(update)

mysql> update score set sex = '男' where id = 2;    #按照条件修改字段

(3)删(delete)

mysql> delete from score where id = '0';  #指定条件删除

mysql>  delete from t1 where name is null;   #删除字段为空的那一行

mysql>  delete from t1;  #没有指定条件就会删除整张表

在有些时候,我们不光想要清空表中的数据,而且还想让id从0开始

SET FOREIGN_KEY_CHECKS=0;

TRUNCATE TABLE tableName;

SET FOREIGN_KEY_CHECKS=1;

二、列表的查询方法

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

+----+--------+---------+--------------+-------+

| id | name | dorm | addr | score |

+----+--------+---------+--------------+-------+

| 1 | 科比 | 6号楼 | 湖北罗田 | 67 |

| 2 | 毛线 | 6号楼 | 湖北孝感 | 78 |

| 3 | 黄鱼 | 5号楼 | 湖北罗田 | 75 |

| 4 | 子豪 | 6号楼 | 江苏扬州 | 45 |

| 5 | 星爷 | 5号楼 | 湖北孝感 | 1 |

| 6 | 代鹏 | 5号楼 | 江苏盐城 | 85 |

| 7 | 子栋 | 6号楼 | 湖北洪湖 | 95 |

| 8 | 周攀 | 6号楼 | 湖北武穴 | 56 |

| 9 | 大爷 | 5号楼 | 湖北通城 | 82 |

| 10 | 小鸟 | 6号楼 | 湖北襄阳 | 38 |

+----+--------+---------+--------------+-------+

被查询的表

(1)where

条件判断

mysql> select * from test_info where score < 60;  #查询分数低于60分

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

+----+--------+---------+--------------+-------+

| id | name | dorm | addr | score |

+----+--------+---------+--------------+-------+

| 4 | 子豪 | 6号楼 | 江苏扬州 | 45 |

| 5 | 星爷 | 5号楼 | 湖北孝感 | 1 |

| 8 | 周攀 | 6号楼 | 湖北武穴 | 56 |

| 10 | 小鸟 | 6号楼 | 湖北襄阳 | 38 |

+----+--------+---------+--------------+-------+

分数低于60分

mysql> select * from test_infowhere score  > 70 and addr = "湖北罗田";  #分数大于70,而且还是罗田的

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

mysql> select * from test_info where score > 70 and addr ="湖北罗田";+----+--------+---------+--------------+-------+

| id | name | dorm | addr | score |

+----+--------+---------+--------------+-------+

| 3 | 黄鱼 | 5号楼 | 湖北罗田 | 75 |

+----+--------+---------+--------------+-------+

1 row in set (0.00 sec)

where...and...示例

mysql> select * from test_info where dorm = "5号楼" or score > 90;  #分数大于90或者在5号楼住

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

mysql> select * from test_info where dorm = "5号楼" or score > 90;+----+--------+---------+--------------+-------+

| id | name | dorm | addr | score |

+----+--------+---------+--------------+-------+

| 3 | 黄鱼 | 5号楼 | 湖北罗田 | 75 |

| 5 | 星爷 | 5号楼 | 湖北孝感 | 1 |

| 6 | 代鹏 | 5号楼 | 江苏盐城 | 85 |

| 7 | 子栋 | 6号楼 | 湖北洪湖 | 95 |

| 9 | 大爷 | 5号楼 | 湖北通城 | 82 |

+----+--------+---------+--------------+-------+

5 rows in set (0.00 sec)

where...or...示例

mysql> select * from test_infowhere scorebetween 60 and 80;   #分数在60到80之间

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

mysql> select * from test_info where score between 60 and 80;+----+--------+---------+--------------+-------+

| id | name | dorm | addr | score |

+----+--------+---------+--------------+-------+

| 1 | 科比 | 6号楼 | 湖北罗田 | 67 |

| 2 | 毛线 | 6号楼 | 湖北孝感 | 78 |

| 3 | 黄鱼 | 5号楼 | 湖北罗田 | 75 |

+----+--------+---------+--------------+-------+

3 rows in set (0.00sec)

#注意between包含两边

where...between...and

mysql> select * from test_infowhere addrin ("湖北罗田","湖北孝感");   #某个字段在某一个选择之内

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

mysql> select * from test_info where addr in("湖北罗田","湖北孝感");+----+--------+---------+--------------+-------+

| id | name | dorm | addr | score |

+----+--------+---------+--------------+-------+

| 1 | 科比 | 6号楼 | 湖北罗田 | 67 |

| 2 | 毛线 | 6号楼 | 湖北孝感 | 78 |

| 3 | 黄鱼 | 5号楼 | 湖北罗田 | 75 |

| 5 | 星爷 | 5号楼 | 湖北孝感 | 1 |

+----+--------+---------+--------------+-------+

4 rows in set (0.00sec)

mysql> select * from test_info where addr not in("湖北罗田","湖北孝感");+----+--------+---------+--------------+-------+

| id | name | dorm | addr | score |

+----+--------+---------+--------------+-------+

| 4 | 子豪 | 6号楼 | 江苏扬州 | 45 |

| 6 | 代鹏 | 5号楼 | 江苏盐城 | 85 |

| 7 | 子栋 | 6号楼 | 湖北洪湖 | 95 |

| 8 | 周攀 | 6号楼 | 湖北武穴 | 56 |

| 9 | 大爷 | 5号楼 | 湖北通城 | 82 |

| 10 | 小鸟 | 6号楼 | 湖北襄阳 | 38 |

+----+--------+---------+--------------+-------+

6 rows in set (0.00 sec)

where....[not]in.....

模糊查询(like)

mysql> select name from test_info where addrlike '__罗田';  #查询罗田

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

mysql> select name from test_info where addr like '__罗田';+--------+

| name |

+--------+

| 科比 |

| 黄鱼 |

+--------+

2 rows in set (0.00 sec)

like模糊查询

(2)排序(order by)

mysql> select * from test_info order by score;  #按照成绩升序

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

mysql> select * from test_info order byscore;+----+--------+---------+--------------+-------+

| id | name | dorm | addr | score |

+----+--------+---------+--------------+-------+

| 5 | 星爷 | 5号楼 | 湖北孝感 | 1 |

| 10 | 小鸟 | 6号楼 | 湖北襄阳 | 38 |

| 4 | 子豪 | 6号楼 | 江苏扬州 | 45 |

| 8 | 周攀 | 6号楼 | 湖北武穴 | 56 |

| 1 | 科比 | 6号楼 | 湖北罗田 | 67 |

| 3 | 黄鱼 | 5号楼 | 湖北罗田 | 75 |

| 2 | 毛线 | 6号楼 | 湖北孝感 | 78 |

| 9 | 大爷 | 5号楼 | 湖北通城 | 82 |

| 6 | 代鹏 | 5号楼 | 江苏盐城 | 85 |

| 7 | 子栋 | 6号楼 | 湖北洪湖 | 95 |

+----+--------+---------+--------------+-------+

10 rows in set (0.00 sec)

升序

mysql> select * from test_info order by score desc;  #降序

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

mysql> select * from test_info order by score desc;+----+--------+---------+--------------+-------+

| id | name | dorm | addr | score |

+----+--------+---------+--------------+-------+

| 7 | 子栋 | 6号楼 | 湖北洪湖 | 95 |

| 6 | 代鹏 | 5号楼 | 江苏盐城 | 85 |

| 9 | 大爷 | 5号楼 | 湖北通城 | 82 |

| 2 | 毛线 | 6号楼 | 湖北孝感 | 78 |

| 3 | 黄鱼 | 5号楼 | 湖北罗田 | 75 |

| 1 | 科比 | 6号楼 | 湖北罗田 | 67 |

| 8 | 周攀 | 6号楼 | 湖北武穴 | 56 |

| 4 | 子豪 | 6号楼 | 江苏扬州 | 45 |

| 10 | 小鸟 | 6号楼 | 湖北襄阳 | 38 |

| 5 | 星爷 | 5号楼 | 湖北孝感 | 1 |

+----+--------+---------+--------------+-------+

降序

mysql> select * from test_info order by score desc limit 3; #取成绩的前三名

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

mysql> select * from test_info order by score desc limit 3;+----+--------+---------+--------------+-------+

| id | name | dorm | addr | score |

+----+--------+---------+--------------+-------+

| 7 | 子栋 | 6号楼 | 湖北洪湖 | 95 |

| 6 | 代鹏 | 5号楼 | 江苏盐城 | 85 |

| 9 | 大爷 | 5号楼 | 湖北通城 | 82 |

+----+--------+---------+--------------+-------+

取前几个

(3)分组(group by)

mysql> select * from test_info group by dorm;  #按照宿舍分组

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

mysql> select * from test_info group bydorm;+----+--------+---------+--------------+-------+

| id | name | dorm | addr | score |

+----+--------+---------+--------------+-------+

| 3 | 黄鱼 | 5号楼 | 湖北罗田 | 75 |

| 1 | 科比 | 6号楼 | 湖北罗田 | 67 |

+----+--------+---------+--------------+-------+

2 rows in set (0.00 sec)

分组

mysql> select *,group_concat(name) from test_info group by dorm;  #查看组成员

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

mysql> select *,group_concat(name) from test_info group bydorm;+----+--------+---------+--------------+-------+-------------------------------------------+

| id | name | dorm | addr | score | group_concat(name) |

+----+--------+---------+--------------+-------+-------------------------------------------+

| 6 | 代鹏 | 5号楼 | 江苏盐城 | 85 | 代鹏,大爷,黄鱼,星爷 |

| 8 | 周攀 | 6号楼 | 湖北武穴 | 56 | 周攀,子栋,科比,子豪,毛线,小鸟 |

+----+--------+---------+--------------+-------+-------------------------------------------+

2 rows in set (0.00 sec)

group_concat()

(4)函数

max():最大值

mysql> select max(score) from test_info;  #查询最高分

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

mysql> select max(score) fromtest_info;+------------+

| max(score) |

+------------+

| 95 |

+------------+

1 row in set (0.00 sec)

最高分

mysql> ) select * from test_info where score = (select max(score) from test_info);  #最高分的学员信息

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

mysql> select * from test_info where score = (select max(score) fromtest_info);+----+--------+---------+--------------+-------+

| id | name | dorm | addr | score |

+----+--------+---------+--------------+-------+

| 7 | 子栋 | 6号楼 | 湖北洪湖 | 95 |

+----+--------+---------+--------------+-------+

1 row in set (0.00 sec)

最高分的学员信息

min():最小值

mysql> select min(score) from test_info;  #查询最低分

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

mysql> select min(score) fromtest_info;+------------+

| min(score) |

+------------+

| 1 |

+------------+

1 row in set (0.00 sec)

查询最低分

sum():求和

mysql> select sum(score) from test_info;  #成绩总和

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

mysql> select sum(score) fromtest_info;+------------+

| sum(score) |

+------------+

| 622 |

+------------+

1 row in set (0.00 sec)

求和

avg():平均值

mysql> select sum(score) from test_info;  #求平均值

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

mysql> select sum(score) fromtest_info;+------------+

| sum(score) |

+------------+

| 622 |

+------------+

1 row in set (0.00 sec)

求平均值

count():计数

mysql> select count(dorm) from test_info;  #统计行数

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

mysql> select count(dorm) fromtest_info;+-------------+

| count(dorm) |

+-------------+

| 10 |

+-------------+

1 row in set (0.00 sec)

统计

5.去重

在MySQL中去重有两种方法DISTINCT和group by

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

mysql> select * fromtest_info;+----+--------+---------+--------------+-------+

| id | name | dorm | addr | score |

+----+--------+---------+--------------+-------+

| 1 | 科比 | 6号楼 | 湖北罗田 | 67 |

| 2 | 毛线 | 6号楼 | 湖北孝感 | 78 |

| 3 | 黄鱼 | 5号楼 | 湖北罗田 | 75 |

| 4 | 子豪 | 6号楼 | 江苏扬州 | 45 |

| 5 | 星爷 | 5号楼 | 湖北孝感 | 1 |

| 6 | 代鹏 | 5号楼 | 江苏盐城 | 85 |

| 7 | 子栋 | 6号楼 | 湖北洪湖 | 95 |

| 8 | 周攀 | 6号楼 | 湖北武穴 | 56 |

| 9 | 大爷 | 5号楼 | 湖北通城 | 82 |

| 10 | 小鸟 | 6号楼 | 湖北襄阳 | 38 |

+----+--------+---------+--------------+-------+

10 rows in set (0.00 sec)

原表

将地址栏这个字段去重

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

mysql> select addr from test_info group byaddr;+--------------+

| addr |

+--------------+

| 江苏扬州 |

| 江苏盐城 |

| 湖北孝感 |

| 湖北武穴 |

| 湖北洪湖 |

| 湖北罗田 |

| 湖北襄阳 |

| 湖北通城 |

+--------------+

8 rows in set (0.00 sec)

group by去重

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

mysql> select addr from test_info group byaddr;+--------------+

| addr |

+--------------+

| 江苏扬州 |

| 江苏盐城 |

| 湖北孝感 |

| 湖北武穴 |

| 湖北洪湖 |

| 湖北罗田 |

| 湖北襄阳 |

| 湖北通城 |

+--------------+

8 rows in set (0.00 sec)

DISTINCT去重

6.分页:limit

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

mysql> select * fromtest_info;+----+--------+---------+--------------+-------+

| id | name | dorm | addr | score |

+----+--------+---------+--------------+-------+

| 1 | 科比 | 6号楼 | 湖北罗田 | 67 |

| 2 | 毛线 | 6号楼 | 湖北孝感 | 78 |

| 3 | 黄鱼 | 5号楼 | 湖北罗田 | 75 |

| 4 | 子豪 | 6号楼 | 江苏扬州 | 45 |

| 5 | 星爷 | 5号楼 | 湖北孝感 | 1 |

| 6 | 代鹏 | 5号楼 | 江苏盐城 | 85 |

| 7 | 子栋 | 6号楼 | 湖北洪湖 | 95 |

| 8 | 周攀 | 6号楼 | 湖北武穴 | 56 |

| 9 | 大爷 | 5号楼 | 湖北通城 | 82 |

| 10 | 小鸟 | 6号楼 | 湖北襄阳 | 38 |

+----+--------+---------+--------------+-------+

10 rows in set (0.00sec)

mysql> select * from test_info limit 0,3;+----+--------+---------+--------------+-------+

| id | name | dorm | addr | score |

+----+--------+---------+--------------+-------+

| 1 | 科比 | 6号楼 | 湖北罗田 | 67 |

| 2 | 毛线 | 6号楼 | 湖北孝感 | 78 |

| 3 | 黄鱼 | 5号楼 | 湖北罗田 | 75 |

+----+--------+---------+--------------+-------+

3 rows in set (0.00sec)

mysql> select * from test_info limit 3,3;+----+--------+---------+--------------+-------+

| id | name | dorm | addr | score |

+----+--------+---------+--------------+-------+

| 4 | 子豪 | 6号楼 | 江苏扬州 | 45 |

| 5 | 星爷 | 5号楼 | 湖北孝感 | 1 |

| 6 | 代鹏 | 5号楼 | 江苏盐城 | 85 |

+----+--------+---------+--------------+-------+

3 rows in set (0.00sec)

mysql> select * from test_info limit 6,4;+----+--------+---------+--------------+-------+

| id | name | dorm | addr | score |

+----+--------+---------+--------------+-------+

| 7 | 子栋 | 6号楼 | 湖北洪湖 | 95 |

| 8 | 周攀 | 6号楼 | 湖北武穴 | 56 |

| 9 | 大爷 | 5号楼 | 湖北通城 | 82 |

| 10 | 小鸟 | 6号楼 | 湖北襄阳 | 38 |

+----+--------+---------+--------------+-------+

4 rows in set (0.00 sec)

分页实例

limit需要有两个参数,第一个是开始的行数,第一行是从0开始,第二个参数是显示的行数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值