Mysql基础练习(图书管理系统)

一、创建数据库

1、创建一个名为book的数据库

2、打开book数据库

1、create database book
2、use book

二、创建数据表

创建数据表分别如下:红色字体为主键,蓝色字体为外键(外键暂时不实现,后面第8题中再创建)

create table borrow
(
    id           int comment '借阅id',
    borrownumber varchar(14) comment '借书证编号',
    barcode   varchar(11) comment '图书条码号',
    borrowtime   datetime comment '借出日期',
    returntime   datetime comment '归还日期',
    `condition`    char(3) comment '状态'
)comment '借阅';
alter table borrow add primary key (id);//单独设置主键
alter table borrow alter column `condition` set default 01;--设置默认值

create table administrator(
workid varchar(11) comment '工号',
name varchar(11) comment '姓名',
password varchar(20) comment '密码',
sex char(1) comment '性别',
title varchar(6) comment '职称',
duty varchar(6) comment '职务'
)comment '管理员';
alter table administrator add primary key (workid);--设置主键
aalter table administrator MODIFY title varchar(6) null;--允许为空
alter table administrator MODIFY duty varchar(6) null;--允许为空

create table readersort(
readerid char(2)comment '读者类别编号',
sort varchar(11) comment '类别',
lendnumber int comment '可借数量',
lendtime int comment '借期'
)comment '读者类别';
alter table readersort add primary key (readerid);--设置主键

create table books(
barcode varchar(11) comment '图书条码号',
ISBN varchar(20),
scriptoriumnumber char(4) comment '馆藏地编号',
sortnumber varchar(11) comment '分类号'
)comment '图书';
alter table books add primary key (barcode);--设置主键
alter table  books MODIFY  ISBN varchar(20) null;--允许为空

create table bookdetails(
ISBN varchar(20),
bookname varchar(20) comment '书名',
writer varchar(11) comment '作者',
press varchar(20) comment '出版社',
presstime datetime comment '出版日期',
price float comment '价格',
synopsis varchar(200) comment '简介'
)comment '图书详情';
alter table bookdetails add primary key (ISBN);--设置主键
alter table  bookdetails MODIFY  press varchar(20) null;--允许为空
alter table  bookdetails MODIFY  presstime datetime null;--允许为空
alter table  bookdetails MODIFY  price float null;--允许为空
alter table  bookdetails MODIFY  synopsis varchar(200) null;--允许为空

create table reader(
borrownumber varchar(14) comment '借书证编号',
identitycardid char(18) comment '身份证编号',
name varchar(20) comment '姓名',
sex char(1) comment '性别',
branch varchar(20) comment '部门',
address varchar(20) comment '住址',
phonenumber char(11) comment '电话',
email varchar(30) comment '电子邮件',
readerid char(2) comment '读者类别编号'
)comment '读者';
alter table reader add primary key (borrownumber);/*设置主键*/
alter table reader MODIFY  address varchar(20) null;/*允许为空*/
alter table  reader MODIFY  phonenumber char(11) null;/*允许为空*/
alter table reader MODIFY  email varchar(30) null;/*允许为空*/
alter table reader add unique identitycardid_index(identitycardid);/*设置唯一索引*/
alter table reader add unique phonenumber_index(phonenumber);
alter table reader add unique email_index(email);

create table scriptorium(
scriptoriumnumber char(4) comment '馆藏地编号',
site varchar(10) comment '地点',
floor char(2) comment '楼层'
)comment '馆藏地';
alter table scriptorium add primary key (scriptoriumnumber);/*设置主键*/

create table librarycard(
borrownumber varchar(14) comment '借书证编号',
password varchar(20)  comment '密码',
`condition` char(3) comment '状态'
)comment '借书证';
alter table librarycard add primary key (borrownumber);/*设置主键*/
alter table librarycard MODIFY  password varchar(20) null;/*允许为空*/
alter table librarycard alter column password set default 000000;--设置默认值
alter table librarycard alter column `condition` set default 01;

三、修改数据结构

4、修改“管理员”表中“姓名”字段的长度为varchar(20)

alter table administrator modify name varchar(20)  not null comment '姓名';

5、将“管理员”表中“姓名”字段移到”密码“字段之后

alter table administrator modify name varchar(20) not null comment '姓名' after password;

6、在“管理员”表中添加一列:电话  char(11)

alter table administrator
	add phonenumber char(11)  comment '电话';

7、删除管理员表中”电话“列

alter table administrator drop column phonenumber;

四、建立表之间的联系

8、创建外键,建立各表之间的联系如下(将命令和运行结果截图、将navicat中的E-R图截图):

各表中外键如下:

“图书”表的“馆藏地编号”,关联“馆藏地”表的“馆藏地编号”

alter table books
	add constraint books_scriptorium_scriptoriumnumber_fk
		foreign key (scriptoriumnumber) references scriptorium (scriptoriumnumber);

“图书”表的“ISBN”,关联“图书详情”表的“ISBN”

alter table books
	add constraint books_bookdetails_ISBN_fk
		foreign key (ISBN) references bookdetails (ISBN);

“读者”表的“读者类别编号”,关联“读者类别”表的“读者类别编号”

alter table reader
	add constraint reader_readersort_readerid_fk
		foreign key (readerid) references readersort (readerid);

“借阅”表的“借书证编号”,关联“读者”表的“借书证编号”

alter table borrow
	add constraint borrow_reader_borrownumber_fk
		foreign key (borrownumber) references reader (borrownumber);

“借阅”表的“图书条码号”,关联“图书”表的“图书条码号”

alter table borrow
	add constraint borrow_books_barcode_fk
		foreign key (barcode) references books (barcode);

“借书证”表的“借书证编号”,关联“读者”表的“借书证编号”

alter table librarycard
	add constraint librarycard_reader_borrownumber_fk
		foreign key (borrownumber) references reader (borrownumber);

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
一、单项选择题 (只有一个正确答案) 【1】 执行语句"SELECT '2008-01-20'+ INTERVAL 2 DAY; "结果为 A: 2008-01-22 B: 2010-01-20 C: 2008-02-11 D: 2008-03-20 答案: A 【2】 下列哪个是不正确的MySQL的变量命名方式 A: _name B: n$ame C: name D: name! 答案: D 【3】 字符串'hel'lo'输出结果为 A: hel'lo B: 'hello' C: hel\'lo D: 'hel lo' 答案: A 【4】 关系数据库模型是以下哪种方式组织数据结构 A: 树状 B: 文本 C: 二维表 D: 网状 答案: C 【5】 使用下列哪个语句可以删除表中所有数据,但保留表结构 A: truncate table B: rename table C: delete D: drop talbe 答案: A 【6】 E-R图设计属于( )。 A: 概念结构设计 B: 物理结构设计 C: 逻辑结构设计 D: 需求分析设计 答案: B 【7】 执行语句"GREATEST(10,9,128,1)"结果为( )。 A: 9 B: 10 C: 128 D: 1 答案: C 【8】 在一个关系中,若有这样一个属性存在,它的值能唯一地标识关系中的每一个元组,则 称这个属性为 A: 数据项 B: 候选码 C: 主键 D: 主键值 答案: C 【9】 数据库管理系统能实现对数据库中数据的查询、插入、修改和删除等操作。这种功能称 为( )。 A: 数据控制功能 B: 数据操纵功能 C: 数据管理功能 D: 数据定义功能 答案: B 【10】 1999年10月1日在mysql中表示方法错误的是: A: "1999-10-01" B: "1999%10%01" C: "1999\10\01" D: "1999/10/01" 答案: D 【11】 两个表中的行按照给定的条件进行拼接而形成新表的运算为 A: 连接 B: 投影 C: 集合 D: 选择 答案: A 【12】 向表中插入一个行新的纪录的命令为 A: replace into B: insert into C: replace from D: insert from 答案: B 【13】 \n在MySQL中表示 A: " B: 退格符 C: 回车符 D: 换行符 答案: D 【14】 执行语句"SELECT '5' = '5ab';"结果为 A: 0 B: NULL C: False D: 1 答案: A 【15】 显示所有错误的命令 A: show variables B: show warrings C: show errors D: show databases 答案: C 【16】 下列哪项不属于数据库模型的: A: 逻辑 B: 网状 C: 关系 D: 层次 答案: A 【17】 修改数据库的命令为: A: alter database B: Create database C: use database D: drop database 答案: A 【18】 创建表的命令为: A: Create table B: alter table C: drop table D: rename table 答案: A 【19】 删除表的命令为( )。 A: alter table B: drop table C: rename table D: Create table 答案: B 【20】 求查询结果的和的函数为 A: COUNT() B: MIN C: SUM D: MAX 答案: C 【21】 在关系数据库中一个关系是指 A: 一个二维表 B: 表中的一列 C: 表中的一行 D: 表中列的取值围 答案: A 【22】 数据库管理系统的简称为( )。 A: DBMS B: MDBS C: DB D: DBA 答案: A 【23】 数据库表中的基本运算不包括( )。 A: 选择 B: 集合 C: 连接 D: 投影 答案: B 【24】 下列哪个语句指定查询目的 A: from B: select C: grup by D: where 答案: B 【25】 换行是下列哪个转义字符 A: \" B: \n C: \\ D: \' 答案: B 【26】 消除查询结果中重复纪录的关键字为 A: distinct B: having C: ALL D: limit 答案: A 【27】 创建数据库的命令为( )。 A: use database B: Create database C: alter database D: drop database 答案: B 【28】 以下不是

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃java的羊儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值