mysql数据库关联练习_mysql数据库建立数据表的练习(附代码)

f9f85905b9ebdae7778de569917f394b.gif

数据库操作和学习并不难,难的是如何在各种实际运用情况下编写SQL语句的实现。这个过程,需要大量的练习,那么从这里开始,我们来讲解实现。

任务概述

具体关系数据库如下:

数据库名:教师数据库

教师表(编号 char(6),姓名,性别,民族,职称,身份证号)

课程表(课号 char(6),名称)

任课表(ID,教师编号,课号,课时数)

用SQL语言实现下列功能的sql语句代码:

(1).创建上述三表的建库、建表代码;

要求使用:主键(教师表.编号,课程表.课号)、外键(任课表.教师编号,任课表.课号)、默认(民族)、非空(民族,姓名)、唯一(身份证号)、检查(性别(男、女)、课时数(0-200)),自动编号(ID)

(2).将下列课程信息添加到课程表的代码

课号      课程名称

100001    SQL Server数据库

100002    数据结构

100003    VB程序设计

修改  课号为100003的课程名称:Visual Basic程序设计

删除  课号为100003的课程信息

(3).写出读取(教师编号,姓名,课号,课程名称,课时数)的代码;

(4). 读取所有代'SQL Server数据库'这门课程的老师姓名的检索代码;

(5). 写出创建[统计课时数]的代码,要求加上别名:输出最大课时数、最低课时数、平均课时的执行代码;

(6).写出创建:计算某教师代课总课时,代码。

执行:计算“郭老师”的总课时。

(7).检索有一门或一门以上课程课时数大于90的所有教师的信息,包括编号、姓名。

(8).建一个规则,并将其绑定到教师表的职称列上,规定取值为('教授','副教授','讲师', '助教')之一。

示例源码如下

#(1)

drop database if exists TeacherDB;

create database TeacherDB default character set utf8 collate

utf8_bin;

use TeacherDB;

create table Teacher(

tid char(6) primary key,

tName varchar(16) not null,

tSex char(2) check(tSex='男' or tSex='女'),

tNation varchar(16) default '汉' not null,

tLevel varchar(16),

tCode varchar(18),

unique(tCode)

);

create table Course(

cid char(6) primary key,

cName varchar(64)

);

create table TeacherCourses(

ID int primary key auto_increment,

tid char(6),

cid char(6),

cCount float check(cCount>=0 and cCount<=200),

foreign key(tid) references Teacher(tid),

foreign key(cid) references Course(cid)

);

insert into Teacher values('t001','郭老师','男',default,'助教','123');

insert into Teacher values('t002','何老师','男',default,'副教授','456');

insert into Teacher values('t003','蒋老师','女','苗','讲师','789');

#(2)

insert into Course values('100001','SQL Server数据库');

insert into Course values('100002','数据结构');

insert into Course values('100003','VB程序设计');

insert into TeacherCourses values(null,'t001','100001',80);

insert into TeacherCourses values(null,'t002','100002',90);

insert into TeacherCourses values(null,'t002','100003',70);

insert into TeacherCourses values(null,'t001','100002',100);

insert into TeacherCourses values(null,'t001','100002',90);

#(3)

select Teacher.tid,tName,Course.cid,cName,cCount from

TeacherCourses,Teacher,Course where

TeacherCourses.tid=Teacher.tid and

TeacherCourses.cid=Course.cid;

#(4)

select tName from Teacher where tid in(

select tid from TeacherCourses where cid in

(select cid from Course where cName='SQL Server数据库'));

#链表思路

select tName from Teacher,Course,TeacherCourses where

TeacherCourses.tid=Teacher.tid and

TeacherCourses.cid=Course.cid and cName='SQL Server数据库';

#(5)

select max(cCount) as 最大课时数,min(cCount) 最小课时数,avg

(cCount) 平均课时数 from TeacherCourses;

#(6)

select sum(cCount) from TeacherCourses where tid=(

select tid from Teacher where tName='郭老师');

#链表思路

select sum(cCount) from Teacher,TeacherCourses where

Teacher.tid=TeacherCourses.tid and tName='郭老师';

#改动:若想获得郭老师分别带了哪些课,然后哪些课的总课时

select cid,sum(cCount) from Teacher,TeacherCourses where

Teacher.tid=TeacherCourses.tid and tName='郭老师' group by cid;

#试一试:若想获得郭老师分别带了哪些课,然后哪些课的课程号、课程名和

总课时

#(7)

select tid,tName from Teacher where tid in(

select tid from TeacherCourses where cCount>90);

#链表思路自己完成

#(8)

alter table Teacher add constraint CK_Teacher_tLevel check

(tLevel in('教授','副教授','讲师','助教'));

发表评论

发表评论电子邮件地址不会被公开。 必填项已用*标注

f9f85905b9ebdae7778de569917f394b.gif

f9f85905b9ebdae7778de569917f394b.gif

f9f85905b9ebdae7778de569917f394b.gif

f9f85905b9ebdae7778de569917f394b.gif

f9f85905b9ebdae7778de569917f394b.gif

f9f85905b9ebdae7778de569917f394b.gif

f9f85905b9ebdae7778de569917f394b.gif

f9f85905b9ebdae7778de569917f394b.gif

f9f85905b9ebdae7778de569917f394b.gif

f9f85905b9ebdae7778de569917f394b.gif

f9f85905b9ebdae7778de569917f394b.gif

f9f85905b9ebdae7778de569917f394b.gif

f9f85905b9ebdae7778de569917f394b.gif

f9f85905b9ebdae7778de569917f394b.gif

f9f85905b9ebdae7778de569917f394b.gif

f9f85905b9ebdae7778de569917f394b.gif

f9f85905b9ebdae7778de569917f394b.gif

f9f85905b9ebdae7778de569917f394b.gif

f9f85905b9ebdae7778de569917f394b.gif

f9f85905b9ebdae7778de569917f394b.gif

f9f85905b9ebdae7778de569917f394b.gif

f9f85905b9ebdae7778de569917f394b.gif

姓名 *

电子邮件 *

在此浏览器中保存我的名字、电邮和网站。

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

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

相关文章

win10安装vmware tools + 无法拖拽文件解决

1、加载VMware Tools安装光盘 打开虚拟机VMware Workstation&#xff0c;启动 Ubuntu 系统 菜单栏 - 虚拟机 - 安装VMware Tools。 2、将安装文件提取到本地磁盘 打开加载的VMwareTools光盘&#xff0c;鼠标右键 VMwareTools-*.tar.gz 文件&#xff0c;提取到系统盘下的文件…

mysql 需要什么硬件配置_如何来给指定的硬件环境配置一份比较合理的MySQL配置文件-爱可生...

简介通过sysbench的oltp_read_write测试来模拟业务压力、以此来给指定的硬件环境配置一份比较合理的MySQL配置文件。环境介绍硬件配置软件环境优化层级与指导思想优化层级MySQL数据库优化可以在多个不同的层级进行&#xff0c;常见的有&#xff1a;SQL优化参数优化架构优化本文…

图片打标

在物体检测问题中&#xff0c;第一个需要解决的就是给训练集中的图片打标&#xff0c;所谓打标&#xff0c;就是用一个文件来描述图中物体的位置框坐标&#xff08;xmin&#xff0c;ymin&#xff0c;xmax&#xff0c;ymax&#xff09;&#xff0c;以定位物体的位置。 一个比较…

动态定时任务与动态生成class代码

动态定时任务 原理 采用定时任务线程池ThreadPoolTaskScheduler来实现定时任务。动态定时任务就是可以配置的&#xff0c;而不是写死在代码中。所以我们要将其写入到数据库中&#xff0c;然后暴露接口就可以进行配置比如创建、启动、结束任务。 数据库脚本 DROP TABLE IF EXIS…

docker登录mysql数据库_Docker下搭建mysql数据库

1.获取官方镜像&#xff1a;[rootCentos7 mysql]# docker pull mysql/mysql-server:latestlatest: Pulling from mysql/mysql-server1f5b026b07bc: Pull complete3d5697fc1304: Pull complete2747c84403db: Pull completedc0c445a852b: Pull completeDigest: sha256:7aba8c77f9…

LNMP与CA认证的童话故事

在前面的一篇博客中&#xff0c;我已经介绍过&#xff0c;如何通过源码编译安装LAMP&#xff0c;见教你源码编译制作LAMP详细过程 &#xff0c;这里就介绍下如何编译安装LNMP&#xff0c;以及如何在LNMP中添加ssl认证。LNMP&#xff0c;也叫做LEMP。L&#xff0c;即linux操作系…

Zabbix 最新版 5.2 版本源码安装

Zabbix 最新版 5.0 LTS 版本安装 zabbix 5.0 版本于 5 月 11 日正式发布&#xff0c;是最新的 LTS&#xff08;长期支持&#xff09;版本&#xff0c;5.0 带来很多功能和特性&#xff0c;后面会陆续推出文章介绍&#xff0c;下面主要介绍下 5.0 版本的安装。 环境要求 5.0 版…

【声卡驱动】安装realtek high definition audio后重启电脑被自动卸载替换成系统自带的realtek auto

解决步骤 先断网安装前先记录realtek auto的GUID&#xff0c;可以从设备管理器中事件中找到它&#xff0c;复制保留备用 安装 realtek high definition audio &#xff0c;重启&#xff08;断网&#xff09;在断网状态下&#xff0c;winr &#xff0c;输入gpedit.msc&#xff…

mysql explain是什么意思_mysql explain的作用是什么?

mysql explain的作用是模拟Mysql优化器是如何执行SQL查询语句的&#xff0c;从而知道Mysql是如何处理用户的SQL语句&#xff0c;提高数据检索效率&#xff0c;降低数据库的IO成本。mysql explain的作用是&#xff1a;模拟Mysql优化器是如何执行SQL查询语句的&#xff0c;从而知…

d3.js 搭建 d3-force-directed-graph 例子

d3.js 搭建 d3-force-directed-graph 例子 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <script src&q…

js 创建快捷方式

代码 <script type"text/javascript"language"javascript">//创建快捷方式[浏览器设置要低,ff不支持]functioncreateShortcut() { varfso newActiveXObject("Scripting.FileSystemObject"); varshell newActiveXObject(&quo…

OpenLDAP在linux上的部署和原理应用centos7

轻型目录访问协议&#xff08;英文&#xff1a;Lightweight Directory Access Protocol&#xff0c;缩写&#xff1a;LDAP&#xff09;是一个开放的&#xff0c;中立的&#xff0c;工业标准的应用协议&#xff0c;通过IP协议提供访问控制和维护分布式信息的目录信息。 OpenLDAP…

c# 检测cpu使用率[测试通过]

创建一个控制台应用程序&#xff0c;代码如下 代码 usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;//引用2命名空间usingSystem.Diagnostics;usingSystem.Threading;namespaceConsoleApplication1{ classProgram { staticvoidM…

mysql怎么修改表中的文字_mysql表中怎么修改字段?

在mysql表中&#xff0c;可以使用“ALTER TABLE 表名 CHANGE 旧字段名 新字段名 数据类型;”语句来修改字段名称&#xff1b;使用“ALTER TABLE 表名 MODIFY 字段名 新数据类型;”语句来修改字段数据类型。修改字段名称MySQL 中修改表字段名的语法规则如下&#xff1a;ALTER TA…

重置mariadb密码

基本的思路是&#xff0c;以安全模式启动MariaDB&#xff0c;这样不需要密码可以直接以root身份登录&#xff0c;然后重设密码。 在Centos 7.0上的操作步骤如下&#xff1a; 首先&#xff0c;我们停掉MariaDB服务&#xff1a; systemctl stop mariadb.service #停止MariaDB在…

asp.net 取windows的所有进程

代码如下&#xff1a; 代码 #region取得windows的所有进程publicstaticstringGetCourse(){ System.Text.StringBuilder sb newSystem.Text.StringBuilder(); stringtempName ""; intbegpos, endpos; foreach(Process thisProc inSystem.Diagnostics.Proc…

asp.net 操作ftp 通用代码[测试通过]

代码如下&#xff1a; 代码 //建立目录FtpWebRequest Request (FtpWebRequest)WebRequest.Create("ftp://113.107.160.135:2121/vadmin.uuu9.com/aaa"); Request.Credentials newNetworkCredential("wanglei", "}}XnJXt4a\7datr"); …

AirFlow官方入门DAG示例

经过前两篇文章的简单介绍之后&#xff0c;我们安装了自己的AirFlow以及简单了解了DAG的定义文件&#xff0e;现在我们要实现自己的一个DAG&#xff0e; 1. 启动Web服务器 使用如下命令启用: airflow webserver 现在可以通过将浏览器导航到启动Airflow的主机上的8080端口来…

三层业务类(DAL)必用的通用方法之一

写代码有两年多的时间了&#xff0c;越来越觉得代码的通用性是衡量一个程序员的标准。 代码 #regionSqlDataReader > List///<summary>///author:Stone_W///date:2010.11.29///desc:SqlDataReader 转 List///</summary>///<param name"dr">SqlD…

使用 Packer、Ansible 和 Terraform 构建不可变的基础设施Devops工具链

在容器编排领域&#xff0c;Kubernetes 已成为事实上的标准&#xff0c;而容器镜像 (Docker Image) 作为容器技术栈中最关键的创新之一&#xff0c;极大的推动了企业内部 Devops 运动的进程。 容器镜像所具有的轻量性、便携性、分层机制和内核共享机制真正意义上实现了 “Buil…