第一次接触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