【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基础视频)(传智播 ...
随机推荐
- Java面向对象系列(3)- 回顾方法的调用
方法的调用 静态方法 非静态方法 形参和实参 值传递和引用传递 this关键字(继承篇讲解) 静态方法 非静态方法 形参和实参 package oop.demo01; public class Dem ...
- pip3 install beautifulsoup4 出现错误 There was a problem confirming the ssl certificate
chenhuimingdeMacBook-Pro:groceryList Mch$ sudo pip3 install beautifulsoup4 The directory '/Users/Mch ...
- requests + 正则表达式 获取 ‘猫眼电影top100’。
使用 进程池Pool 提高爬取数据的速度. 1 # !/usr/bin/python 2 # -*- coding:utf-8 -*- 3 import requests 4 from request ...
- P4929-[模板]舞蹈链(DLX)
正题 题目链接:https://www.luogu.com.cn/problem/P4929 题目大意 \(n*m\)的矩形有\(0/1\),要求选出若干行使得每一列有且仅有一个\(1\). 解题思路 ...
- Spirit带你彻底搞懂JS的6种继承方案
JavaScript中实现继承的6种方案 01-原型链的继承方案 function Person(){ this.name="czx"; } function Student(){ ...
- (一):细说贝叶斯滤波:Bayes filters
认知计算,还要从贝叶斯滤波的基本思想讲起,本文主要是对<Probabilistic Robotics>中贝叶斯滤波器部分的详细讲解. 这一部分,我们先回顾贝叶斯公式的数学基础,然后再来介绍 ...
- 势流理论笔记:03 Hess-Smith积分方法
书接上回势流理论笔记:02 直接法与间接法 Hess-Smith方法 采用面向对象编程的思路,\(Matlab\)程序脚本,实现以下功能: 输入面元(四边形面元顶点坐标) 输出系数矩阵\([H][M] ...
- 从零入门 Serverless | SAE 场景下,应用流量的负载均衡及路由策略配置实践
作者 | 落语 阿里云云原生技术团队 本文整理自<Serverless 技术公开课>,关注"Serverless"公众号,回复"入门",即可获取 S ...
- dev分支和release是什么
master(主分支) 存在一条主分支(master).所有用户可见的正式版本,都从master发布(也是用于部署生产环境的分支,确保master分支稳定性).主分支作为稳定的唯一代码库,不做任何开发 ...
- ☕【Java技术指南】「编译器专题」深入分析探究“静态编译器”(JAVA\IDEA\ECJ编译器)是否可以实现代码优化?
技术分析 大家都知道Eclipse已经实现了自己的编译器,命名为 Eclipse编译器for Java (ECJ). ECJ 是 Eclipse Compiler for Java 的缩写,是 Jav ...