MySQL 常用命令小结1

下面的所有基本操作都是基于这两张表:
第一张表是成绩表(grade),记录了学号(id),总分(score),学分(credit),成绩(grade),排名(rank)。
第二张表是id和姓名的对应表(id_name),记录了学号(id),和姓名(name)。

表的数据格式:

MySQL 常用命令小结1_第1张图片
2017-05-26 19-42-49屏幕截图.png
MySQL 常用命令小结1_第2张图片
2017-05-26 19-43-18屏幕截图.png
1. 检索数据

1.1 查询单列,多列,所有列

#单列
select id from grade;
#多列
select id,score,rank from grade;
#所有列
select * from grade;

1.2 检索不同的值(去掉相同的值)
比如说,在查询分数的时候,有很多同学都考了相同分数,如果直接select的话,就会出现很多一样的结果,那么如果在查询里面去除重复的结果呢?

#distinct
select distinct score from grade;

1.3 限制查询的长度

#limit 表示只返回前五条查询结果
select * from grade limit 5;
2. 排序检索数据

2.1 排序单个列的数据
要求:对成绩表(grade)排序,按照rank从小到大排序

select * from grade order by rank asc;

2.2 排序多个列的数据
要求:对成绩表(grade)排序,按照分数排名,如果分数相同,学号大的排在前面

select * from grade order by grade asc ,id desc;
3. 过滤数据

3.1 where子句
要求:查找学号是3120610046的成绩

select * from grade where id=3120610046

要求2:查询学号大于3120610046的成绩

select * from grade where id >3120610046

3.2. Or 和And 条件
要求:查询分数大于80,并且学号小于3120610030的学生

select * from grade where id<3120610030 and grade >80;

要求2:查询分数大于90或者是分数小于60的学生

selectr * from grade where grade>80 or grade < 60;

3.3 IN 和 NOT IN 操作符

select * from grade where id in (3120610046,3120610047);

3.4 使用通配符

#%表示匹配的任意个数的字符
select * from id_name where name='xxx%' 

4. 拼接字段

比如说需要学号后面紧跟着姓名,以这样的方式3120610046(xx)的方式进行查询

select  concat(id,'(',name,')') from id_name ;
5. 执行计算

比如说,要查询分数,学分,然后是分数乘以学分的结果

select id, grade,score,grade*score from grade;
6. 使用函数处理数据

sql里面的函数大概分为三种:

  1. 文本处理函数
  2. 时间处理函数
  3. 数字处理函数

6.1 文本处理函数
常用的文本处理的函数:
1.字符串大小写转换
2.返回字符串的长度
3.去掉字符串的空格

6.2时间和日期处理函数
1.now() 返回当前的时间

6.3 数字处理函数
1.返回一个绝对值函数
2.返回一个sin,cos,exp等数值计算的函数

6.4 汇总数据的函数
1.avg()函数,返回某列的平均值
2.count()函数,返回某列的行数
3.max()函数,返回某列的最大值
4.min()函数,返回某列的最小值
5.sum()函数,返回某列的之和
注意:这里指的是列

要求:统计一下学生里面的平均成绩

select count(*) ,avg(grade) from grade;

7.外键
设表t1,t2中都有一个name字段,而且是t1的主键
那么如果设t2中的name为外键的话
向t2中添加数据的时候,如果name值不在t1之中就会报错

其他:
MySQL 的常用命令小结2 http://www.jianshu.com/p/2d3e43c6a6a5

你可能感兴趣的:(MySQL 常用命令小结1)