MySQL数据库管理(命令)

第一次接触mysql,记录一下

学习资料:https://www.cnblogs.com/GarveyCalvin/p/4297282.html

1.查看当前有哪些数据库

show databases;

2.创建数据库

create database xxxxx;

3.将它的编码设置为utf8格式

ALTER DATABASE student_xxx CHARACTER SET UTF8;

4.使用数据库并查看当前使用的数据库

5.在数据库里建立表格(记得先进入数据库)

6.查看一下当前表格

7.为表增加元素

alter table student_1 add sex char;

8.修改字段

alter table student_1 MODIFY sex int(6);

9.删除字段

10.表中插入数据并查看

给个例子吧:

用 2 种方法在数据库student中创建 StudentInfo,CourseInfo 两张表:

StudentInfo

{

学号;   姓名;   性别;   生日;(有约束)   班级;   系科;   所选课程 1;   所选课程 2;

}

CourseInfo

{

课程编号;   课程名称;   面向专业;   课程容量(?人);

学分;

}

我们先创建第一个表

create database student;

use student;
create table StudentInfo(
    -> Number int,
    -> Name varchar(10),
    -> Sex char(7),
    -> Birthda datetime,
    -> class int,
    -> major varchar(20),
    -> course1 varchar(20),
    -> course2 varchar(20));

 desc StudentInfo;

插入几个数据试试看

insert StudentInfo
    -> values
    -> ('16271226','xiaoyuyu','female','1998.10.28','16273612','xinxianquan','shuxue','yuwen');
insert StudentInfo
    ->  values
    -> ('16271227','xiaoli','male','1998.10.28','16273612','shuxue','yingyu','jingji');

在图形界面可以发现数据的确被插入了

但是为了严谨,生日和性别都需要一定程度上的约束

我现在表格里把Sex的类型改成enum

我再次插入数据是,Sex的值输入emale,会发现无法插入该Sex值

我自己是觉得图形写片段还是蛮坑的,尝试一下命令行

alter table StudentInfo
    -> add constraint daycheck CHECK(Birthda<getdate());

alter table StudentInfo
    -> add constraint sexcheck CHECK(Sex=male or female);

然后发现数据该插入插入,后来了解到这东西只是个check,就是帮你检查一下,最多提醒一下,最后还是该干嘛干嘛……打扰了,全凭自觉,也不知道是不是我phpstudy的问题,详见这个帖子:https://blog.csdn.net/u012422446/article/details/51034704

然后我们试一下尝试在表中求和和求平均数,如下

select ACG(column) as xxx from table where(condition)

接下来我们又建了一张表

我们主要是为了实现两个操作,1.liyang没选什么课,这个不难;2.有几个姓wang的,同时按照年龄降序排列

1.比较简单就不说了

2.select 'Name','Age'FROM kemubiao WHERE 'Name'='wang'order by 'Age'desc

同时我们还可以查询姓wang学生的年龄

 

 

接下来做个大的实验,要包含好多信息

这个a\b分别是两个数据库,同时可以切成若干张表来实现一些操作,头大

查询内容如下

一、

感觉前六个问题是属于一块的,先一起完成以下,首先第一步我们要考虑的就是要建立哪些表

我先见了一学生清单和课程清单,如下

然后接下来对应着课程我们建立各个课程的表格,我们先建立一个课程(gugugu)

完成查询任务2

接下来我们试着查询在gugu中小于60分的同学的学号与姓名,这里我们采用了嵌套查询

select Name,Number from student where Name in (select Name from gugu where score<60);

但我们还需要课程名称,课程编号和成绩才能完成查询3,但是很明显的是,我们表格中有些字段名是一样的,所以要在变量前加上表明来区分

这个时候肯定有些人觉得再用套现和集合查询是多此一举,直接在gugu里面select里面查询不就好了,但是这不是为了学习么,所以就多此一举一下,先输出成绩

然后输出课程名和编号

综合查询3完成,随后我又在student表中增加了字段class int(1),yixuan1 varchar(20),yixuan2 varchar(20),yixuan3 varchar(20)以及另外两门课的表格

接下来我们来搜查一下xuanjiang上过哪些老师的课

这里最后用了一个去重的操作偷了一下懒,综合查询4就完成啦

求某个老师成绩最好的学生其实也还好,用内置函数max就好了

然后通过成绩输出学生姓名与学号

综合查询5完成

接下来两个综合查询我觉得单独搜寻比较好

我自己是创建了用户,发帖,回帖三个表格

然后用嵌套直接完成综合查询6

然后最后一步要做一个排序

排序第一步肯定是要求一个和再来,统计,我最初想利用的是cont

这么些比较局限,毕竟where用很多次这个逻辑太复杂了,结合一下group by

回了区分,单独显示的时候可以把biaoti也select出来

然后就是我们的操作了,首先先要把huitie和fatie拼成一张表便于我们操作

但是如果没有回帖的话,发的帖字就不会显示出来,需要外连接

最好肯定是对这张表建一个视图,不然语句这么长嵌套太复杂了,但视图之后再学吧,先吧任务完成

搞定啦,接下来尽力shujuku_a的视图

二、

先从最简单的视图建立,就先建立班级好为2的学生在student中的属性

然后就可以在视图上查询了

然后接下来要建立有同学选的课程和信息的视图

这里是有重复的,我选择左连接来解决这个问题,如下,逻辑有点复杂,可能是我间的表格不好,如下

展示一下可视化界面上的

大功告成啦,接下来画个E-R图就好了

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值