数据库历史

https://www.omegaxyz.com/2018/03/26/brief_history_of_database/

数据库连接工具使用

登录信息

外网地址:rm-bp188nr95fk4l9545ao.mysql.rds.aliyuncs.com
端口号:3306
用户名: fanmao60
密码:ABCfanmao60
数据库:fanmao60


  1. 打开navcait 工具。

image.png

  1. 输入对应的信息

image.png

Mysql单表查询

查询所有的数据

image.png
新建查询
image.png

  1. -- 查询表中所有的内容
  2. select * from checkin;

image.png

  • select 表示查询
    • 表示表中所有的列
  • from 固定写法, 从 ** 表中查询
  • checkin 表名

查询指定列的内容

  1. -- 查看姓名,时间
  2. select name,checkin_time from checkin;

指定字段 select 后跟 对应列名 多个列名之间使用 英文逗号,隔开。

  1. -- 查看表中的姓名
  2. select name from checkin;

总结

  1. select … from … select,from 数据库中关键字
  2. sql中不区分大小写;

下面两条sql语句都可以正常执行

  1. select name from checkin;
  2. SELECT CHECKIN_TIME FROM CHECKIN;

练习

image.png

  1. -- 查询 tb_city 表中所有的内容
  2. SELECT * from tb_city;
  3. -- 查询 tb_city 表中所有的城市
  4. select city from tb_city;

条件查询

查询 checkin 表中 张三的签到记录。

  1. select * from checkin
  2. where name="张三";

where 条件查询。

  • where 要过滤的条件。
  • name=”张三” name列的值为张三
  1. -- 查询张三所有签到时间。
  2. select checkin_time from checkin
  3. WHERE name = "张三";

where 条件查询还支持一些其它的操作

符号 说明 备注
= 值相等
> 大于
>= 大于等于
< 小于
<= 小于等于
<> 或者 != 不等于
in 在 … 范围之内
between … and.. 区间 条件为数字

1、 查询checkin 表不是张三的其它人员的签到信息

  1. select * FROM checkin WHERE name <> "张三";
  2. SELECT * from checkin where name != "张三";
  1. -- 1. 查询students 表中的所有同学的语文成绩, 输出内容: 姓名,课程,成绩,性别
  2. SELECT username,course,score,sex from students
  3. WHERE course="语文";
  4. -- 2. 查看成绩大于60同学
  5. SELECT * from students
  6. WHERE score > 60;
  7. -- 3. 查看成绩小于 60
  8. SELECT * from students
  9. WHERE score < 60;
  10. -- 4. 查看成绩为 60-80 之间的同学信息 between and
  11. select * from students
  12. WHERE score BETWEEN 60 and 80;
  13. -- 5 查看成绩为 6080 100的人员信息
  14. select * from students
  15. WHERE score in (60,80,100);
  1. -- 1.查找 所有的女生信息
  2. SELECT * FROM students WHERE sex="女";
  3. -- 2. 查找 年龄为 30-50 之间的学生信息
  4. SELECT * from students WHERE age BETWEEN 30 and 50;
  5. -- 3. 查看所有同学的 语文,体育成绩
  6. SELECT * from students WHERE course in ("语文","体育");

and 并且运算

在where 条件查询的时候,当需要多个条件同时成立。中间使用and连接起来。
查看 年龄在20-30的男生信息。
有两个条件

  1. 年龄 20-30
  2. 性别为男
    1. select * from students
    2. where
    3. age between 20 and 30 -- 第一个条件
    4. and -- and 表示并且
    5. sex = "男"; -- 第二个条件

or 或者

多个条件中只要有一个满足即可, 使用 or
查询 年龄在 20-30之间
或者 成绩在 60-100之间的学生信息。

  1. select * from students
  2. where age between 20 and 30
  3. or -- 或者
  4. score between 60 and 100;

练习

  1. -- 1. 查询语文或者数学成绩在 60-80 之间的学生信息
  2. -- a. 语文 60-80
  3. -- b. 数学 60-80 或者的关系
  4. SELECT * from students
  5. WHERE
  6. (course="语文" AND score BETWEEN 60 AND 80)
  7. OR
  8. (course="数学" AND score BETWEEN 60 AND 80);
  9. -- 第二种写法
  10. select * from students where course in("语文","数学") and score between 60 and 80;
  11. -- 2. 查询性别为男,年龄在182025
  12. -- 或者 体育成绩在60分以上的学生信息;
  13. -- 性别为男,年龄在182025
  14. -- 体育成绩在60分以上
  15. SELECT * FROM students
  16. WHERE
  17. (sex = "男" and age in (18,20,25))
  18. OR
  19. (course="体育" and score > 60);

not 表示相反

  1. -- 语文成绩 不在 60-80 之间
  2. select * from students
  3. WHERE course="语文" and score not BETWEEN 60 AND 80;
  1. -- 查询 年龄不是 1820 的同学信息
  2. select * from students
  3. WHERE age not in (18,20);

is Null 列的内容为Null

  1. -- 查询 age 列为Null的信息
  2. select * from students
  3. where age is null;
  4. -- 查询 age列不为Null的学生信息
  5. SELECT * from students
  6. WHERE age is not NULL;

like 模糊查询

%匹配任意字符

  1. -- 模糊查询,查询城市名第一个字为丽的所有城市信息
  2. SELECT * FROM tb_city
  3. WHERE city like "丽%";
  1. -- 1. 查询 城市名以 阿开头的所有城市信息
  2. SELECT * FROM tb_city
  3. WHERE city like "阿%";
  4. -- 2. 查询 城市名中 包含 字的所有城市信息
  5. SELECT * from tb_city
  6. WHERE city like "%州%";
  1. -- 查询 checkin 表中 2021730 的所有考勤信息
  2. SELECT * FROM checkin
  3. WHERE checkin_time LIKE "2021-07-30%";
  1. -- 查询 checkin 表中 2021728日,2021730 两天的考勤;
  2. select * from checkin
  3. WHERE checkin_time LIKE "2021-07-28%"
  4. OR
  5. checkin_time LIKE "2021-07-30%";

_匹配1个字符

一个_ 只能匹配 1个字符。

  1. -- 查询 阿开头 城市名总共为 3 个字的城市信息
  2. select * from tb_city
  3. WHERE city LIKE "阿__";
  1. -- 1. 查询所有城市名中 并且城市名中包含有 或者 或者 的城市 4个字的城市信息
  2. SELECT * from tb_city
  3. WHERE
  4. (city LIKE "%山%"
  5. OR
  6. city LIKE "%河%"
  7. OR
  8. city LIKE "%岛%")
  9. AND -- 表示并且
  10. city LIKE "____";

作业

备注: 如果某一题 超过20分钟还没有做出来, 先 挂起。

Mysql 作业

  1. 查询所有同学的所有信息;
  2. 查询所有男生同学的信息;
  3. 查询所有女生同学的 体育课程信息;
  4. 查询所有数学课成绩大于60分同学的信息;
  5. 查询年龄在25岁以下的男生同学的体育成绩; ```sql SELECT * from students;

SELECT * from students where sex = “男”;

SELECT * from students where sex = “女” and course=”体育”;

SELECT * from students where course=”数学” and score > 60;

SELECT * from students where age <25 and sex =”男” and course=”体育”;

  1. 6. 查询 年龄在181923 岁的所有同学成绩;
  2. 6. 查询 姓名为2个字的同学的体育成绩;
  3. 6. 查询 姓名为2个字的男同学的语文成绩和数学成绩;
  4. ```sql
  5. SELECT * FROM students WHERE age in (18,19,23);
  6. SELECT * FROM students WHERE username like "__"
  7. and course="体育";
  8. SELECT * FROM students WHERE username like "__" and sex="男"
  9. and (course="语文"or course="数学");
  1. 查询 语文和数学成绩都大于70分的学员信息;

Linux作业

  1. 进入到/tmp 目录下
  2. 删除 /tmp 目录下所有的文件
  3. 复制 /var/log/messages 文件到 /tmp目录下
  4. 查看 /tmp 目录,此时应该有个 messages文件
  5. 统计 messages 文件中有多少行内容,多少个单词,多少字节

vi 命令练习

  1. 在 /tmp 目录下创建一个文件 taofei.log
  2. 文件内容输入如下内容

    1. Linux Day01 commands
    2. mkdir
    3. touch
    4. mv
    5. cp
    6. rm
    7. vi
    8. cat
    9. head
    10. tail
    11. wc
    12. more
    13. less
  3. 查看 taofei.log 文件的前5行

  4. 查看 taofei.log 的后5行
  5. 查看 taofei.log 的 第6行到第10行 内容