SQL入门学习笔记(二)

运行SQL,查询

Posted by 婷 on March 15, 2020 本文总阅读量

运行SQL

下载廖雪峰老师的脚本,然后通过命令导入到自己的MySQL

$ mysql -u root -p <init-test-data.sql

6.png

在输入端输入

show databases;
use test;

1.png

现在就可以开始进行练习啦

查询

查询基本用的是SELECT语句。注意在SQL语言中是不区分大小写的。

基本查询

格式:select     列1,列2    from     选择的表

显示所有的列:select * from students;

2.png

显示name姓名,gender性别这两列的信息:select name,gender from students;

3.png

命令行敲习惯了老是忘记加上分号

条件查询

加上where语句

找出表中score大于80分的记录,显示名字跟分数:select name,score from students where score>80;

4.png

找出分数大于80的男生:select name,gender,score from students where score>80 AND gender='M';

5.png

找出分数小于70或者大于90的男生:

select name,score from students where (score<70 or score>90) AND gender='M';

6.png

(怎么感觉这个查询出来的结果有种莫名其妙的喜感):sweat_smile:

注意:判断不相等是 where score <>80

投影查询

  • 返回指定的列(其实在前面就已经写过了)

  • 为列起个别名,便于显示,比如将上面的那位同学的name字段改为person字段显示

    select name person,score from students where (score<70 or score>90) AND gender='M';

    7.png

排序查询

排序查询主要用到的是order by语句,默认升序。排序采用字典排序的方法,有点像Linuxsort命令。

  • 按照升序将成绩进行排名,显示名字跟分数:

    select name,score from students order by score;

    8.png

  • 按照降序来显示,在末尾加上desc

    select name,score from students order by score desc;

    9.png

  • 如果结合where使用的话,order放在where后面。(可以理解为where放前面可以先过滤掉一些不要的记录,效率更快,当然这只是个人理解)

分页查询

如果记录太多想分页显示的话,利用这个limitselect结合,有点像linuxmore命令。

SELECT * FROM 表名 LIMIT 3 OFFSET 0

这里的LIMIT 3表示屏幕上每次最多显示3条记录

OFFSET x表示我要从距离第1条记录有x条记录的那一行开始查看

所以上面这条命令显示的是第1条跟第3条的记录

如果显示要显示第2条到第4条的记录则应该是select * from students limit 3 offset 1;

10.png