mysql项目实战,常用sql语句的实战笔记

news2024/9/25 23:20:51

1.使用sql语句对数据库进行创建

//创建实验用的数据库
CREATE DATABASE jsschool;

//使用当前数据库
USE jsschool;

//创建学生表
CREATE TABLE student (
    sno VARCHAR(20) PRIMARY KEY COMMENT '学生编号',
    sname VARCHAR(20) NOT NULL COMMENT '学生姓名',
    ssex VARCHAR(10) NOT NULL COMMENT '学生性别',
    sbirthday DATETIME COMMENT '学生生日', 
    class VARCHAR(20) COMMENT '学生班级'
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

//创建教师表
CREATE TABLE teacher (
    tno VARCHAR(20) PRIMARY KEY COMMENT '教师编号',
    tname VARCHAR(20) NOT NULL COMMENT '教师姓名',
    tsex VARCHAR(10) NOT NULL COMMENT '教师性别',
    tbirthday DATETIME COMMENT '教师生日',
    prof VARCHAR(20) NOT NULL COMMENT '教师职称',
    depart VARCHAR(20) NOT NULL  COMMENT '教师院系'
)ENGINE=InnoDB DEFAULT CHARSET=utf8;


//创建课程表
CREATE TABLE course (
    cno VARCHAR(20) PRIMARY KEY COMMENT '课程编号',
    cname VARCHAR(20) NOT NULL COMMENT '课程名称',
    tno VARCHAR(20) NOT NULL COMMENT '外键教师编号',
    FOREIGN KEY(tno) REFERENCES teacher(tno) 
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

//创建分数表
CREATE TABLE score (
    sno VARCHAR(20) NOT NULL COMMENT '学生编号', 
    cno VARCHAR(20) NOT NULL COMMENT '课程编号', 
    degree DECIMAL COMMENT '成绩',
    FOREIGN KEY(sno) REFERENCES student(sno),	
    FOREIGN KEY(cno) REFERENCES course(cno)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

//列出所有创建的表
SHOW TABLES;

2.给我们创建好的数据表中插入一些数据

INSERT INTO student VALUES('101', '张琴', '男', '1999-02-01', '51');
INSERT INTO student VALUES('102', '李福', '男', '1995-01-02', '52');
INSERT INTO student VALUES('103', '刘军', '男', '1998-01-24', '51');
INSERT INTO student VALUES('104', '张文', '女', '1994-02-20', '53');
INSERT INTO student VALUES('105', '陈锦文', '女', '1999-02-10', '56');
INSERT INTO student VALUES('106', '周建', '男', '1993-05-21', '55');
INSERT INTO student VALUES('107', '钱富', '男', '1995-09-20', '55');
INSERT INTO student VALUES('108', '刘建国', '男', '1996-06-01', '56');
INSERT INTO student VALUES('109', '李四', '男', '1998-08-03', '57');


INSERT INTO teacher VALUES('1', '张宝宝', '女', '1975-02-02', '助教', '电子工程');
INSERT INTO teacher VALUES('2', '李雯雯', '女', '1979-09-08', '讲师', '计算机科学');
INSERT INTO teacher VALUES('3', '王富贵', '男', '1972-05-05', '助教', '土木工程');
INSERT INTO teacher VALUES('4', '金钱多', '男', '1976-05-24', '助教', '外语系');




INSERT INTO course VALUES('65', '集成电路', '1');
INSERT INTO course VALUES('64', '数据结构', '2');
INSERT INTO course VALUES('67', '工程结构', '3');
INSERT INTO course VALUES('66', '英语', '4');


INSERT INTO score VALUES('101', '65', '86');
INSERT INTO score VALUES('102', '64', '75');
INSERT INTO score VALUES('103', '65', '68');
INSERT INTO score VALUES('103', '64', '92');
INSERT INTO score VALUES('104', '67', '88');
INSERT INTO score VALUES('104', '67', '76');
INSERT INTO score VALUES('105', '66', '64');
INSERT INTO score VALUES('106', '66', '91');
INSERT INTO score VALUES('107', '65', '78');
INSERT INTO score VALUES('108', '64', '85');
INSERT INTO score VALUES('109', '66', '79');
INSERT INTO score VALUES('109', '67', '81');

3.基本的sql查询语句

//查询所有数据从student表中
select* from student;
//查询sname,ssex,class 三个字段
select sname,ssex,class from student;
//查询字段depart 取出重复的数据,只针对distinct字段
select distinct depart from teacher;
//查询分数在60 到80 之间的学生
select *from score where degree between 60 and 80;
//查询成绩是85 86 88的学生
select *from score where degree in(85,86,88);
//查询51班同学或者性别是女的同学
select *from student where class='51' or ssex='女';
//查询成绩, 排列顺序是让编号顺序排列,成绩倒叙排列
select *from score order by cno asc,degree desc;
//统计51班学生的数量
select count(*) from student where class='51';
//子查询,查询成绩最好的学生
select sno,cno,degree from score where degree=(select max(degree) from score);
//排序查询,选出成绩最好的学生
select sno,cno,degree from score order by degree desc limit 1;

4.计算平均值


//计算各科成绩的平均值

select avg(degree) from score where cno='64';

select avg(degree) from score where cno='65';


//按照课程分组,计算各科的平均值
select avg(degree) from score group by cno;





//计算各科的平均分数,统计各科的总人数,选出人数大于2的,并且课程以6开头的
select cno,avg(degree),count(*) from score 
group by cno having count(cno)>=2 and cno like '6%';;

5.联表查询


select sname,cno,degree from student,score 
where student.sno=score.sno;

select sname,cname,degree from student,course,score 
where student.sno=score.sno 
and course.cno=score.cno;

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

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

相关文章

北斗导航助力春运,让回家之路更温馨便捷

北斗导航助力春运,让回家之路更温馨便捷 春运,即春节运输,是中国在农历春节前后发生的一种大规模的高交通运输压力的现象。它它不仅考验着国家的交通运输能力,也考验着公共服务和应急管理的水平。在这样一个背景下,北…

计算机毕业设计 | SpringBoot大型旅游网站 旅行后台管理系统(附源码)

1, 概述 1.1 项目背景 随着互联网技术的快速发展和普及,旅游行业逐渐转向线上,越来越多的游客选择在线预订旅游产品。传统的线下旅行社模式已不能满足市场需求,因此,开发一个高效、便捷的旅游网站成为行业的迫切需求…

L1-080 乘法口诀数列

一、题目 二、解题思路 三、代码 #include<iostream> using namespace std; int main() {int a1,a2,n;cin>>a1>>a2>>n;if(n1){cout<<a1;return 0; }int a[n*2];cout<<a1<<" "<<a2;a[0]a1;a[1]a2;for(int i2,j2;i&l…

NX/UG二次开发—其他—矩形套料(排料)简介

算法逻辑 排料方法一定时间内获取近似解的算法 看了一些论文和博客&#xff0c;一般排料方法采用最低水平线算法排料&#xff0c;再此基础上增加空余区域填充。 然后配合遗传学算法||模拟退火算法||蚁群算法||免疫算法等&#xff0c;在一定时间内求得一组最优解。 在最简单的…

Windows 启动项无法打开 Aanconda 问题。pyqt noBinding

windows中点击Anaconda navigator 没有反应: ## 解决 (右键运行Anaconda prompt) 以管理员身份运行&#xff1a; 分别运行以下命令&#xff1a; conda update conda conda update anaconda-navigatorpip uninstall PyQt5 pip install PyQt5 pip install pyqtwebengine

Spring GateWay

概述简介 能干什么 反向代理 鉴权 流量控制 熔断 日志监控 Spring Cloud Gateway 与Zuul的区别 在SpringCloud Finchley正式版之前&#xff0c;Spring Cloud推荐的网关是 Netflix提供的Zuul: 1、Zuul 1.x&#xff0c;是一个基于阻塞Ⅳ/O的APl Gateway 2、Zuul 1.x基于Servl…

双非本科准备秋招(19.1)—— Synchronized优化

轻量级锁 流程 一个对象虽然有多线程加锁&#xff0c;但是加锁时间是错开的&#xff0c;那么可以用轻量级锁优化。 语法还是synchronized&#xff0c;只是对使用者是透明的。 static final Object obj new Object(); public static void method1() {synchronized( obj ) {//…

Unity AnimationRigging无法修改权重?

个人理解&#xff0c;已解决无法修改权重的问题: unity自带的动画系统是在FixUpdate和Update之后LateUpdate之前执行&#xff0c;如果在这FixedUpdate或Update函数内更新AnimationRigging内的权重后&#xff0c;内部动画系统会覆盖权重的修改&#xff0c;导致无法正确更新&…

C语言:函数递归

创作不易&#xff0c;给个三连吧&#xff01;&#xff01; 一、什么是递归 递归式一种解决问题的方法&#xff0c;在C语言中&#xff0c;递归就是自己调用自己。 递归的思想&#xff1a; 把⼀个⼤型复杂问题层层转化为⼀个与原问题相似&#xff0c;但规模较小的⼦问题来求解…

FPC概述及仿真

柔性印刷电路(FPC)是由聚酰亚胺或聚酯薄膜制成的高可靠性和优异的柔性印刷电路板。它具有布线密度高、重量轻、厚度薄、可弯曲性好等特点。 概述 FPC&#xff0c;也被称为柔性印刷电路&#xff0c;因其重量轻&#xff0c;厚度薄&#xff0c;自由弯曲和折叠等优异特性而受到青睐…

Nicn的刷题日常之操作一维数组

1.题目描述 创建一个整形数组&#xff0c;完成对数组的操作 实现函数init() 初始化数组为全0实现print() 打印数组的每个元素实现reverse() 函数完成数组元素的逆置。 要求&#xff1a;自己设计以上函数的参数&#xff0c;返回值。 2.解题 void Init(int arr[], int sz, …

网站被攻击有什么办法呢?

最近&#xff0c;德迅云安全遇到不少网站用户遇到攻击问题&#xff0c;来咨询安全解决方案。目前在所有的网络攻击方式中&#xff0c;DDoS是最常见&#xff0c;也是最高频的攻击方式之一。不少用户网站上线后&#xff0c;经常会遭受到攻击的困扰。有些攻击持续时间比较短影响较…

TI毫米波雷达开发——High Accuracy Demo 串口数据接收及TLV协议解析 matlab 源码

TI毫米波雷达开发——串口数据接收及TLV协议解析 matlab 源码 前置基础源代码功能说明功能演示视频文件结构01.bin / 02.binParseData.mread_file_and_plot_object_location.mread_serial_port_and_plot_object_location.m函数解析configureSport(comportSnum)readUartCallback…

Appium报错:无法打开appPackage

能打开微信、微博&#xff0c;但是要打开另一个app的时候&#xff0c;就出现上面的报错信息。 报错信息说参考&#xff1a;https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/android/activity-startup.md &#xff0c;链接地址变了&#xff0c;找…

数据结构——单链表详解

目录 前言 一.什么是链表 1.概念 ​编辑 2.分类 二.单链表的实现(不带头单向不循环链表) 2.1初始化 2.2打印 2.3创建新节点 2.4头插、尾插 2.5头删、尾删 2.6查找 2.7在指定位置之前插入 2.8在指定位置之后插入 2.9删除pos位置 2.10删除pos之后的 2.11销毁链表…

JavaScript 入门

目录 第一个知识点&#xff1a;引入js文件 内部引用: 外部引用: 第二个知识点&#xff1a;javascript的基本语法 定义变量&#xff1a; 条件控制(if - else if - else) 第三个知识点&#xff1a;javascript里的数据类型、运算符&#xff1a; 数字类型 字符串类型 布尔…

B站UP主实时信息获取展示php源码

B站UP主实时数据展示系统 - PHP源码分享 想要实时追踪你心仪的B站UP主的最新动态吗&#xff1f;现在&#xff0c;你可以轻松获取并展示B站UP主的实时数据&#xff0c;包括粉丝数、作品数、头像、播放量等关键信息。 功能亮点&#xff1a; 实时更新&#xff1a;系统通过B站AP…

高中学校档案室主要做什么

高中学校档案室主要负责管理、保存和维护学校的各类档案文件。具体工作内容包括&#xff1a; 1. 档案收集&#xff1a;负责收集学校各个部门的档案文件&#xff0c;包括学生档案、教职工档案、教学档案、行政档案等。 2. 档案分类和整理&#xff1a;对收集到的档案文件进行分类…

LeetCode Python - 1.两数之和

文章目录 题目答案运行结果 题目 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能…

(2024,弱到强蒸馏,开源 CLIP,模型扩展)EVA-CLIP-18B:将 CLIP 扩展到 18B 参数

EVA-CLIP-18B: Scaling CLIP to 18 Billion Parameters 公和众和号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0. 摘要 1. 简介 2. 弱到强视觉扩展 3. 实验 0. 摘要 扩展对比语言-图像预训…