MySQL-2

复习

1. Data数据–>DB数据库–>DBMS数据库管理系统
常见DBMS: MySQL oracle sql server db2 … redis Mongodb
两大功能: 定义DDL 操纵DML
 
2. 表table
创建表, 行和列
 
3. MySQL数据类型
数据类型分成三大类:数值型、字符型、日期时间类
4. 关于列属性
null值、primary key主键、auto_increment自增、default默认值、foreign key外键、comment注释
 
create database 数据库名
create table 表名(
  id           int             primary key  not null  auto_increment comment‘编号’,
  name        varchar(10)      not null  comment‘姓名’,
  gender       char(1)                  comment‘性别’,
  age          tinyint                   comment‘年龄’,
  salary        decimal(m,d)              comment‘工资’,
  weight       float                     comment‘体重’,
  content       text                     comment‘内容’,
  birthday      date                     comment‘出生年月日’,
  status_value   tinyint         default 0  comment ‘状态0禁用 1激活’,
  create_time   timestamp      default current_timestamp comment’创建时间’,
  update_time  timestamp   default current_timestamp on update current_timestamp comment’更新时间’
)auto_increment=初始值
 
删除表结构
drop table 表名
 
插入语句 insert into 表名(字段名1,字段名2) values(值1,值2,…),(值1,值2,…);
更新语句 update 表名 set 字段名=新值, 字段名=新值 where 子句;
删除语句 delete from 表名 where子句;
查询语句 select 字段名1,字段名2,。。。 from 表名  where 子句
 
where子句,where是用于对行进行筛选
where 比较条件/确定范围/确定集合/and/or/not/is null/ is not null/like
like模糊匹配,通配符%和_
 
[面试题] drop truncate delete区别
 
 

1 binary关键字区分大小写


2 as关键字


3统计函数

SQL提供的统计函数称为集函数.
主要的集函数:(可与DISTINCT连用)
                   计数函数: count(列名) 计算非空行记录个数
                   求和函数: sum(数值列名)   对某一列的值求和
                   求平均值: avg(数值列名)  对某一列的值计算平均值
                   求最大值: max(数值列名)  找出某一列的最大值
                   求最小值: min(数值列名)  找出某一列的最小值
 

4 DISTINCT去重复关键字的使用



5 注意:where子句不能使用聚合函数


 

6 分组group by

分组可以使用“GROUP BY 列名”的写法,通常分组后都会有对组进行统计的函数的操作
以下代码查询选课表中每个学生的选课数量:
select sid,count(*) from grade group by sid

 

7对组筛选having

分完组后,有时只需要显示其中一部分的组的数据,如查询一个学校中人数超过40人的班级,这时就要使用HAVING子句。
以下代码从学生表中查询人数超过40人的班级:
SELECT 班级,COUNT(*) AS 人数
FROM 学生
GROUP BY 班级
HAVING 人数>40
 


8 排序order by

将结果集按照某一个列进行排序
desc: 降序排列
asc:  升序排列(默认)
语法:
select  …   from 表名 where 子句 …  order by 列1  desc/asc, 列2 desc/asc
 

 

9 限制limit

对最终结果集记录数进行限制,实现分页功能
select… from 表 where … limit a,b
 
应用程序中一般分页可以通过两种方式实现:
①基于数据库分页的物理分页(掌握);
②基于业务逻辑实现的逻辑分页
 
 

 
 

单表练习

单表基本语句练习题目:建立一个hw_student_info表。
字段名      数据类型     说明
stu_id        int          学生编号    主键自增
stu_name     varchar(10)   学生姓名    不可空
age          int          学生年龄    可空
class_id      int           班级编号    可空
course       varchar(10)    选修课程名  可空
score        decimal(4,1)   分数        可空
status_values  tinyint       状态        可空0休学或1在读
– 通过DDL创建表
 
– 批量插入5条学生记录,数据自定义
 
– 根据学生编号批量删除学生,例如删除1 3 5号学生
 
– 修改表中所有学生的状态为1,设置为在读状态
 
– 修改表中1班级学生的状态为0,设置为全部休学
 
– 查询学生表所有信息
 
– 查询所有学生的学号,姓名,年龄
 
– 查询1号的学生学号,年龄,选修课程,分数信息
 
– 查询1班和2班的学生信息
 
– 查询在读的所有学生
– 查询20-23岁之间的学生
– 查询已分配班级信息的学生列表
– 查询选修’Java’类似课程的学生列表
– 查询’王’氏学生列表
– 查询1班的学生总数
– 查询每一种选修课程的人数
– 查询班级列表
– 查询1班的男生和女生的数量
– 查询每个班级的人数
– 查询1班学生的”java开发”课程最低分,最高分,和平均分
– 查询每门选修课程的平均成绩
– 查询班级人数大于1个的班级列表,显示出: 班级编号,总人数
– 查询选修课程达到2人以上的选修课列表,显示出:选修课程,选修人数
– 查询1班’Java’课程成绩前三名的学生信息(无相同分数的情况)
– 查询1班’Java’课程成绩最后一名的学生信息(无相同分数的情况)
– 查询1班’Java’课程成绩第三名的学生信息(无相同分数的情况)
 

10 SQL查询语句的执行顺序


select name,max(score) as max_score
from stu_score
where name is not null
group by name
having max(score) > 500
order by max_score
limit 0,10
 
首先执行 from子句,从stu_score表组装数据源的数据
执行where子句,筛选stu_score表中所有数据不为NULL的数据
执行group by 子句,把stu_score表按”name”列进行分组
计算max()聚合函数,按’score’列求出每组学生中成绩的最高分
执行having,对组进行筛选
执行select列表
执行order by子句,把最后的结果按照max_score列进行升序排序
执行limit子句,筛选前10条结果
 

11 嵌套子查询

嵌套子查询:一个查询中嵌套另一个查询
嵌套子查询分类:标量子查询、列子查询、行子查询、表子查询
7.1 标量子查询:返回1行1列, 返回单一的一个值或者字符串
SELECT * FROM t1 WHERE column1 = (SELECT MAX(column2) FROM t2)
7.2 列子查询:返回N行1列
SELECT * FROM article WHERE uid IN(SELECT uid FROM user WHERE status=1)
7.3 行子查询:返回1行N列
SELECT * FROM (SELECT uid,uname FROM user WHERE status=1) as 表别名
7.4 表子查询:返回N行N列
SELECT * FROM (SELECT * FROM USER) AS 表别名
 

子查询练习-继续单表练习hw_student_info

查询年龄最高的学生信息
从各课程中获取课程成绩最高分大于90分的课程,将选修这些课程的学生列出来
查询Java课程成绩大于该课程平均分的学生列表
查询Java课程班级平均分大于该课程总平均分的班级列表
查询Java课程班级平均分大于该课程总平均分的班级数量
 

12 Navicat导入和导出表结构和数据

导出表结构和数据



生成一个.sql文件

 

导入表结构和数据



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

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

相关文章

【JVM基础】 JVM 如何加载一个类以及类加载机制

文章目录 1、什么时候一个类会被加载?1、包含 main 方法的主类2、非 包含 main 方法的主类,什么时候去加载? 3、类加载器如何加载一个类?1、验证阶段:2、准备阶段:3、解析阶段:4、初始化&#x…

PHP开发日志——循环和条件语句嵌套不同,效率不同(循环内加入条件语句,条件语句判断后加入循环,array_map函数中加入条件语句)

十多年前开发框架时,为了效率不断试过各种代码写法,今天又遇到了,想想php8时代会不会有所变化,结果其实也还是和当年一样,但当年没写博客,但现在可以把数据记录下来了。 PHP_loop_ireflies_dark_forest 项目…

20231220将NanoPC-T4(RK3399)开发板的Android10的SDK按照Rockchip官方挖掘机开发板编译打包刷机之后启动跑飞

20231220将NanoPC-T4(RK3399)开发板的Android10的SDK按照Rockchip官方挖掘机开发板编译打包刷机之后启动跑飞 2023/12/20 17:19 简略步骤:rootrootrootroot-X99-Turbo:~/3TB$ tar --use-compress-programpigz -xvpf rk3399-android-10.git-20210201.tgz rootrootro…

递归算法:二叉树前序、中序、后序遍历解析与递归思想深度剖析

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《linux深造日志》 《高效算法》 ⛺️生活的理想,就是为了理想的生活! 文章目录 一、二叉树的遍历1.1 链式结构二叉树的创建1.1 二叉树结构图 二、 前序遍历代码演示:2.1 前序遍历递…

苏宁易购商品详情API:电商实时数据

一、引言 在当前的电商行业中,数据是最为宝贵的资源之一。如何获取实时、准确的数据,对于电商业务的运营和优化至关重要。作为中国领先的电商平台之一,苏宁易购提供了丰富的API接口,其中包括商品详情API,以便第三方开…

STL stack练习

CSTL之stack栈容器 - 数据结构教程 - C语言网CSTL之stack栈容器1.再谈栈回顾一下之前所学的栈,栈是一种先进后出的数据结构,而实现方式需要创建多个结构体,通过链式的方式进行实现,这是标准的栈的思路,而在STL中栈可以…

一键在线获取APP公钥、包名、签名及备案信息方法介绍

​ 目录 一键在线获取APP公钥、包名、签名及备案信息方法介绍 摘要 引言 一键获取APP包信息 操作步骤 ​编辑 解析报告 总结 致谢 关键词 参考资料 声明 摘要 本文介绍了一款在线APP解析工具,可以一键获取APP的公钥、包名、签名等基础信息,…

Python教程:对于初学者,几个易懂的装饰器示例用法

装饰器是Python中的一个高级功能,它可以用来扩展或修改一个函数或方法的功能,而不需要修改其原始代码。装饰器本质上是一个函数,它接受一个函数作为参数,并返回一个新的函数对象。 装饰器通常用于添加与函数功能无关的额外功能&a…

LeetCode 647回文子串 517最长回文子序列 | 代码随想录25期训练营day57

动态规划算法14 LeetCode 647 回文子串 2023.12.20 题目链接代码随想录讲解[链接] int countSubstrings(string s) {//暴力搜索&#xff0c;前两层遍历确定子字符串的起始和末尾位置//第三层循环判断当前子字符串是否为回文串/*int result 0;for (int i 0; i < s.size…

灰盒测试简要学习指南!

在本文中&#xff0c;我们将了解什么是灰盒测试、以及为什么要使用它&#xff0c;以及它的优缺点。 在软件测试中&#xff0c;灰盒测试是一种有用的技术&#xff0c;可以确保发布的软件是高性能的、安全的并满足预期用户的需求。这是一种从外部测试应用程序同时跟踪其内部操作…

2023 英特尔On技术创新大会直播 | 窥探未来科技的边界

2023 英特尔On技术创新大会直播 | 窥探未来科技的边界 写在最前面观后感其他有趣的专题课程 写在最前面 嘿&#xff0c;你是不是对科技和创新充满好奇&#xff1f;2023 英特尔 On 技术创新大会线上活动邀请你一起探索最前沿的科技世界&#xff01; 这不仅是一场普通的聚会&…

程序员的23大IONIO面试问题及答案

文章目录 1. 什么是IO流&#xff1f;2.java中有几种类型的流&#xff1f;3.字节流和字符流哪个好&#xff1f;怎么选择&#xff1f;4.读取数据量大的文件时&#xff0c;速度会很慢&#xff0c;如何选择流&#xff1f;5. IO模型有几种&#xff1f;6.阻塞IO &#xff08;blocking…

如何用Excel制作一张能在网上浏览的动态数据报表

前言 如今各类BI产品大行其道&#xff0c;“数据可视化”成为一个热门词汇。相比价格高昂的各种BI软件&#xff0c;用Excel来制作动态报表就更加经济便捷。今天小编就将为大家介绍一下如何使用葡萄城公司的纯前端表格控件——SpreadJS来实现一个Excel动态报表&#xff1a; 实…

华为鸿蒙操作系统简介及系统架构分析(2)

接前一篇文章&#xff1a;华为鸿蒙操作系统简介及系统架构分析&#xff08;1&#xff09; 本文部分内容参考&#xff1a; 鸿蒙系统学习笔记(一) 鸿蒙系统介绍 特此致谢&#xff01; 上一回对于华为的鸿蒙操作系统&#xff08;HarmonyOS&#xff09;进行了介绍并说明了其层次化…

C语言——高精度乘法

一、引子 高精度乘法相较于高精度加法和减法有更多的不同&#xff0c;加法和减法是一位对应一位进行操作的&#xff0c;而乘法是一个数的每一位对另一个数的每一位进行操作&#xff0c;需要的计算步骤更多。 二、核心算法 void Calculate(int num1[], int num2[], int numres…

代理IP解决了哪些问题?如何切换IP地址?

代理IP主要解决了以下问题&#xff1a; 1. 隐私保护&#xff1a;通过代理IP&#xff0c;用户可以隐藏自己的真实IP地址&#xff0c;增强网络匿名性&#xff0c;保护个人信息不被泄露。 2. 地理位置限制&#xff1a;某些网站或服务可能会根据用户的IP地址实施地域限制。使用代…

echart图表之仪表盘 pie 双盘 乃至多盘

效果展示&#xff1a; 代码&#xff1a; //首页转速盘 export const pieSpeed (params) > {let demoDataif (params.length ! 0) {demoData params?.map(item > {return {title: item.title,name: item.name,value: item.value,unit: item.unit || ,pos: item.pos,ran…

Android Studio开发之路(六)(合集)界面优化以及启动图标等

一、导航栏背景、字体修改 导航栏、状态栏等背景颜色的修改一般是在themes.xml文件中修改&#xff0c;android一个activity各个部件参考&#xff1a; colorPrimary,colorPrimaryDark等的意义 添加链接描述 但是问题在于&#xff1a;只在这里修改背景颜色的话&#xff0c;可能…

D : B DS二叉排序树_树中第k小的元素

Description 给定一个二叉排序树和一个整数k&#xff0c;要求输出树中第k个最小元素(k从1开始计数)。 Input 第一行输入t&#xff0c;表示有t个测试样例。 第二行起&#xff0c;首先输入n&#xff0c;接着输入n个整数表示一个二叉排序树&#xff0c;接着输入k。 以此类推共…

【数据结构和算法】---二叉树(1)--树概念及结构

目录 一、树的概念及结构1.1 树的概念1.2 树的相关概念1.3 树的表示1.4 树在实际中的运用 二、二叉树的概念及结构2.1 二叉树概念2.2 特殊的二叉树2.3 二叉树的性质2.4 二叉树的存储结构 三、树概念相关题目 一、树的概念及结构 1.1 树的概念 树是一种非线性的数据结构&#…