Linux云计算训练营笔记day09(MySQL数据库)

Linux云计算训练营笔记day09(MySQL数据库)

目录

  • Linux云计算训练营笔记day09(MySQL数据库)
    • 外键约束
    • 数据的导入和导出
      • 数据的导出
      • 数据的导入
    • DQL 数据查询语言
      • 查指定字段
      • 查所有字段
      • where 过滤条件
        • and 和 or
        • in 和 not in
        • between...and...
      • distinct
      • 练习:
        • like 模糊查询
        • NULL
      • order by
      • 分页查询

主键约束
PRIMARY KEY 非空 唯一

外键约束

FOREIGN KEY 声明了外键的列上插入的值必须在另一个表的主键上出现过

-- Active: 1747188627686@@127.0.0.1@3306@tedu
CREATE DATABASE job CHARSET=utf8;use job;-- 部门表 dept
CREATE TABLE dept(did INT PRIMARY KEY AUTO_INCREMENT,dname VARCHAR(10) UNIQUE
);INSERT INTO dept VALUES(10,"研发部");
INSERT INTO dept VALUES(20,"运营部");
INSERT INTO dept VALUES(30,"市场部");SELECT * from dept;
-- 员工表 emp
CREATE Table emp(eid INT PRIMARY KEY AUTO_INCREMENT,ename VARCHAR(10) not NULL,birthday date,salary DOUBLE(8,2),deptId INT,Foreign Key (deptId) REFERENCES dept(did)
);INSERT INTO emp VALUES(1,"王林","1999-11-17",8888.88,10);
INSERT INTO emp VALUES(2,"李木婉","2000-11-17",9999.99,20);SELECT * from emp;

数据的导入和导出

数据的导出

mysqldump -u用户名 -p密码 数据库的名字 > 文件的名字.sql
把当前电脑的数据库导入出去

mysqldump -uroot -proot job > job.sql

数据的导入

数据准备tedu.sql
点击如下链接可以下载
https://download.csdn.net/download/weixin_46411355/90842134

把别人的数据库导入进来

mysql -uroot -proot < tedu.sql

DQL 数据查询语言

查询 SELECT

查指定字段

select 字段1,字段2 from 表; 查指定字段

查所有字段

select * from 表; 查所有字段

where 过滤条件

where 过滤条件 ,会把满足的条件查询出来

use tedu;-- 查询所有字段
SELECT * FROM teacher;desc teacher;-- 查看指定字段
SELECT name,salary,gender,title from teacher;
-- 查看所有学生的名字,年龄,性别,生日
desc student;
SELECT name,age,gender,birth from student;-- 查看职称为 一级讲师 的老师的名字,职称,工资,年龄
select name,title,salary,age
from teacher
where title="一级讲师";-- 查看除了 刘苍松 以为的所有老师的名字,工资,奖金,职位
SELECT name,salary,comm,title
from teacher
where name <> "刘苍松";-- 查看 职位是 大队长 的学生的名字,年龄, 性别
SELECT name,age,gender 
FROM student
where job="大队长";-- 查看年龄在30岁以上(包含)的老师的名字,职称,工资,奖金
SELECT name,title,salary,comm
from teacher
where age>=30;-- 查看2层以上(包含)的班级有哪些,列出班级名字,所在楼层
SELECT name,floor
from class
WHERE floor>=2;
and 和 or

连接多个条件
and 与 并且 两边都为真结果才为真
or 或 两边都为假结果才是假

and的优先级高于or的
如果想提高优先级,可以使用( )

-- 查看 7岁 的 大队长 都有谁,列出这些学生的名字,年龄,性别和职称
SELECT name,age,gender,job
from student
where age=7 and job="大队长";-- 查看班级编号小于6的所有中队长都有谁,列出这些学生的名字,年龄,性别,班级编号和职位
SELECT name,age,gender,class_id,job
from student
WHERE class_id<6 and job="中队长";-- 查看所有一级讲师和三级讲师的名字,职称title,工资
SELECT name,title,salary
from teacher
where title="一级讲师" or title="三级讲师";-- 查看所有大队长, 中队长,小队长的名字,性别,年龄和职位job
SELECT name,gender,age,job
from student
WHERE job="大队长" or job="中队长" or job="小队长";-- 查看班级编号在6(包含)以下的所有大队长和中队长的名字,年龄,性别,班级和职位
SELECT name,age,gender,class_id,job
from student
WHERE class_id<=6 and (job="大队长" or job="中队长");desc student;
in 和 not in

in(列表) 表示字段的值在列表中
not in(列表) 表示字段的值不在列表中

-- 查看所有大队长,中队长和小队长的名字,性别,年龄和职位
SELECT name,gender,age,job
from student
WHERE job in ("大队长","中队长","小队长");-- 查看所有 一级讲师, 二级讲师,三级讲师的名字,职称,工资和性别
SELECT name,title,salary,gender
from teacher
WHERE title in ("一级讲师", "二级讲师","三级讲师");-- 查看除了一级讲师和二级讲师之外的所有老师的名字,职称,工资
SELECT name,title,salary
from teacher
WHERE title not in ("一级讲师", "二级讲师");
-- WHERE title <> "一级讲师" and title <> "二级讲师";-- 查看除了大队长,中队长,小队长之外的其他学生的名字,职位,性别和年龄
SELECT name,job,gender,age
from student
WHERE job not in ("大队长","中队长","小队长");
between…and…

between n and m 在n和m之间
not between n and m 不在n和m之间

-- 查看工资在2000到5000之间的老师的名字,性别,年龄,工资
SELECT name,gender,age,salary
from teacher
WHERE salary BETWEEN 2000 and 5000;-- 查看年龄在7岁到10岁的学生名字,性别,年龄
SELECT name,gender,age 
from student
WHERE age BETWEEN 7 and 10;-- 查看年龄在20到35之间的男老师都有谁,列出名字,性别,年龄,职称
SELECT name,gender,age,title
from teacher
WHERE age BETWEEN 20 and 35
and gender="男";-- 查看所有3-5层的班级都有哪些,列出班级名称和所在楼层
SELECT name,floor
from class
WHERE floor BETWEEN 3 and 5;-- 查看年龄在7到10岁以外的学生的名字,性别,年龄
SELECT name,gender,age 
from student
WHERE age not BETWEEN 7 and 10;

distinct

distinct 去除重复行
distinct用在select关键字之后,可以将结果中指定字段重复的记录去除
distinct后面可以指定多个字段

-- 查看老师都有哪些职称
SELECT DISTINCT title
from teacher;
-- 查看学生都有哪些职位
select DISTINCT job
from student;
-- 查看各年龄段的学生都有哪些职位
SELECT DISTINCT age,job
from student;

练习:

-- 1.查看负责课程编号为1的男老师都有谁?
SELECT name
from teacher
WHERE subject_id=1 and gender="男";-- 2.查看工资高于5000的女老师都有谁?
SELECT name
from teacher
WHERE salary>5000 and gender="女";-- 3.查看工资高于5000的男老师或所有女老师的工资?
SELECT name,gender,salary
from teacher
WHERE salary>5000 and gender="男" or gender="女"
;
-- 4.查看所有9岁学生的学习委员和语文课代表都有谁?
SELECT name,age,job
from student
WHERE age=9 and job in ("学习委员","语文课代表");-- 5.查看工资在6000到10000之间的老师以及具体工资
SELECT name,salary
from teacher
WHERE salary BETWEEN 6000 and 10000;-- 6.查看工资在4000到8000以外的老师以及具体工资
SELECT name,salary
from teacher
WHERE salary NOT BETWEEN 4000 and 8000;-- 7.查看老师负责的课程编号都有什么?
SELECT DISTINCT subject_id
from teacher;-- 8.查看所有女老师的职称都是什么?
SELECT DISTINCT title
from teacher
WHERE gender="女";-- 9.查看7-10岁男同学的职位都有哪些?
SELECT DISTINCT job
from student
WHERE age BETWEEN 7 and 10
AND gender="男";-- 10.查看一级讲师和二级讲师的奖金是多少?
SELECT name,comm 
from teacher
WHERE title IN ("一级讲师","二级讲师");-- 11.查看除了老板和总监的其他老师的工资和奖金是多少?
SELECT name,salary,comm
from teacher
WHERE title not in ("老板","总监");-- 12.查看 3年级2班 和 5年级3班 在哪个楼层?
SELECT name,floor 
from class
WHERE name in ("3年级2班","5年级3班");
like 模糊查询

两个通配符
_ 表示一个字符
% 表示任意多个字符 0-n
like %x% 只要包含x
like x% 表示以x开头 iphone%
like %x 表示以x结尾
like _x% 表示第二个字符是x
like %x_y 倒数第三个是x,最后一个是y
like x%y 表示以x开头,以y结尾
like __x% 表示第三个字符是x

- 查看名字中包含 晶 的老师都有谁
SELECT name
from teacher
WHERE name LIKE "%晶%";-- 查看姓张的学生都有谁
SELECT name 
from student
WHERE name LIKE "张%";-- 查看三个字名字中第二个字是 平 的学生都有谁
SELECT name
from student
WHERE name LIKE "_平_";-- 查看最后一个字是 晶 的老师都有谁
SELECT name 
from teacher
WHERE name LIKE "%晶";-- 1.查询名字姓 李 的学生姓名
SELECT *
from student
WHERE name LIKE "李%";-- 2.查询名字中包含 江 的学生姓名
SELECT *
from student
WHERE name LIKE "%江%";-- 3.查询名字以 郭 结尾的学生姓名
SELECT *
from student
WHERE name LIKE "%郭";-- 4.查询 9-12岁里是 课代表 的学生信息
SELECT *
from student
WHERE age BETWEEN 9 and 12
and job LIKE "%课代表";-- 5.查询名字第二个是 苗 的学生信息
SELECT * 
from student
WHERE name LIKE "_苗%";-- 6.查询姓 邱 的课代表都是谁
SELECT *
from student
WHERE name LIKE "邱%"
AND job LIKE "%课代表";-- 7.查看哪些学生是 课代表? 列出他的名字和职位
SELECT name,job
from student
WHERE job LIKE "%课代表";-- 8.查看所有的2班都在哪层?
SELECT *
from class
WHERE name LIKE "%2班";
NULL

在数据库中 所有字段默认值都是NULL,他表示不存在,是空
NULL不能算作一个值,应该是一种状态
判断NULL
is NULL 判断一个字段的值是否为空
is not NULL 判断一个字段的值是否为非空
不可以用 = 或者 <> 来判断NULL

-- 哪些老师没有奖金
SELECT *
from teacher
WHERE comm is NULL;-- 哪些老师有奖金  (哪些老师的奖金不为空 is NOT NULL)
SELECT *
from teacher
WHERE comm is NOT NULL and comm <> 0;

order by

把查询的结果按照指定的字段升序或降序
asc: 按照指定字段升序 小到大
desc: 按照指定字段降序 大到小
不指定排序方式,默认为升序
如果按照多字段排序:
首先将结果集按照第一个字段进行排序
当第一个字段值重复的时候,在按照第二个字段进行排序
优先级: order by后第一个字段为最先,第二个排第二

日期比较大小规则: 距离现在越近的日期越大
NULL在数据库中被视作最小值

-- 查看老师的工资从高到底
SELECT name,salary
from teacher
ORDER BY salary desc;-- 查看老师的奖金排名
SELECT name,comm
from teacher
ORDER BY comm desc;-- 查看学生的生日,按照从远到近(小到大 升序)
SELECT *
from student
ORDER BY birth ASC; -- 查看7-10岁的学生信息,学生按照年龄从大到小排序(同年龄的看生日)
SELECT name,birth 
from student
WHERE age BETWEEN 7 and 10
ORDER BY birth;-- 查看老师的工资和奖金,首先按照奖金的升序,在按照的工资的降序
SELECT name,salary,comm
from teacher
ORDER BY comm ASC,salary desc;

分页查询

分页查询: 将查询的结果按照分段显示出来
当查询的结果较多时,就可以使用分页查询

语法:
select xx
from xx
where xx
order by xx
limit M,N
M和N是两个整数

M: 表示跳过结果集中多少条记录(起始位置)
N: 表示从M位置开始查询出多少条记录
分页中常见的参数:

  1. 当前的页数
  2. 每页显示多少条记录
    M: (当前页数-1)*每页显示的条目数
    N: 每页显示多少条
-- 查看老师工资的前5名
-- 1)按照工资进行降序  2)分页查询
-- M: (当前页数-1)*N  M:(1-1)X5  => M: 0
-- N: 5
SELECT name,salary
from teacher
ORDER BY salary desc
LIMIT 0,5;
-- 第一页的数据  M:(1-1)X5    M: 0     N:5
-- 第二页的数据   M: (2-1)X5    M: 5    N: 5
SELECT name,salary
from teacher
ORDER BY salary desc
LIMIT 5,5;-- 查看老师奖金信息,按照降序排序后,每页显示3条,显示第五页?
-- M: (5-1)x3  =>M:12    N:3
SELECT name,comm
from teacher
ORDER BY comm desc
LIMIT 12,3;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/80025.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

对心理幸福感含义的探索 | 幸福就是一切吗?

注&#xff1a;机翻&#xff0c;未校。 Happiness Is Everything, or Is It? Explorations on the Meaning of Psychological Well-Being 幸福就是一切吗&#xff1f;对心理幸福感含义的探索 Journal of Personality and Social Psychology 1989, Vol. 57, No. 6,1069-1081 …

零基础学Java——第十一章:实战项目 - 微服务入门

第十一章&#xff1a;实战项目 - 微服务入门 随着互联网应用的复杂性不断增加&#xff0c;单体应用&#xff08;Monolithic Application&#xff09;在可扩展性、可维护性、技术栈灵活性等方面逐渐暴露出一些问题。微服务架构&#xff08;Microservices Architecture&#xff…

git 本地提交后修改注释

dos命令行进入目录&#xff0c;idea可以点击Terminal 进入命令行 git commit --amend -m "修改内容"

Python训练打卡Day22

复习日&#xff1a; 1.标准化数据&#xff08;聚类前通常需要标准化&#xff09; scaler StandardScaler() X_scaled scaler.fit_transform(X) StandardScaler() &#xff1a;这部分代码调用了 StandardScaler 类的构造函数。在Python中&#xff0c;当你在类名后面加上括号…

气动排渣煤粉炉专用V型球阀——法兰连接耐磨阀门生产厂家解析-耀圣

气动排渣煤粉炉专用V型球阀——法兰连接耐磨阀门生产厂家解析 副标题&#xff1a;开关灵活无泄漏 标配行程开关/电磁阀/过滤器 一、产品概述&#xff1a;气动排渣煤粉炉专用V型球阀核心优势 作为专业的气动耐磨V型球阀生产厂家&#xff0c;我们针对煤粉炉排渣工况研发的法兰连…

Linux云计算训练营笔记day08(MySQL数据库)

Linux云计算训练营笔记day08&#xff08;MySQL数据库&#xff09; 目录 Linux云计算训练营笔记day08&#xff08;MySQL数据库&#xff09;数据准备修改更新update删除delete数据类型1.整数类型2.浮点数类型(小数)3.字符类型4.日期5.枚举: 表头的值必须在列举的值里选择拷贝表复…

致远OA人事标准模块功能简介【附应用包百度网盘下载地址,官方售价4W】

人事管理应用&#xff0c;围绕岗位配置、招聘管理、员工档案、入转调离、员工自助申报、数据信息管理等人力资源管理关键业务&#xff0c;构建全员可参与的人事工作协同平台&#xff0c;让人事从繁杂琐碎的事务中解脱出来&#xff0c;高质高效工作&#xff0c;让管理层清楚掌握…

数字孪生工厂实战指南:基于Unreal Engine/Omniverse的虚实同步系统开发

引言&#xff1a;工业元宇宙的基石技术 在智能制造2025与工业元宇宙的交汇点&#xff0c;数字孪生技术正重塑传统制造业。本文将手把手指导您构建基于Unreal Engine 5.4与NVIDIA Omniverse的实时数字孪生工厂系统&#xff0c;集成Kafka实现毫秒级虚实同步&#xff0c;最终交付…

【向量模型 + HNSW 参数如何选择】

目录 一、embedding_function&#xff08;向量模型&#xff09; 可选方式 选型建议 二、HNSW 参数选择&#xff08;核心影响搜索速度与准确率&#xff09; 2.1 参数解释和推荐值 2.2 配置模板参考 1、推荐默认配置&#xff08;适合大多数项目&#xff09;&#xff1a; 2…

fpga系列 HDL : Microchip FPGA开发软件 Libero Soc 安装 license申请

启动 注册账号&#xff1a;https://login.microchip.com/申请免费许可&#xff1a;https://www.microchipdirect.com/fpga-software-products C:\Windows\System32>vol驱动器 C 中的卷是 Windows卷的序列号是 ****-****为“D:\Microsemi\License.dat”创建环境变量“LM_LICE…

【C++】解析C++面向对象三要素:封装、继承与多态实现机制

解析C面向对象三要素&#xff1a;封装、继承与多态实现机制 1. 面向对象设计基石2. 封装&#xff1a;数据守卫者2.1 访问控制实现2.2 封装优势 3. 继承&#xff1a;代码复用艺术3.1 继承的核心作用3.2 继承类型对比3.3 典型应用场景3.4 构造函数与析构函数处理3.4.1 构造顺序控…

Python并发编程:开启性能优化的大门(7/10)

1.引言 在当今数字化时代&#xff0c;Python 已成为编程领域中一颗璀璨的明星&#xff0c;占据着编程语言排行榜的榜首。无论是数据科学、人工智能&#xff0c;还是 Web 开发、自动化脚本编写&#xff0c;Python 都以其简洁的语法、丰富的库和强大的功能&#xff0c;赢得了广大…

数学复习笔记 10

前言 我觉得数学的高分乃至满分属于那些&#xff0c;聪明&#xff0c;坚韧&#xff0c;勇敢&#xff0c;细致的人。我非常惭愧自己不是这样的人&#xff0c;我在生活中发现了这样的同学&#xff0c;和他们交流的时候我常常感到汗流浃背&#xff0c;因为他们非常扎实的基础知识…

深入理解 Webpack 核心机制与编译流程

&#x1f916; 作者简介&#xff1a;水煮白菜王&#xff0c;一位前端劝退师 &#x1f47b; &#x1f440; 文章专栏&#xff1a; 前端专栏 &#xff0c;记录一下平时在博客写作中&#xff0c;总结出的一些开发技巧和知识归纳总结✍。 感谢支持&#x1f495;&#x1f495;&#…

概率相关问题

问题汇总 1. 贝叶斯定理&#xff08;贝叶斯公式和全概率公式&#xff09;2. 概率题2.1 随机发生器的概率为1/2 1. 贝叶斯定理&#xff08;贝叶斯公式和全概率公式&#xff09; 定义&#xff1a;在信息和条件有限的情况下&#xff0c;基于过去的数据&#xff0c;通过动态调整的…

【系统架构师】2025论文《WEB系统性能优化技术》

&#x1f60a;你好&#xff0c;我是小航&#xff0c;一个正在变秃、变强的文艺倾年。 &#x1f514;本文分享【系统架构师】2025论文《系统可靠性设计》&#xff0c;期待与你一同探索、学习、进步&#xff0c;一起卷起来叭&#xff01; 目录 项目介绍背景介绍系统模块技术栈性能…

ADS1220高精度ADC(TI)——应用 源码

文章目录 德州仪器ADS1220概述资料引脚&封装布线寄存器配置寄存器0&#xff08;00h&#xff09;配置寄存器1&#xff08;01h&#xff09;配置寄存器2&#xff08;02h&#xff09;配置寄存器3&#xff08;03h&#xff09; 连续转换流程驱动源码ads1220.cads1220.h 德州仪器A…

Uniapp 安卓实现讯飞语音听写(复制即用)

在移动应用开发中&#xff0c;语音交互功能能够极大提升用户体验&#xff0c;让操作更加便捷自然。讯飞语音听写技术凭借其高准确率和稳定性&#xff0c;成为众多开发者的选择。本文将详细介绍如何在 Uniapp 项目中&#xff0c;实现安卓端的讯飞语音听写功能&#xff0c;帮助你…

【golang】DNS 资源记录(RR)接口

Go 中 miekg/dns 包对 DNS 资源记录&#xff08;RR&#xff09;接口 的定义&#xff1a; type RR interface {Header() *RR_HeaderString() stringcopy() RRlen(off int, compression map[string]struct{}) intpack(...)unpack(...)parse(...)isDuplicate(r2 RR) bool }这个接…

16.2 VDMA视频转发实验之模拟源

文章目录 1 实验任务2 系统框图3 硬件设计3.1 IP核配置3.2 注意事项3.3 自定义IP核源码 4 软件设计4.1 注意事项4.2 工程源码4.2.1 main.c文件 1 实验任务 基于14.1&#xff0c;相较于16.1&#xff0c;使用自定义IP核vid_gen_motion替换Xilinx TPG IP核。 2 系统框图 基于14…