【mysql3】我的大学teacher课程进行中|持续更新系列!
1.做一下powerdesigner的画图
2.所有的创建表格
.....1
修改字段的数据类型:
alter table 表名 modify 字段名 新数据类型;
...2
...3
...4
...5
....6
1
MySQL配置、启动、登录操作
操作要求:
1.在windows服务对话框中,手动启动或者关闭mysql 服务。
2.使用net命令启动或者关闭mysql 服务。
3.配置系统变量path ,确保mysql安装路径下的bin文件夹包含在path变量中。
#文件在C:\Program Files\MySQL\MySQL Server 5.7\bin,在系统的高级环境变量中path配置。
4.分别用 navicat 工具和命令行方式登录mysql服务器。在命令行如何退出?
5.在命令行修改登录密码,并重新登录。
方法1: 用SET PASSWORD命令
首先登录MySQL。
#mysql -uroot -proot
格式:mysql> set password for 用户名@localhost = password('新密码');
#set password for root@localhost = password('123456'); // 将密码root改为123456
方法2:用mysqladmin
格式:mysqladmin -u用户名 -p旧密码 password 新密码、
#mysqladmin -uroot -proot password 123456;
6.在命令行查看mysql版本信息。
status /select version();
#status;
#select version();
7.在命令行查看mysql帮助信息。
help
#help;
8.在命令行查看mysql状态信息。
status
#status;
9.把命令提示符修改为hao>
prompt hao> (prompt \u@\h\d>) (注意后面不能加分号)
#prompt \u@\h\d>
10.将字符编码改为gbk。
#set names gbk;
。。。
。。。
2
表的建立和修改
分别用navicat工具和命令行方式在cjgl数据库中完成如下操作:
(用navicat,新建数据库:cjgl)
一、 1. 建名为xs的学生表 ,xs表字段要求如下:
学号 char(6) 主键 not null
姓名 varchar(8) not null
专业名 varchar(20) null
性别 char(2) not null 默认值:'男'
出生日期 date not null
总学分 tinyint null
备注 text null
#create table xs (
学号 char(6) primary key not null,
姓名 varchar(8) not null,
专业名 varchar(20) null,
性别 char(2) not null default '男',
出生日期 date not null,
总学分 tinyint
备注 text null
);
2.查看表的结构和创建代码,查看当前库中所有已建的表。
#desc xs;
#show tables;
#select * from xs;
#show columns from xs;
3.修改xs表的列‘总学分’数据类型为smallint。
#alter table xs modify 总学分 smallint;
4.将xs表的字符集改为utf8,然后再改为gb2312。
#alter table xs default charset=utf8;
5.将xs表的出生日期改名为出生时间。
#alter table xs change 出生日期 出生时间 date;
6.在xs表中添加一个‘联系电话’字段,char(11),null。然后删除这个字段。
#alter table xs add 联系电话 char(11) null;
#alter table xs drop column 联系电话;
7.将xs表复制,复制后的表名为xsbk。
#insert into
8.将表xsbk 的存储引擎改为myisam,并查看改否。
#
9.将表xsbk重命名为xs_bk。
#
10.删除xs_bk表。
#
二、 建名为kc的课程表 ,kc表字段要求如下:
课程号 char(3) 主键 not null
课程名 varchar(20) not null 不能有重复值(唯一约束)
开课学期 tinyint not null 默认值:1
学分 tinyint null
#create table kc(
课程号 cahr(3) primary key not null,
课程名 varchar(20) not null unique,
开课学期 tinyint not null default 1,
学分 tinyint null
);
三、建名为cj的成绩表 ,cj表字段要求如下:
学号 char(6) 外键:(xs) 表的学号
课程号 char(3) 外键:(kc) 表的课程号
成绩 decimal(3,1) null
其中,学号与课程号一起作为主键。
#create table cj(
学号 char(6) not null,
课程号 char(3) not null,
成绩 decimal(3,1) null,
primary key(学号,课程号),
constraint fk_xh foreign key (学号) references xs(学号) on delete cascade on update cascade,
constraint fk_kch foreign key (课程号) references xs(课程号) on delete cascade on update cascade
);
3
创建和维护数据库等操作/命令行方式
操作要求:
1.创建数据库。
cascade:级联。
如果xs表的学号删除,则对应cj表的学号也删除。
如果xs表的学号更新,则对应cj表的学号也更新。
1.1使用SQL 语句创建数据库cjgl。
1.2查看数据库属性。
①利用SHOW DATABASES 命令显示当前的所有数据库。
②利用SHOW CREATE DATABASE 命令显示cjgl 数据库的状态。
1.3将数据库的字符编码改为utf8。
1.4选择数据库
①在命令行中选择cjgl数据库。
②用select database() 命令显示当前被打开的数据库。
1.5数据库备份
用命令行方式将cjgl数据库进行备份
导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名
比如在命令行中输入命令 mysqldump -u root -p person >d:\person.sql
(如果导出单张表的话在数据库名后面输入表名即可)
1.6删除数据库。
① 使用SQL 语句删除cjgl 数据库。
②利用SHOW DATABASES 命令显示当前的所有数据库。
1.7数据库恢复
1.7.2用命令行方式将cjgl数据库进行恢复。
1.7.3导入数据库
1、进入MySQL
2、新建一个数据库,这时是空数据库,如新建一个名为person的目标数据库
3、输入:mysql>use 目标数据库名 如输入:mysql>use person;
4、导入文件:mysql>source 导入的文件名; 如输入:mysql>source d:/person.sql
分别用navicat工具和命令行方式在cjgl数据库中完成如下操作:
(用navicat,新建数据库:cjgl)
#create database cjgl;
#use cjgl;
#show create database cjgl;
#show databases;
一、 1. 建名为xs的学生表 ,xs表字段要求如下:
学号 char(6) 主键 not null
姓名 varchar(8) not null
专业名 varchar(20) null
性别 char(2) not null 默认值:'男'
出生日期 date not null
总学分 tinyint null
备注 text null
2.查看表的结构和创建代码,查看当前库中所有已建的表。
#show tables;(查看表必须 先进入数据库)
#show create table xs; 查看表结构
#desc xs; 常用
#show columns from xs;
3.修改xs表的列‘总学分’数据类型为smallint。
#alter table xs modify 总学分 smallint;
4.将xs表的字符集改为utf8,然后再改为gb2312。
#
5.将xs表的出生日期改名为出生时间。
#alter table xs change 出生日期 出生时间 date;
6.在xs表中添加一个‘联系电话’字段,char(11),null。然后删除这个字段。
#alter table xs add 联系电话 char(11) null;
7.将xs表复制,复制后的表名为xsbk。
8.将表xsbk 的存储引擎改为myisam,并查看改否。
9.将表xsbk重命名为xs_bk。
10.删除xs_bk表。
二、 建名为kc的课程表 ,kc表字段要求如下:
课程号 char(3) 主键 not null
课程名 varchar(20) not null 不能有重复值(唯一约束)
开课学期 tinyint not null 默认值:1
学分 tinyint null
三、建名为cj的成绩表 ,cj表字段要求如下:
学号 char(6) 外键:(xs) 表的学号
课程号 char(3) 外键:(kc) 表的课程号
成绩 decimal(3,1) null
其中,学号与课程号一起作为主键。
操作要求:
1.创建数据库。
#create database cjgl;
2.使用SQL 语句创建数据库cjgl。
3.查看数据库属性。
#show databases;
用SHOW DATABASES 命令显示当前的所有数据库。
#show create database cjgl;
用SHOW CREATE DATABASE 命令显示cjgl 数据库的状态。
(3)将数据库的字符编码改为utf8。
#set names gbk;
(4)选择数据库
①在命令行中选择cjgl数据库。
②用select database() 命令显示当前被打开的数据库。
(5)数据库备份
②用命令行方式将cjgl数据库进行备份
导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名
比如在命令行中输入命令 mysqldump -u root -p person >d:\person.sql
(如果导出单张表的话在数据库名后面输入表名即可)
(6)删除数据库。
① 使用SQL 语句删除cjgl 数据库。
②利用SHOW DATABASES 命令显示当前的所有数据库。
(7)数据库恢复
②用命令行方式将cjgl数据库进行恢复。
导入数据库
1、进入MySQL
2、新建一个数据库,这时是空数据库,如新建一个名为person的目标数据库
3、输入:mysql>use 目标数据库名 如输入:mysql>use person;
4、导入文件:mysql>source 导入的文件名; 如输入:mysql>source d:/person.sql
四做疫情数据的表格
gj (国家)
列名 |
数据类型 |
允许null值 |
约束 |
备注 |
Country code |
Int |
不允许 |
主键 |
国家代码 |
Country name |
Varchar(20) |
不允许 |
国家名字 |
dq(地区)
列名 |
数据类型 |
允许NULL值 |
约束 |
备注 |
Did |
Int |
不允许 |
序号 |
|
Region code |
Int |
不允许 |
主键 |
地区代码 |
Region name |
Varchar(20) |
不允许 |
地区名称 |
sj (数据)
列名 |
数据类型 |
允许null值 |
约束 |
备注 |
Sid |
Int |
不允许 |
主键 |
序号 |
Region code |
int |
不允许 |
外键(Region code) |
地区代码 |
Country code |
Int |
不允许 |
外键(Country code) |
国家代码 |
Total cases() |
Long |
允许 |
累计总数 |
|
Total deaths |
long |
允许 |
累计死亡总数 |
|
Total vaccine dose administered |
Long |
允许 |
接种疫苗总数 |
|
28-day cases |
long |
允许 |
近28天确诊总数 |
|
28-day deaths |
long |
允许 |
近28天累计死亡 |
|
28-day vaccine dose administered |
long |
允许 |
近28天累计接种疫苗总数 |
|
Date time |
date |
不允许 |
截至日期 |
|
第八周周五
1.将xs表中王元的专业改为“智能建筑”。
# update xs set 专业名='智能建筑' where 姓名='王元';
# select * from xs where 姓名='王元';
2.把李伟的出生时间改为'1999-2-5'。
# update xs set 出生日期='1999-2-5' where 姓名='李伟';
3.把每门课的学分增加1分。把软件工程课的学分增加2分。
#update kc set 学分=学分+1;
# update kc set 学分=学分+2 where 课程名=’软件工程’;
4.将cj中的成绩分5个档,0-20为5档,20-40为4档,依此类推,每20分一档。在cj表添加一列“档次”,使用update命令填入各成绩档次。
#alter table cj add 档次 tinyint null;
#update cj
set 档次=(case
when 成绩>=0 and 成绩<20 then 5
when 成绩>=20 and 成绩<40 then 4
when 成绩>=40 and 成绩<60 then 3
when 成绩>=60 and 成绩<80 then 2
when 成绩>=80 and 成绩<=100 then 1
end);
5.删除xs中姓名为‘白天东’的记录。
# delete from xs where 姓名=’白天东’;
第九周周二
uid char(4) not null primary key,
uname varchar(20),
email varchar(20),
tnum varchar(15),
score int);
alter table user add 联系地址 varchar(50);
第九周周五
第十周周二
一、查询表中所有的列(用通配符*)
1.在学生成绩管理数据库cjgl中,查询学生表xs中每位同学的情况。
#use cjgl;
#select * from xs;
2.在学生成绩管理数据库cjgl中,查询课程表kc中每门课的情况。
#select * from kc;
二、查询表中指定的列(用as可重新指定列名,as可省略)
1.在学生成绩管理数据库cjgl中,查询学生表xs每位同学的姓名、性别、出生时间、专业。
#select 姓名,性别,出生日期 as 出生时间, 专业名 as 专业 from xs;
2.在学生成绩管理数据库cjgl中,查询课程表kc中每门课的课程名、学分。
#select 课程名,学分 from kc;
三、查询经过计算的列
1.在学生成绩管理数据库cjgl中,查询学生表xs中每位同学的学号、姓名、年龄。(用到year()、 CURDATE()或now()函数)
#select 姓名,学号, year(now())-year(出生日期) as 年龄 from xs;
2.在学生成绩管理数据库cjgl中,查询出学分对应的课程学时数(假设1学分计18学时)
#select 课程名,学分*18 as 学时 from kc;
四、消除重复行
1.在学生成绩管理数据库cjgl中,查询选修了课程的学生学号(无重复学号)。
#select distinct 学号 from cj;
2.在学生成绩管理数据库cjgl中,查询学生表xs中各专业名称(无重复专业名称)。#
五、限制返回行数
1.在学生成绩管理数据库cjgl中,查询课程表kc中前3行记录。
select * from kc limit 3
2.在学生成绩管理数据库cjgl中,查询学生表xs中从第6个记录开始3行记录。(注意第一条记录位置是0)
select * from xs limit 5,3
--------------------------------------------------------------------------------------------------2
一、表达式比较
1.在学生成绩管理数据库cjgl中,查询软件技术专业的学生情况。
2.在学生成绩管理数据库cjgl中,查询软件技术专业男同学的情况。
3.在学生成绩管理数据库cjgl中,查询出年满27岁的学生信息。
二、范围比较
1.在学生成绩管理数据库cjgl中,查询1990年出生的学生情况。
2.在学生成绩管理数据库cjgl中,查询成绩表cj中成绩不在70--80之间的记录。
三、确定集合
1. 在学生成绩管理数据库cjgl中,查询选了课程号为“101”或“102”的同学学号。
2.在学生成绩管理数据库cjgl中,查询姓名为王元、王稼祥、程周杰的同学。
四、模式匹配
1.在学生成绩管理数据库cjgl中,查找所有王姓同学的学号和姓名;
2.查询姓名中第2个汉字是“长”的同学的学号和姓名。
五、空值判断
1.在学生成绩管理数据库cjgl中,查询没有考试成绩的学生的学号和相应的课程号。
2.在学生成绩管理数据库cjgl中,查询学生表xs中没有备注内容的学生学号、姓名。
【mysql3】我的大学teacher课程进行中|持续更新系列!的更多相关文章
- angular+ionic+cordova(实战项目开发中,持续更新自己学到的和遇到的)
最近公司开始准备做app了,大佬选择了angular+ionic+corvoda的开发结构,但是对于刚刚才开始对angular才有一点点感觉的我,就像是被一击闷棍敲了,半天没反应过来,emmm,怎么办 ...
- PHP开发过程中数组汇总 [ 持续更新系列 ]
开发过程中经常会使用到数组函数,故特地总结出来,自己熟悉,同时供大家参考!(实例部分会抽空尽快完成) 一.目录 array_merge(); 合并数组 array_keys(); array_filt ...
- 我的敏捷、需求分析、UML、软件设计电子书 - 下载(持续更新中)
我将所有我的电子书汇总在一起,方便大家下载!(持续更新) 文档保存在我的网站——软件知识原创基地上(www.umlonline.org),请放心下载. 1)软件设计是怎样炼成的?(2014-4-1 发 ...
- Vue.js2.0中的变化(持续更新中)
最近自己在学习Vue.js,在看一些课程的时候可能Vue更新太块了导致课程所讲知识和现在Vue的版本不符,从而报错,我会在以后的帖子持续更新Vue的变化与更新,大家也可以一起交流,共同监督学习! 1. ...
- git常用命令(持续更新中)
git常用命令(持续更新中) 本地仓库操作git int 初始化本地仓库git add . ...
- Atom使用记录(持续更新中)
部分内容取自:http://www.jianshu.com/p/dd97cbb3c22d,我自己也在使用,持续更新中 Atom安装插件在窗口中File---Setting---install 在里面进 ...
- Pig基础学习【持续更新中】
*本文参考了Pig官方文档以及已有的一些博客,并加上了自己的一些知识性的理解.目前正在持续更新中.* Pig作为一种处理大规模数据的高级查询语言,底层是转换成MapReduce实现的,可以作为MapR ...
- Pig语言基础-【持续更新中】
***本文参考了Pig官方文档以及已有的一些博客,并加上了自己的一些知识性的理解.目前正在持续更新中.*** Pig作为一种处理大规模数据的高级查询语言,底层是转换成MapReduce实现的, ...
- java视频教程 Java自学视频整理(持续更新中...)
视频教程,马士兵java视频教程,java视频 1.Java基础视频 <张孝祥JAVA视频教程>完整版[RMVB](东西网) 历经5年锤炼(史上最适合初学者入门的Java基础视频)(传智播 ...
随机推荐
- pycharm 增删改查 mysql数据库
1.pycharm创建mysql数据表######################################################import pymysql# 创建连接con = p ...
- LR11自带网站
LR自带的飞机订票系统 启动服务:安装路径\HP\LoadRunner\WebTours下的StartServer.bat 打开网页:地址 http://127.0.0.1:1080/WebTour ...
- P2350-[HAOI2012]外星人【线性筛】
正题 题目链接:https://www.luogu.com.cn/problem/P2350 题目大意 给出\(N\)质因数分解之后的结果,求每次\(N=\varphi(N)\),多少次后\(N=1\ ...
- 自学 Python,视频教程和代码一看就懂,动手就废,应该这么学
一.代码量太少了,看得多做得少,导致一做就错. 每一个测试工程师必定是在大量的时间和代码中提升的自己,如果你只是看视频的话,那永远都停留在理论上,很多问题是要实践才能发现的 我打个比方你看视频的时 ...
- Ubuntu-mate-20.04-desktop安装总结
ubuntu-mate-20.04-desktop效果先展示下: Ubuntu用MATE桌面环境同时配合compiz 窗口管理器是目前为止得到的桌面中最喜欢的样式 一.ubuntu-mate官网下载i ...
- 3.docker容器常用命令
docker容器的常用命令 docker有很多命令,让我们一个一个全部背下来,基本是不可能的,帮助文档的作用就很大了,想要查询那个命令,直接去找帮助文档,帮助文档地址:https://docs.doc ...
- 5分钟实现用docker搭建Redis集群模式和哨兵模式
如果让你为开发.测试环境分别搭一套哨兵和集群模式的redis,你最快需要多久,或许你需要一天?2小时?事实是可以更短. 是的,你已经猜到了,用docker部署,真的只需要十几分钟. 一.准备工作 拉取 ...
- Google Style Guides
Google Style Guides Google Style Guides Google 开源项目风格指南 (zh-google-styleguide.readthedocs.io)
- WSL (Windows Subsystem for Linux)
WSL (Windows Subsystem for Linux) :适用于 Linux 的 Windows 子系统. References Install WSL with a single com ...
- flask 之 请求钩子
请求钩子 什么是请求钩子? 在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要统一处理,为了让每个视图函数避免编写重复功能的代码,flask提供了统一的接口可以添加这些处理函数,即请求钩子. f ...