数据库历史
https://www.omegaxyz.com/2018/03/26/brief_history_of_database/
数据库连接工具使用
登录信息
外网地址:rm-bp188nr95fk4l9545ao.mysql.rds.aliyuncs.com
端口号:3306
用户名: fanmao60
密码:ABCfanmao60
数据库:fanmao60
- 打开navcait 工具。
- 输入对应的信息
Mysql单表查询
查询所有的数据
新建查询
-- 查询表中所有的内容
select * from checkin;
- select 表示查询
- 表示表中所有的列
- from 固定写法, 从 ** 表中查询
- checkin 表名
查询指定列的内容
-- 查看姓名,时间
select name,checkin_time from checkin;
指定字段 select 后跟 对应列名 多个列名之间使用 英文逗号,
隔开。
-- 查看表中的姓名
select name from checkin;
总结
- select … from … select,from 数据库中关键字
- sql中不区分大小写;
下面两条sql语句都可以正常执行
select name from checkin;
SELECT CHECKIN_TIME FROM CHECKIN;
练习
-- 查询 tb_city 表中所有的内容
SELECT * from tb_city;
-- 查询 tb_city 表中所有的城市
select city from tb_city;
条件查询
查询 checkin 表中 张三的签到记录。
select * from checkin
where name="张三";
where 条件查询。
- where 要过滤的条件。
- name=”张三” name列的值为张三
-- 查询张三所有签到时间。
select checkin_time from checkin
WHERE name = "张三";
where 条件查询还支持一些其它的操作
符号 | 说明 | 备注 |
---|---|---|
= | 值相等 | |
> | 大于 | |
>= | 大于等于 | |
< | 小于 | |
<= | 小于等于 | |
<> 或者 != | 不等于 | |
in | 在 … 范围之内 | |
between … and.. | 区间 | 条件为数字 |
1、 查询checkin 表不是张三的其它人员的签到信息
select * FROM checkin WHERE name <> "张三";
SELECT * from checkin where name != "张三";
-- 1. 查询students 表中的所有同学的语文成绩, 输出内容: 姓名,课程,成绩,性别
SELECT username,course,score,sex from students
WHERE course="语文";
-- 2. 查看成绩大于60同学
SELECT * from students
WHERE score > 60;
-- 3. 查看成绩小于 60
SELECT * from students
WHERE score < 60;
-- 4. 查看成绩为 60-80 之间的同学信息 between and
select * from students
WHERE score BETWEEN 60 and 80;
-- 5 查看成绩为 60,80, 100的人员信息
select * from students
WHERE score in (60,80,100);
-- 1.查找 所有的女生信息
SELECT * FROM students WHERE sex="女";
-- 2. 查找 年龄为 30-50 之间的学生信息
SELECT * from students WHERE age BETWEEN 30 and 50;
-- 3. 查看所有同学的 语文,体育成绩
SELECT * from students WHERE course in ("语文","体育");
and 并且运算
在where 条件查询的时候,当需要多个条件同时成立。中间使用and连接起来。
查看 年龄在20-30的男生信息。
有两个条件
- 年龄 20-30
- 性别为男
select * from students
where
age between 20 and 30 -- 第一个条件
and -- and 表示并且
sex = "男"; -- 第二个条件
or 或者
多个条件中只要有一个满足即可, 使用 or
查询 年龄在 20-30之间
或者 成绩在 60-100之间的学生信息。
select * from students
where age between 20 and 30
or -- 或者
score between 60 and 100;
练习
-- 1. 查询语文或者数学成绩在 60-80 之间的学生信息
-- a. 语文 60-80
-- b. 数学 60-80 或者的关系
SELECT * from students
WHERE
(course="语文" AND score BETWEEN 60 AND 80)
OR
(course="数学" AND score BETWEEN 60 AND 80);
-- 第二种写法
select * from students where course in("语文","数学") and score between 60 and 80;
-- 2. 查询性别为男,年龄在18,20,25
-- 或者 体育成绩在60分以上的学生信息;
-- 性别为男,年龄在18,20,25
-- 体育成绩在60分以上
SELECT * FROM students
WHERE
(sex = "男" and age in (18,20,25))
OR
(course="体育" and score > 60);
not 表示相反
-- 语文成绩 不在 60-80 之间
select * from students
WHERE course="语文" and score not BETWEEN 60 AND 80;
-- 查询 年龄不是 18,20 的同学信息
select * from students
WHERE age not in (18,20);
is Null 列的内容为Null
-- 查询 age 列为Null的信息
select * from students
where age is null;
-- 查询 age列不为Null的学生信息
SELECT * from students
WHERE age is not NULL;
like 模糊查询
%匹配任意字符
-- 模糊查询,查询城市名第一个字为丽的所有城市信息
SELECT * FROM tb_city
WHERE city like "丽%";
-- 1. 查询 城市名以 阿开头的所有城市信息
SELECT * FROM tb_city
WHERE city like "阿%";
-- 2. 查询 城市名中 包含 州 字的所有城市信息
SELECT * from tb_city
WHERE city like "%州%";
-- 查询 checkin 表中 2021年7月30日 的所有考勤信息
SELECT * FROM checkin
WHERE checkin_time LIKE "2021-07-30%";
-- 查询 checkin 表中 2021年7月28日,2021年7月30日 两天的考勤;
select * from checkin
WHERE checkin_time LIKE "2021-07-28%"
OR
checkin_time LIKE "2021-07-30%";
_匹配1个字符
一个_
只能匹配 1个字符。
-- 查询 阿开头 城市名总共为 3 个字的城市信息
select * from tb_city
WHERE city LIKE "阿__";
-- 1. 查询所有城市名中 并且城市名中包含有 岛 或者 河 或者 山 的城市 4个字的城市信息
SELECT * from tb_city
WHERE
(city LIKE "%山%"
OR
city LIKE "%河%"
OR
city LIKE "%岛%")
AND -- 表示并且
city LIKE "____";
作业
Mysql 作业
- 查询所有同学的所有信息;
- 查询所有男生同学的信息;
- 查询所有女生同学的 体育课程信息;
- 查询所有数学课成绩大于60分同学的信息;
- 查询年龄在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=”体育”;
6. 查询 年龄在18,19,23 岁的所有同学成绩;
6. 查询 姓名为2个字的同学的体育成绩;
6. 查询 姓名为2个字的男同学的语文成绩和数学成绩;
```sql
SELECT * FROM students WHERE age in (18,19,23);
SELECT * FROM students WHERE username like "__"
and course="体育";
SELECT * FROM students WHERE username like "__" and sex="男"
and (course="语文"or course="数学");
- 查询 语文和数学成绩都大于70分的学员信息;
Linux作业
- 进入到/tmp 目录下
- 删除 /tmp 目录下所有的文件
- 复制 /var/log/messages 文件到 /tmp目录下
- 查看 /tmp 目录,此时应该有个 messages文件
- 统计 messages 文件中有多少行内容,多少个单词,多少字节
vi 命令练习
- 在 /tmp 目录下创建一个文件 taofei.log
文件内容输入如下内容
Linux Day01 commands
mkdir
touch
mv
cp
rm
vi
cat
head
tail
wc
more
less
查看 taofei.log 文件的前5行
- 查看 taofei.log 的后5行
- 查看 taofei.log 的 第6行到第10行 内容