问题列表

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相关推荐

  1. 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·001【数据库基本概念、MySQL安装与介绍】

    文章目录 一.数据库基本概念 1.DB与DBMS 2.数据库系统的构成 3.数据管理发展过程 4.数据库 5.关系型数据库 二.MySQL安装与卸载 三.与MySQL相关的常用命令 四.MySQL相关 ...

  2. 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·007【简单查询】

    文章目录 一.select语句 1.作用 2.语法 3.空值处理 4.反引号.单引号.双引号 5.列和表的别名 6.distinct去重 7.查询表结构 8.条件查询 (1).限定条件 (2).常用比 ...

  3. 《SQL高级应用和数据仓库基础(MySQL版)》作业 ·007

    问题描述 1.员工转正后,月薪上调20%,请查询出所有员工转正后的月薪.2.员工试用期6个月,转正后月薪上调20%,请查询出所有员工工作第一年的年薪所得 (不考虑奖金部分,年薪的试用期6个月的月薪+转 ...

  4. 《SQL高级应用和数据仓库基础(MySQL版)》作业 ·006

    文章目录 问题列表 参考解答 前提补充 注意点整理 分解代码 整体代码 问题列表 1.使用如下语句,建立以下表 create table copy_emp (empno int(4),ename va ...

  5. 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·006【事务】

    文章目录 一.事务 1.事务介绍 2.事务组成 3.事务结束 4.MySQL事务处理 5.保存点与回档 6.事务隔离级别 7.脏读.不可重复读.幻读 一.事务 1.事务介绍 事务,也称工作单元,是由一 ...

  6. 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·005【表的CRUD操作(DML语句)】

    文章目录 一.表的CRUD操作(DML语句) 1.insert语句 2.update语句 3.delete语句 二.其他注意点 1.MySQL查询区分大小写的方式 2.truncate语句与delet ...

  7. 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·011【视图和索引】

    文章目录 一.视图 1.介绍 2.作用 3.使用示例 4.视图上的DML操作 二.索引 1.介绍 2.作用 3.分类 4.创建 4.删除 5.验证 一.视图 1.介绍 视图是指计算机数据库中的视图,是 ...

  8. 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·010【高级查询】

    文章目录 一.分组函数(聚合函数) 1.介绍 2.格式 3.常用函数 (1).MIN函数.MAX函数 (2).SUM函数.AVG函数 (3).COUNT函数 4.group by子句 5.having ...

  9. 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·008【常用函数】

    文章目录 一.常用函数 1.建议 2.MySQL函数概述 3.常用函数分类 一.常用函数 1.建议 使用函数时,建议将MySQL升级为8.0版本 2.MySQL函数概述 单行函数 语法 函数名(参数列 ...

  10. 《SQL高级应用和数据仓库基础(MySQL版)》作业 ·005

    问题列表 1.使用如下语句,创建学生表student和班级表class create table student( -- 学生表xh char(4), -- 学号xm varchar(10), -- ...

最新文章

  1. 【英语天天读】奥哈拉给女儿的信
  2. solr的认识、linux下安装、java下使用(含下载资源)
  3. [Android]你不知道的Android进程化(3)--进程等级
  4. Set函数、Get函数、点语法和类方法
  5. 培养有见识的孩子,这6部适合孩子的纪录片,在家也能涨知识!
  6. 10个CSS简写/优化技巧
  7. 达梦工作笔记-将A表的ID插入到B表,将A表的数据更新到B表
  8. Web Session和Cookie
  9. 创建Struts 2简单应用的流程
  10. 拓端tecdat|数据度量消费贷款—消费者的考虑因素数据分析
  11. 天天生鲜项目——商品详情页
  12. C语言:字符串中各类字符数的统计
  13. java doc 转 pdf_java doc转pdf(示例代码)
  14. 一些很漂亮的字符图片
  15. “%,/,//”的用法
  16. 新仙剑奇侠传java,新仙剑奇侠传问题
  17. 利用74LS373对 LED 和数码管分别进行控制,数码管显示所亮 LED 的位置
  18. arcgis api 4.x加载天地图(经纬度和墨卡托投影)(一篇文章搞透天地图加载)
  19. 2022年第十二届APMCM亚太地区大学生数学建模竞赛--思路代码
  20. 阿里妈妈超级搜索接口

热门文章

  1. 案例学习BlazeDS+Spring之九Company Manager
  2. Activity启动模式和FLAG、TASKAFFINITY
  3. python的workbook_python openpyxl 操作 excel
  4. cass读取dat文件_CASS里DTM法土方计算
  5. android 表情识别,基于Android平台的人脸表情识别系统的设计与实现
  6. python辅助脚本教程_[Python] 用python做一个游戏辅助脚本,完整思路
  7. 如何给python装库_python一键式装单机和RAC数据库
  8. pythonjam教程_Python学习:安装配置pycharm编辑器教程
  9. 算法优化——位运算的优化技巧
  10. #C语言#警告:隐式声明函数‘xxx’ [-Wimplicit-function-declaration]