mysql实战题目练习
1、创建和管理数据库
-
创建一个名为
school的数据库。 -
列出所有的数据库,并确认
school数据库已经创建。 -
如果
school数据库已经存在,删除它并重新创建。 -
mysql> create database school; Query OK, 1 row affected (0.01 sec)mysql> mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | school | | sys | | zabbix | +--------------------+ 6 rows in set (0.01 sec)2、创建数据表
-
在
school数据库中,创建一个名为students的表,包含以下字段:id(整数,主键,自增)、name(字符串,最大长度50)、age(整数)和grade(字符串,最大长度10)。 -
创建一个名为
courses的表,包含course_id(整数,主键,自增)、course_name(字符串,最大长度100)和teacher(字符串,最大长度50)。 -
mysql> create table students(id int auto_increment primary key,name varchar(50),age int,grade varchar(10)); Query OK, 0 rows affected (0.06 sec) mysql> create table courses(course_id int auto_increment primary key,course_name varchar(100),teacher varchar(50)); Query OK, 0 rows affected (0.01 sec)3、插入数据
-
向
students表中插入一些示例数据。 -
向
courses表中插入一些示例数据 -
mysql> insert into students(name,age,grade)values('zhsan',20,1); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO students (name, age, grade) VALUES ('李四', 19, '二年级'); Query OK, 1 row affected (0.00 sec) mysql> select * from courses; Empty set (0.00 sec)mysql> select * from students; +----+--------+------+-----------+ | id | name | age | grade | +----+--------+------+-----------+ | 1 | zhsan | 20 | 1 | | 2 | 李四 | 19 | 二年级 | +----+--------+------+-----------+ 2 rows in set (0.00 sec) mysql> update students set name='张三',grade='一年级' where id=1; Query OK, 1 row affected (0.00 sec) mysql> select * from students; +----+--------+------+-----------+ | id | name | age | grade | +----+--------+------+-----------+ | 1 | 张三 | 20 | 一年级 | | 2 | 李四 | 19 | 二年级 | +----+--------+------+-----------+ 2 rows in set (0.00 sec) mysql> insert into courses(course_name,teacher)values('数学','张老师'); Query OK, 1 row affected (0.00 sec)mysql> insert into courses(course_name,teacher)values('语文','王老师'; Query OK, 1 row affected (0.00 sec)mysql> select * from courses; +-----------+-------------+-----------+ | course_id | course_name | teacher | +-----------+-------------+-----------+ | 1 | 数学 | 张老师 | | 2 | 语文 | 王老师 | +-----------+-------------+-----------+ 2 rows in set (0.00 sec)mysql>4、基本查询
-
查询
students表中的所有数据。 -
查询年龄大于或等于20岁的学生信息。
-
查询姓名为"张三"的学生的所有信息。
-
mysql> select * from students; +----+--------+------+-----------+ | id | name | age | grade | +----+--------+------+-----------+ | 1 | 张三 | 20 | 一年级 | | 2 | 李四 | 19 | 二年级 | +----+--------+------+-----------+ 2 rows in set (0.00 sec) mysql> select * from students where age>=20; +----+--------+------+-----------+ | id | name | age | grade | +----+--------+------+-----------+ | 1 | 张三 | 20 | 一年级 | +----+--------+------+-----------+ 1 row in set (0.00 sec) mysql> select * from students where name='张三'; +----+--------+------+-----------+ | id | name | age | grade | +----+--------+------+-----------+ | 1 | 张三 | 20 | 一年级 | +----+--------+------+-----------+ 1 row in set (0.00 sec)5、更新和删除数据
-
将名为"张三"的学生的年龄更新为21岁。
-
删除年龄小于18岁的学生信息。
-
mysql> update students set age=21 where name='张三'; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> select * from students ; +----+--------+------+-----------+ | id | name | age | grade | +----+--------+------+-----------+ | 1 | 张三 | 21 | 一年级 | | 2 | 李四 | 19 | 二年级 | +----+--------+------+-----------+ 2 rows in set (0.00 sec) mysql> insert into students(name,age,grade)values('王五',17,'一年级'); Query OK, 1 row affected (0.01 sec) mysql> select * from students; +----+--------+------+-----------+ | id | name | age | grade | +----+--------+------+-----------+ | 1 | 张三 | 21 | 一年级 | | 2 | 李四 | 19 | 二年级 | | 4 | 王五 | 17 | 一年级 | +----+--------+------+-----------+ 3 rows in set (0.00 sec)mysql> delete from students where age<18; Query OK, 1 row affected (0.00 sec)mysql> select * from students; +----+--------+------+-----------+ | id | name | age | grade | +----+--------+------+-----------+ | 1 | 张三 | 21 | 一年级 | | 2 | 李四 | 19 | 二年级 | +----+--------+------+-----------+ 2 rows in set (0.00 sec)mysql>6、多表查询
-
(假设存在一个关联表
student_courses,表示学生和课程的关联关系) -
查询所有选修了"数学"课程的学生信息。
-
查询每个学生的选课数量。
-
mysql> create table student_courses(student_id int,course_id int,foreign key (student_id) references student(id),foreign key(course_id)references courses(course_id)); Query OK, 0 rows affected (0.01 sec) mysql> insert into student_courses(student_id,course_id)values(1,2); Query OK, 1 row affected (0.01 sec)mysql> insert into student_courses(student_id,course_id)values(2,2); Query OK, 1 row affected (0.01 sec)mysql> insert into student_courses(student_id,course_id)values(2,1); Query OK, 1 row affected (0.00 sec)mysql> SELECT s.name, s.age, s.grade -> FROM student s -> JOIN student_courses sc ON s.id = sc.student_id -> JOIN courses c ON sc.course_id = c.course_id -> WHERE c.course_name = '数学'; +--------+------+-----------+ | name | age | grade | +--------+------+-----------+ | 张三 | 21 | 一年级 | | 李四 | 19 | 二年级 | +--------+------+-----------+ 2 rows in set (0.00 sec)7、事务处理
-
编写一个事务,将学生"李四"选修的"数学"课程更改为"物理",并确保如果更改失败,则回滚到之前的状态。
-
BEGIN TRANSACTION 或 START TRANSACTION:开始一个新的事务。
-
COMMIT:提交事务,将事务中的所有更改保存到数据库。
-
ROLLBACK:撤销事务,回滚到事务开始之前的状态,撤销所有在事务中所做的更改
mysql> start transaction; Query OK, 0 rows affected (0.00 sec) mysql> update student_courses set course_id=(select course_id from courses where course_name='物理') where student_id=(select id from student where name="李四") and course_id=(select course_id from courses where course_name='数学') and course_id=(select course_id from courses where course_name='数学'); Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> commit; Query OK, 0 rows affected (0.00 sec)8、索引和约束
在
students表的name字段上创建一个唯一索引,确保每个学生都有一个唯一的姓名。在
courses表的course_name字段上创建一个普通索引,以优化查询性能。 -
mysql> create unique index idx_name on student(name); Query OK, 0 rows affected (0.07 sec) Records: 0 Duplicates: 0 Warnings: 0mysql> create index idx_course_name on courses(course_name); Query OK, 0 rows affected (0.05 sec) Records: 0 Duplicates: 0 Warnings: 09、聚合函数和分组
-
查询每个年级的学生数量。
-
查询年龄最大的学生信息。
-
mysql> select grade,count(*) as student_count from student group by grade; +-----------+---------------+ | grade | student_count | +-----------+---------------+ | 一年级 | 1 | | 二年级 | 1 | +-----------+---------------+ 2 rows in set (0.01 sec)mysql> mysql> select * from student where age=(select max(age) from student); +----+--------+------+-----------+ | id | name | age | grade | +----+--------+------+-----------+ | 1 | 张三 | 21 | 一年级 | +----+--------+------+-----------+ 1 row in set (0.00 sec)mysql>
10、视图和存储过程
-
创建一个视图,显示年龄大于20岁的学生及其选课信息。
-
编写一个存储过程,用于添加新的学生和课程关联记录。
-
mysql> create view view_age20 as-> select s.id,s.name,s.age,sc.course_id,c.course_name-> from student s-> join student_courses sc on s.id=sc.student_id-> join courses c on sc.course_id=c.course_id-> where s.age >20; Query OK, 0 rows affected (0.01 sec)mysql> delimiter // mysql> create procedure addsc(in student_id int,in course_id int)-> begin insert into student_courses(student_id,course_id)values (student_id,course_id);-> -> end // Query OK, 0 rows affected (0.02 sec) mysql> delimiter ;
相关文章:
mysql实战题目练习
1、创建和管理数据库 创建一个名为school的数据库。 列出所有的数据库,并确认school数据库已经创建。 如果school数据库已经存在,删除它并重新创建。 mysql> create database school; Query OK, 1 row affected (0.01 sec)mysql> mysql> sh…...
Linux 案例命令使用操作总结
在信息技术日新月异的今天,Linux以其开源、稳定、高效的特性,逐渐成为了众多专业人士的首选操作系统。然而,关于Linux知识的学习,却常常陷入一个误区——许多人认为,掌握Linux就是死记硬背各种命令和参数。这种观念&am…...
图的拓扑序列(DFS2)
reference way:在图里面能延伸的越远,deep越大,说明它能从自己延伸很长到别的节点(别的节点一定有入度),它越可能没有入度。 way:感觉和DFS1差不多,只是从远变成了多。 #include&l…...
2024年小学生古诗文大会备考:吃透历年真题和知识点(持续)
根据往年的安排,2024年小学生古诗文大会预计这个月就将启动。该如何备考2024年小学生古诗文大会呢?根据往期的经验,只要吃透这些真题和背后的知识点,通过上海小学生古诗文大会的初选(初赛)一点问题都没有。…...
SystemC学习使用记录
一、概述 对于复杂的片上系统,在进行RTL编码前,需进行深入的系统级仿真,以确认设计的体系结构是否恰当、总线是否能满足吞吐量和实现性要求以及存储器是否浪费,所进行的这些仿真要求在芯片的仿真模型上运行大量的软件,…...
Github20K星开源团队协作工具:Zulip
Zulip:让团队协作的每一次交流,都精准高效。- 精选真开源,释放新价值。 概览 随着远程工作的兴起和团队协作的需求不断增加,群组聊天软件成为了日常工作中不可或缺的一部分。Zulip 是github上一个开源的团队协作工具,…...
C语言基础-标准库函数
C语言的标准库函数是由C语言标准库(如C99、C11等)提供的一系列预定义函数,这些函数通常用于执行常见的编程任务,如字符串操作、内存管理、数学计算、文件操作等。通过使用标准库函数,程序员可以更加高效地编写C语言程序…...
「51媒体」家居生活发布会,展览展会有哪些媒体邀约资源
传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 家居生活类媒体包括多种类型,包括门户网站家居生活消费频道,专业的家居消费生活门户,以及行业媒体,平面媒体,KOL和意见领袖。下…...
力扣刷题--数组--第五天
昨天做了几道关于双指针求解的算法题,今天继续看相关的题目。 844. 比较含退格的字符串 给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回 true 。# 代表退格字符。 注意:如果对空…...
kafka学习笔记04(小滴课堂)
Kafka的producer生产者发送到Broker分区策略讲解 Kafka核心API模块-producer API讲解实战 代码: ProducerRecord介绍和key的作用 Kafka核心API模块-producerAPI回调函数实战 producer生产者发送指定分区实战 我们设置5个分区。 我们指定分区。 重新指定一个分区&am…...
三菱FX3U-4AD模拟量电压输入采集实例
硬件:PLC模块 FX3GA-24MT ;A/D模块FX3…...
OpenAI推出DALL·E 3识别器、媒体管理器
5月8日,OpenAI在官网宣布,将推出面向其文生图模型DALLE 3 的内容识别器,以及一个媒体管理器。 随着ChatGPT、DALLE 3等生成式AI产品被大量应用在实际业务中,人们越来越难分辨AI和人类创建内容的区别,这个识别器可以帮…...
Spring Boot 整合讯飞星火3.5通过接口Api接口实现聊天功能(首发)复制粘贴即可使用,后续更新WebSocket实现聊天功能
程序员必备网站: 天梦星服务平台 (tmxkj.top)https://tmxkj.top/#/ 1.pom.xml <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.72</version></dependency><depen…...
信息系统项目管理师——十大管理过程输入、工具和技术、输出(论文篇)一
一、项目整合管理 制定项目章程 在项目管理中,制定项目章程是一个关键的初始过程,它正式授权项目的开始并为项目设定高层次的方向。项目章程的编制涉及特定的输入、采用的工具和技术,以及产生的输出。以下是这些方面的详细说明:…...
Java——代码块
1、概念分类 使用 {} 定义的一段代码称为代码块,根据代码块定义的位置以及关键字,可分为以下四种 普通代码块静态代码块构造代码块同步代码块 2、普通代码块 定义在方法中的代码块,这种用法较少见: 3、构造代码块 构造块&…...
Ajax额
原生Ajax xml 已被json取代 http 请求方法urlhttp版本号 network 谷歌浏览器查看请求报文和响应报文 F12 network header里面有 请求头 响应头 点击view source 可以查看请求响应行 请求体在请求行头下面 get请求有url参数,请求体变为query String…...
5.15项目进度总结
今天完成了随机选人和实时显示的功能(还需要维护),使得程序可以对用户的操作进行实时的显示。 实时显示的思路:在登录后开一个线程用一个socket去链接服务端并查询需要实时的信息,同时服务端把这个socket记录下来&…...
POETIZE个人博客系统源码 | 最美博客
简介: POETIZE个人博客系统源码 | 最美博客 这是一个 SpringBoot Vue2 Vue3 的产物,支持移动端自适应,配有完备的前台和后台管理功能。 网站分两个模块: 博客系统:具有文章,表白墙,图片墙&…...
回复完成 输入框还显示值的问题
回复完成 输入框还显示值的问题 解决代码 先把id 值清空 再构建下这个输入框 $("#details_article_reply_content").val(""); // 清空textareavar editor editormd("article_details_reply", {width: "100%",height: "100%"…...
C语言----斐波那契数列(附源代码)
各位看官们好,当我写了上一篇博客杨辉三角后,有一些看官叫我讲一下斐波那契数列。对于这个大家应该是有了解的。最简单的规律就是f(n)f(n-2)f(n-1)。就是当前是前两项之和,然后下标1和0都是1.从第三项开始计算的。那么我们知道规律࿰…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...
Go语言多线程问题
打印零与奇偶数(leetcode 1116) 方法1:使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...
通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器
拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件: 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...
MySQL 主从同步异常处理
阅读原文:https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主,遇到的这个错误: Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一,通常表示ÿ…...
Linux部署私有文件管理系统MinIO
最近需要用到一个文件管理服务,但是又不想花钱,所以就想着自己搭建一个,刚好我们用的一个开源框架已经集成了MinIO,所以就选了这个 我这边对文件服务性能要求不是太高,单机版就可以 安装非常简单,几个命令就…...
第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10+pip3.10)
第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10pip3.10) 一:前言二:安装编译依赖二:安装Python3.10三:安装PIP3.10四:安装Paddlepaddle基础框架4.1…...
