《SQL高级应用和数据仓库基础(MySQL版)》作业 ·004
问题列表
1.创建表date_test,包含列d,类型为date型。试向date_test表中插入两条记录,一条当前系统日期记录,一条记录为“1998-08-18”。2.创建与dept表相同表结构的表dtest,将dept表中部门编号在40之前的信息插入该表。3.创建与emp表结构相同的表empl,并将其部门编号为前30号的员工信息复制到empl表。4.试为学生表student增加一列学生性别gender 默认值 “女”。5.试修改学生姓名列数据类型为定长字符型10位。6.简述5种约束的含义。7.创建学生关系sc,包括属性名:–选课流水号 数值型 主键;–学生编号 非空 外键–课程编号 非空 外键;–成绩 0-100之间;8.创建copy_emp,要求格式同emp表完全一样,不包含数据。9.创建copy_dept,要求格式同dept表完全一样,不包含数据。10.设置copy_emp 表中外键deptno,参照copy_dept中deptno,语句能否成功,为什么?11.追加copy_dept表中主键deptno
参考题解
1.创建表date_test,包含列d,类型为date型。试向date_test表中插入两条记录,一条当前系统日期记录,一条记录为“1998-08-18”。
create table if not exists date_test(d date);insert into date_test values(now());
insert into date_test values('1998-08-18');
2.创建与dept表相同表结构的表dtest,将dept表中部门编号在40之前的信息插入该表。
create table if not exists dtest as select * from dept where deptno < 40;
3.创建与emp表结构相同的表empl,并将其部门编号为前30号的员工信息复制到empl表。
create table if not exists emp1 as select * from emp where empno <= 30;
4.试为学生表student增加一列学生性别gender 默认值 “女”。
alter table student add column gender enum('男', '女') default '女'; -- 如果还有其他原有约束就加上去
5.试修改学生姓名列数据类型为定长字符型10位。
alter table student modify column sname char(10); -- 如果还有其他原有约束就加上去
6.简述5种约束的含义。
1、非空约束(not null)不能为空值(null)2、唯一约束(unique)值唯一,可以为空(并且空值可以不唯一)3、主键约束(primary key)唯一非空,能唯一标识表中的一条记录(一个表中只能有一个主键)4、外键约束(foreign key)由从表中的外键列引用主表中的引用列(只能是主键/唯一键)可以对此外键约束设置相关级联操作(默认update/delete时均为restrict)5、默认值约束(default)设置插入数据时候的某列的默认值
7.创建学生关系sc,包括属性名:
选课流水号 数值型 主键
学生编号 非空 外键
课程编号 非空 外键
成绩 0-100之间
create table if not exists sc(scno int,sno int not null,cno int not null,credit int,constraint sc_scno_pk primary key(scno),constraint sc_sno_fk foreign key(sno) references student(sno),constraint sc_cno_fk foreign key(cno) references course(cno)
);create trigger sc_credit_insert_trgbefore insert on scfor each rowbeginif new.credit < 0 thenset new.credit = 0;elseif new.credit > 100 thenset new.credit = 100;end if;end;create trigger sc_credit_update_trgbefore update on scfor each rowbeginif new.credit < 0 thenset new.credit = 0;elseif new.credit > 100 thenset new.credit = 100;end if;end;
8.创建copy_emp,要求格式同emp表完全一样,不包含数据。
create table if not exists copy_emp like emp;
9.创建copy_dept,要求格式同dept表完全一样,不包含数据。
create table if not exists copy_dept like dept;
10.设置copy_emp 表中外键deptno,参照copy_dept中deptno,语句能否成功,为什么?
因为之前第8、9两道题我把主键约束也复制了过来
所以根据以下SQL成功执行、在Navicat里表的设计里粗略观察无异状这点来看,应该是可以的create table dept(deptno int primary key
);create table emp(empno int primary key,deptno int,foreign key(deptno) references dept(deptno)
);create table if not exists copy_emp like emp;
create table if not exists copy_dept like dept;alter table copy_emp add foreign key(deptno) references copy_dept(deptno);
11.追加copy_dept表中主键deptno
因为我觉得第9题所述的“格式完全一样”包括了约束,所以复制表的时候我把应该已经有了主键约束假设现在这个表(copy_dept)没有主键约束好了,就按照下面这么写:
alter table copy_dept add primary key(deptno);
《SQL高级应用和数据仓库基础(MySQL版)》作业 ·004相关推荐
- 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·001【数据库基本概念、MySQL安装与介绍】
文章目录 一.数据库基本概念 1.DB与DBMS 2.数据库系统的构成 3.数据管理发展过程 4.数据库 5.关系型数据库 二.MySQL安装与卸载 三.与MySQL相关的常用命令 四.MySQL相关 ...
- 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·007【简单查询】
文章目录 一.select语句 1.作用 2.语法 3.空值处理 4.反引号.单引号.双引号 5.列和表的别名 6.distinct去重 7.查询表结构 8.条件查询 (1).限定条件 (2).常用比 ...
- 《SQL高级应用和数据仓库基础(MySQL版)》作业 ·007
问题描述 1.员工转正后,月薪上调20%,请查询出所有员工转正后的月薪.2.员工试用期6个月,转正后月薪上调20%,请查询出所有员工工作第一年的年薪所得 (不考虑奖金部分,年薪的试用期6个月的月薪+转 ...
- 《SQL高级应用和数据仓库基础(MySQL版)》作业 ·006
文章目录 问题列表 参考解答 前提补充 注意点整理 分解代码 整体代码 问题列表 1.使用如下语句,建立以下表 create table copy_emp (empno int(4),ename va ...
- 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·006【事务】
文章目录 一.事务 1.事务介绍 2.事务组成 3.事务结束 4.MySQL事务处理 5.保存点与回档 6.事务隔离级别 7.脏读.不可重复读.幻读 一.事务 1.事务介绍 事务,也称工作单元,是由一 ...
- 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·005【表的CRUD操作(DML语句)】
文章目录 一.表的CRUD操作(DML语句) 1.insert语句 2.update语句 3.delete语句 二.其他注意点 1.MySQL查询区分大小写的方式 2.truncate语句与delet ...
- 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·011【视图和索引】
文章目录 一.视图 1.介绍 2.作用 3.使用示例 4.视图上的DML操作 二.索引 1.介绍 2.作用 3.分类 4.创建 4.删除 5.验证 一.视图 1.介绍 视图是指计算机数据库中的视图,是 ...
- 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·010【高级查询】
文章目录 一.分组函数(聚合函数) 1.介绍 2.格式 3.常用函数 (1).MIN函数.MAX函数 (2).SUM函数.AVG函数 (3).COUNT函数 4.group by子句 5.having ...
- 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·008【常用函数】
文章目录 一.常用函数 1.建议 2.MySQL函数概述 3.常用函数分类 一.常用函数 1.建议 使用函数时,建议将MySQL升级为8.0版本 2.MySQL函数概述 单行函数 语法 函数名(参数列 ...
- 《SQL高级应用和数据仓库基础(MySQL版)》作业 ·005
问题列表 1.使用如下语句,创建学生表student和班级表class create table student( -- 学生表xh char(4), -- 学号xm varchar(10), -- ...
最新文章
- 【英语天天读】奥哈拉给女儿的信
- solr的认识、linux下安装、java下使用(含下载资源)
- [Android]你不知道的Android进程化(3)--进程等级
- Set函数、Get函数、点语法和类方法
- 培养有见识的孩子,这6部适合孩子的纪录片,在家也能涨知识!
- 10个CSS简写/优化技巧
- 达梦工作笔记-将A表的ID插入到B表,将A表的数据更新到B表
- Web Session和Cookie
- 创建Struts 2简单应用的流程
- 拓端tecdat|数据度量消费贷款—消费者的考虑因素数据分析
- 天天生鲜项目——商品详情页
- C语言:字符串中各类字符数的统计
- java doc 转 pdf_java doc转pdf(示例代码)
- 一些很漂亮的字符图片
- “%,/,//”的用法
- 新仙剑奇侠传java,新仙剑奇侠传问题
- 利用74LS373对 LED 和数码管分别进行控制,数码管显示所亮 LED 的位置
- arcgis api 4.x加载天地图(经纬度和墨卡托投影)(一篇文章搞透天地图加载)
- 2022年第十二届APMCM亚太地区大学生数学建模竞赛--思路代码
- 阿里妈妈超级搜索接口
热门文章
- 案例学习BlazeDS+Spring之九Company Manager
- Activity启动模式和FLAG、TASKAFFINITY
- python的workbook_python openpyxl 操作 excel
- cass读取dat文件_CASS里DTM法土方计算
- android 表情识别,基于Android平台的人脸表情识别系统的设计与实现
- python辅助脚本教程_[Python] 用python做一个游戏辅助脚本,完整思路
- 如何给python装库_python一键式装单机和RAC数据库
- pythonjam教程_Python学习:安装配置pycharm编辑器教程
- 算法优化——位运算的优化技巧
- #C语言#警告:隐式声明函数‘xxx’ [-Wimplicit-function-declaration]