【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基础视频)(传智播 ...
随机推荐
- Linux系列(25) - 常用快捷键(未更新完)
快捷键 说明 Ctrl+L 清屏 tab tab按一次自动补全目录文件名称/tab按二次将目录下带有补全前面字段的所有文件目录展示出来,例子: cd / tab键按两次将根目录下所有文件展示出来 ...
- Dapr + .NET Core实战(四)发布和订阅
什么是发布-订阅 发布订阅是一种众所周知并被广泛使用的消息传送模式,常用在微服务架构的服务间通信,高并发削峰等情况.但是不同的消息中间件之间存在细微的差异,项目使用不同的产品需要实现不同的实现类,虽然 ...
- MySql分区、分表和分库
MySql分区.分表和分库 数据库的数据量达到一定程度之后,为避免带来系统性能上的瓶颈.需要进行数据的处理,采用的手段是分区.分片.分库.分表. 一些问题的解释: 1.为什么要分表和分区? 日常开发中 ...
- maven编译打包
sonar扫描java项目,需要使用maven 来到maven项目下第一件事情编译打包,注意代码扫描是在编译之后的:https://blog.csdn.net/qq_34556414/article/ ...
- javascript 实现php str_pad
* 查看php.net官方手册 string str_pad ( string $input , int $pad_length [, string $pad_string = " &quo ...
- chrome 的 options 参数
在使用selenium浏览器渲染技术,爬取网站信息时,默认情况下就是一个普通的纯净的chrome浏览器,而我们平时在使用浏览器时,经常就添加一些插件,扩展,代理之类的应用.相对应的,当我们用chrom ...
- django ORM教程(转载)
Django中ORM介绍和字段及字段参数 Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简 ...
- js原型和原型链理解 constructor 构造函数
一.对象:普通对象 函数对象 二.构造函数特点:1.需要new实例化,内部使用this对象指向即将要生成的实例对象 2.首字母大写,用于区分普通函数 function Person(name){ ...
- Python中Tk模块简单窗口设计
Python中Tk和PyQt都可以设计小程序,区别在于:Tk界面美观度相对较差,但由于是Python的内置模块,最终生成的程序大小相比于PyQt较小. import tkinter # 导入TKint ...
- [转载]linux下配置mariadb支持中文
转载网址:http://www.cnblogs.com/vingi/articles/4302330.html 修改/etc/mysql/my.cnfOn MySQL 5.5 I have in my ...