mysql建立班级表_MySql 复习及学生表,课程表,班级表的创建
学习笔记
·数据库表的创建及查询
文章目录
学习笔记
任务过程
第一步:分析需求
第二步:新建数据库
第三步:新建表
1.Grade表
2.Student表
3.subject表
第三步:插入数据
1.Grade表
2.Student表
3.subject表
第四步:查询测试
1.查询学号为1001的学生所有信息
2.根据班级名称查询每个班级有哪些学生
3.根据 学生学号 查询学了哪些课程
4.每个年级的学生所学的课程
学习
一:三范式
二:主键、外键和索引的区别
复习
任务过程
第一步:分析需求
每张表的 字段、类型、 约束等;
需要创建学生表—student,年级表—Grade,学科表—subject
学生表中字段有studentno ( varchar )( pk ),gradeid( int ),name ( varchar )(not null) , sex(char) ,age( int ) ,city ( varchar ) ,phone ( int )
年级表中字段有gradeid ( int ) (pk),gradename ( varchar )(unique)
学科表中字段有subjectid ( int )( pk ),subjectname ( varchar )( notnull ), statyhour ( int ),gradeid( itn )
第二步:新建数据库
数据库名称 java
create database java;
第三步:新建表
1.Grade表
create table Grade(
gradeid int (5) primary key,
gradename varchar(20) unique
);
2.Student表
create table Student(
studentno varchar(10) primary key,
gradeid int(5) ,
name varchar(10) not null,
sex char(3) not null,
age int(3) not null,
city varchar(30) not null,
phone int (20) not null,
constraint Student_gradeid_fk foreign key(gradeid) references Grade(gradeid)
);
3.subject表
create table subject(
subjectid int(3) primary key,
subjectname varchar(20) not null,
statyhour int(10) ,
gradeid int(3),
constraint subject_gradeid_fk foreign key(gradeid) references Grade(gradeid)
);
第三步:插入数据
1.Grade表
insert into Grade(gradeid,gradename) values(1,"java33");
insert into Grade(gradeid,gradename) values(2,"java34");
insert into Grade(gradeid,gradename) values(3,"java35");
2.Student表
insert into student(studentno,gradeid,name,sex,age,city,phone) values("1001",1,"王可","男",20,"北京市石景山",12312344);
insert into student(studentno,gradeid,name,sex,age,city,phone) values("1002",1,"凌洋","女",20,"湖南省长沙",1244);
insert into student(studentno,gradeid,name,sex,age,city,phone) values("1003",2,"杨阳","男",20,"上海市长虹区",342344);
insert into student(studentno,gradeid,name,sex,age,city,phone) values("1004",2,"姜北","男",20,"河北省邯郸市",876554);
insert into student(studentno,gradeid,name,sex,age,city,phone) values("1005",3,"张三","女",20,"山东省济南市",234344);
insert into student(studentno,gradeid,name,sex,age,city,phone) values("1006",3,"王五","男",20,"湖州德清",7895674);
3.subject表
insert into subject(subjectid,subjectname,statyhour,gradeid)values(1,"Javase",40,3);
insert into subject(subjectid,subjectname,statyhour,gradeid)values(2,"HTML和CSS网页技术",60,2);
insert into subject(subjectid,subjectname,statyhour,gradeid)values(3,"mysql",70,1);
第四步:查询测试
1.查询学号为1001的学生所有信息
select * from student where studentno="1003";
2.根据班级名称查询每个班级有哪些学生
select gradename,name from Grade left outer join Student on Grade.gradeid=Student.gradeid;
3.根据 学生学号 查询学了哪些课程
select studentno,name,gradename from Student inner join Grade on Grade.gradeid=Student.gradeid where studentno=1002;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-31qsIFzn-1575379512201)(1004.png)]
4.每个年级的学生所学的课程
select Grade.gradename,Student.name, subject.subjectname from
Grade inner join Student on Grade.gradeid = Student.gradeid
inner join subject on Grade.gradeid=subject.gradeid;
学习
一:三范式
解释:
1NF:原子性 字段不可再分,否则就不是关系数据库; ------------字段不可分;
2NF:唯一性 要求数据库表中的每个实例或行必须可以被惟一的区分; -----有主键,非主键字段依赖主键,不能部分依赖;
3NF:每列都与主键有直接关系,不存在传递依赖; -------非主键字段不能相互依赖;
二:主键、外键和索引的区别
定义:
主键:唯一标识一条记录,不能有重复,不允许为空。
外键:表的外键是另一表的主键,外键是可以有重复的,可以是空值。
索引:该字段没有重复值,但可以有一个空值。
作用:
主键:用来保证数据完整性
外键:用来和其他表建立联系,用于保持数据的一致性。
索引:用来提高查询排序的速度
个数:
主键:主键只能有一个。
外键:一个表可以有多个外键。
索引:一个表可以有多个唯一索引。
-- 外键约束
constraint A表_id字段_fk foreign key(id字段) references B表(id字段);
如:
constraint subject_gradeid_fk foreign key(gradeid) references Grade(gradeid);
subject表中的gradeid 是 Grade表中的主键,所以gradeid是subject的外键。
复习
建库
create database practice; – 表示创建名字为practice的数据库
drop database practice; – 表示删除名字为practice的数据库
建表
create table 表名 (
字段名1 数据类型,
字段名2 数据类型,
字段名3 数据类型,
… …
);
向表格中增加字段
alter table 表名 add 字段名 数据类型;
实现表格中字段的改变
alter table 表名 change 旧字段名 新字段名 数据类型;
实现表格中字段的删除
alter table 表名 drop 字段名;
实现表格名称的重命名
alter table 表名 rename to 新的表名;
新增数据
insert into 表名 [(字段名1, 字段名2, …)] values (值1, 值2, …);
更改数据
update 表名 set 字段名1 = 值1 [where 条件];
删除数据
delete from 表名 [where 条件];
基本查询
select 字段名1, 字段名2, … from 表名;
select [distinct] 字段名1 [as 别名1], 字段名2 [as 别名2], … from 表名
[where 查询条件]
[group by 字段名]
[having 条件]
[order by 字段名1 asc或desc];
[distinct]--------去重
[as …]---------别名
[group]--------分组查询
[having 条件]-------------分组后过滤
[order by 字段名1 asc或desc];------------字段排序
between… and …、
按照条件进行模糊查询 …where first_name like ‘%拉’;
内连接:
select [表名1.]字段名1, [表名2.]字段名2, … from 表名1 inner join 表名2 on 连接条件;
左外连接:
select [表名1.]字段名1, [表名2.]字段名2, … from 表名1 left outer join 表名2 on 连接条件;
右外链接:
select [表名1.]字段名1, [表名2.]字段名2, … from 表名1 right outer join 表名2 on 连接条件;
分页查询 select 字段名1 [as 别名1], 字段名2 [as 别名2], ... from 表名 limit 初始位置(下标默认从0开始), 记录的条数;
join 表名2 on 连接条件;
右外链接:
select [表名1.]字段名1, [表名2.]字段名2, … from 表名1 right outer join 表名2 on 连接条件;
分页查询
select 字段名1 [as 别名1], 字段名2 [as 别名2], ... from 表名 limit 初始位置(下标默认从0开始), 记录的条数;
mysql建立班级表_MySql 复习及学生表,课程表,班级表的创建相关推荐
- mysql建立联合索引_mysql之联合索引
mysql之联合索引测试: 前期准备: 建立联合索引? CREATE TABLE `test` ( `id` bigint(16) NOT NULL AUTO_INCREMENT, `aaa` var ...
- mysql怎么退出当前表_MYSQL基本操作--登陆退出,数据库、表、字段的创建、查看、删除、更改...
1.mysql启动与登陆退出 1.1.启动与停止mysql 1.2.登陆 1.3.退出 2.数据库的基本操作 2.1.创建数据库 2.2.显示数据库 2.3.选择与修改数据库 2.4.删除数据库 3. ...
- 怎么查找表_MySQL索引是怎么支撑千万级表的快速查找?
前言 在 MySQL 官方提到,改善操作性能的最佳方法 SELECT在查询中测试的一个或多个列上创建索引.索引条目的作用类似于指向表行的指针,从而使查询可以快速确定哪些行与WHERE子句中的条件匹配, ...
- delete 会不会锁表_MySQL的insert into select 引发锁表
上周五HaC我要上线,有一个脚本需要执行,执行前需要备份一个表. 运维大佬:"这个表的备份为什么要这么久,,??" 1秒过去了--2秒过去了-- 期间运营反馈系统出现大量订单超时情 ...
- mysql 备份表_MySQL中表的复制以及大型数据表的备份教程
表复制mysql拷贝表操作我们会常常用到,下面就为您详细介绍几种mysql拷贝表的方式,希望对您学习mysql拷贝表方面能够有所帮助. 假如我们有以下这样一个表: id username passwo ...
- python复制mysql表_MySQL中表的复制以及大型数据表的备份教程
CREATE TABLE newadmin ( id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY ) AS ( SELECT * FROM admin ) ...
- 【SQL】通过SQL 语句创建学生信息表(学号、学生姓名、班级)、学习成绩表(学号、学科、成绩)
1.创建数据库 Create Database School 2.创建数据表 学生表(学号.姓名.性别.所在班级.年龄) Create table student(Sno nvarchar(100) ...
- linux mysql清除数据库所有表_MySQL修复指定数据库下的所有表
mysql,mariadb,percona 这几天数据库频繁crash,查看日志发现类似如下的错误: [ERROR] mysqld: Table './database/pre_forum_forum ...
- mysql 锁24小时_MySQL中Alter table 不长时间锁表的情况汇总。
查看原文:http://www.tanbo.name/html/99669.html 前言: MySQL 的大表运维总是令人头疼的一件事,特别是大表表结构的修改尤为困难. 首先,alter table ...
最新文章
- Android文件的下载
- 隔壁,阿里18k老测试员常用的 软件测试工具大全
- 【转】DNS查询过程
- SQLite的锁的原理:
- python编程入门经典 评分-豆瓣评分爆炸!Python+机器学习经典图书
- Centos7安装mongo3.4
- 报告如何单独添加水印?永洪BIV9.2解锁版权保护新方式
- Pytorch(3)-数据载入接口:Dataloader、datasets
- Smalltalk 语言的地位为何一落千丈?
- 测试计算机性能的软件比较专业,用什么软件可以测试计算机的整体性能?
- mysql数据库输入窗体vbs代码_VBS教程:VBScript 与窗体
- SSH远程登录原理学习
- threejs 绘制星空
- 苹果电脑计算机找不到打印机,macbook air电脑关于添加打印机的问题
- iPhone模拟器截图
- 使用 PhyML 构建进化树
- 计算机桌面底边出现库如何去掉,桌面图标有蓝底怎么去掉? 去掉桌面图标阴影技巧...
- 信息技术必修丨网络文件扩展名与文件储存格式
- 图象处理基本算法[整理]
- 支付宝人脸认证(安卓)
热门文章
- python如何检验显著性差异_[Python] 如何证明两组样本有显著性差异(t-test假设检验) | 学步园...
- Silver Cow Party POJ - 3268
- PAT 1096大美数(测试点3)
- php图片重复的,很强的PHP图片处理类
- Uestc-1002-解救小Q
- 美通社日历 | 媒体关注、会展信息、企业财报发布,节假日备忘(1月25日-31日)...
- 【BLE】SIG-蓝牙技术联盟
- iPhone文件难管理?iOS三大工具来帮你!
- 怎样掌握在和客户沟通中的小技巧
- C语言static变量详解