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

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;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于Java超市管理系统设计与实现(源码+部署文档)

博主介绍: ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到 Java项目精品实…

c++入门学习④——对象的初始化和清理

目录 对象的初始化和清理: why? 如何进行初始化和清理呢? 使用构造函数和析构函数​编辑 构造函数语法: 析构函数语法: 构造函数的分类: 两种分类方式: 三种调用方法: 括号法(默认构造函数调用&…

sql非查询知识点(增删改-crud没有r)

1.建库 create database database_name 2.使用该数据库 use database_name 3.建表 3.1普通建表 create table if not exists actor(actor_id smallint(5) not null primary key comment "主键id",first_name varchar(45) not null comment "名字",last…

Python中的while循环,知其然知其所以然

文章目录 while循环结构1.用循环打印1 ~ 100步骤解析2. 1 ~ 100的累加和3.死循环1. 用死循环的方法实现 1 ~ 100累加和 4. 单向循环(1)打印 一行十个小星星*(2)通过打印一个变量的形式,展现一行十个小星星(3)一行十个换色的星星 ★☆★☆★☆★☆★☆(4)用一个循环,打印十行十列…

重写Sylar基于协程的服务器(7、TcpServer HttpServer的设计与实现)

重写Sylar基于协程的服务器(7、TcpServer & HttpServer的设计与实现) 重写Sylar基于协程的服务器系列: 重写Sylar基于协程的服务器(0、搭建开发环境以及项目框架 || 下载编译简化版Sylar) 重写Sylar基于协程的服务…

『运维备忘录』之 Vim 命令详解

运维人员不仅要熟悉操作系统、服务器、网络等只是,甚至对于开发相关的也要有所了解。很多运维工作者可能一时半会记不住那么多命令、代码、方法、原理或者用法等等。这里我将结合自身工作,持续给大家更新运维工作所需要接触到的知识点,希望大…

杨中科 ASP.NETCORE 高级14 SignalR

1、什么是websocket、SignalR 服务器向客户端发送数据 1、需求:Web聊天;站内沟通。 2、传统HTTP:只能客户端主动发送请求 3、传统方案:长轮询(Long Polling)。缺点是?(1.客户端发送请求后&…

如何使用MCSM搭建我的世界Java版服务器并实现远程联机游戏

文章目录 1. 安装JAVA2. MCSManager安装3.局域网访问MCSM4.创建我的世界服务器5.局域网联机测试6.安装cpolar内网穿透7. 配置公网访问地址8.远程联机测试9. 配置固定远程联机端口地址9.1 保留一个固定tcp地址9.2 配置固定公网TCP地址9.3 使用固定公网地址远程联机 本教程主要介…

1802907-91-0,Methyltetrazine-PEG4-COOH,可以与多种不同的化学基团反应

您好,欢迎来到新研之家 文章关键词:Methyltetrazine-PEG4-COOH,Methyltetrazine-PEG4-acid,甲基四嗪-四聚乙二醇-羧基,甲基四嗪-四聚乙二醇-羧酸,甲基四嗪PEG4羧酸,甲基四嗪-PEG4-羧酸 一、基…

基于Java医院管理系统设计与实现(源码+部署文档)

博主介绍: ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到 Java项目精品实…

爱快安装和双宽带叠加

文章目录 一、爱快安装二、爱快使用1. 配置WAN12. 配置WAN23. 配置LAN14. 配置DHCP5. DNS设置6. 多线负载7. 基础设置 三、通过交换机拨号1. 交换机设置2. 配置WAN1 一、爱快安装 (1)下载爱快路由ISO版本 爱快路由系统下载 (2)IS…

群晖NAS开启FTP服务结合内网穿透实现公网远程访问本地服务

⛳️ 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 文章目录 ⛳️ 推荐1. 群晖安装Cpolar2. 创建FTP公网地址3. 开启群晖FTP服务4. 群晖FTP远程连接5. 固定FTP公网地址6. 固定FTP…

请问CTF是什么?请介绍一下关于隐水印的知识特点技术原理应用领域技术挑战

目录 请问CTF是什么? 请介绍一下关于隐水印的知识 特点 技术原理 应用领域 技术挑战 请问CTF是什么? CTF(Capture The Flag,夺旗比赛)是一种信息安全竞赛,常见于计算机安全领域。这种比赛模拟各种信…

Python中的HTTP代理服务器和客户端的区别与联系

在Python编程中,当我们涉及到网络通信,尤其是HTTP请求时,经常会听到“HTTP代理服务器”和“客户端”这两个词。它们在网络世界中扮演着不同的角色,但又有着紧密的联系。 区别 首先,我们来谈谈它们的区别。 HTTP代理…

Multisim14.0仿真(五十一)74LS42D应用设计

一、74LS42D简介: 74LS42D是4 线 BCD 至 10 线十进制解码器,用在数字电路与单片机控制系统中,以达到通过译码来扩展ip端口的功能。 二、74LS42D逻辑框图: 三、74LS42D功能表: 四、仿真原理图: 五、运行效果…

Rust 本地文档的使用:rustup doc

Rust 是一种系统级编程语言,以其安全性、速度和内存控制能力而闻名。为了方便开发者更好地了解并利用 Rust 标准库和工具链中的功能,Rust 提供了一种内置的文档浏览方式——通过 rustup doc 命令。 安装 rustup 在查阅 Rust 文档之前,确保你…

GCC编译器的使用以及使用Makefile语法进行操控

Makefile 这里使用的Makefile操控编译器 gcc 常见的组成部分 c: gcc 的一个版本,默认语言设置为 C,而且在链接的时候自动包含标准 C 库。这和 g 一样configure: GCC 源代码树根目录中的一个脚本。用于设置配置值和创建 GCC 编…

FPS游戏穿模最强解决方案!开发一款FPS游戏射击游戏真的太简单!

FPS游戏穿模最强解决方案!开发一款FPS游戏射击游戏真的太简单! 2001年,FPS游戏老大哥《CS》横空出世,迅速在国内外掀起了一波FPS游戏的热潮,随后《CF穿越火线》在国内上线,一举拿下“玩家最喜爱的十大网络…

Java设计模式大全:23种常见的设计模式详解(二)

本系列文章简介: 设计模式是在软件开发过程中,经过实践和总结得到的一套解决特定问题的可复用的模板。它是一种在特定情境中经过验证的经验和技巧的集合,可以帮助开发人员设计出高效、可维护、可扩展和可复用的软件系统。设计模式提供了一种在…

Ubuntu使用Docker部署Nginx并结合内网穿透实现公网远程访问

文章目录 1. 安装Docker2. 使用Docker拉取Nginx镜像3. 创建并启动Nginx容器4. 本地连接测试5. 公网远程访问本地Nginx5.1 内网穿透工具安装5.2 创建远程连接公网地址5.3 使用固定公网地址远程访问 在开发人员的工作中,公网远程访问内网是其必备的技术需求之一。对于…