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

猜你喜欢

转载自blog.csdn.net/qq_42192672/article/details/83270386