「データベースの原則とアプリケーション」コースの実験レポートの定義とSQLステートメントデータベースのメンテナンス

コース「データベースの原理と応用」の実験報告データベースの定義と維持

1.実験的な内容

1。基本操作実験

(1)SQL Server Management Studioを使用して、図書貸出データベースを確立します。
(2)SQL Server Management Studioで書籍貸出データベースのプロパティを表示し、要件を満たすように変更します。
(3)SQL Server Management Studioを使用して、構築された本の貸し出しデータベースに本、リーダー、ローンの3つのテーブルを作成します。
その構造は次のとおりです:
本(本の番号、カテゴリ、出版社、著者、タイトル、価格);
リーダー(リーダーID、名前、ユニット、性別、電話);
借用(書籍番号、リーダーID、借用日、返却日);
属性に適切なデータ型を選択するために必要、各テーブルの主キーを定義、Nullを許可(空を許可)値)、
デフォルト値(デフォルト値)、およびその他の列レベルのデータ制約。
(4)SQL Server Management Studioで、ブック、リーダー、および借用の3つのテーブルのテーブルレベルの制約を確立します。各テーブルの主キー(主キー)制約、借用テーブルとブックテーブルの間、および借用テーブルとリーダーテーブルの間の外部キー(外部コード)制約。これは、外部コード制約式がセマンティクスに従って決定され、操作によって実装されることを要求します。借用テーブルのブック番号とリーダー番号のUNIQUE(一意性)制約が実現されます。リーダーの性別は、「男性」または「男性」のみです。女性の「チェック(チェック)制約。
(5)3つのテーブルのそれぞれに5つのレコードを入力します。本、読者、およびローンを本のローンデータベースに入力します。必要なレコードは、データ制約の要件を満たすだけでなく、テーブル間に関連するレコードも持っています。T-SQL言語を使用して、書籍貸出データベースの3つの書籍、リーダー、ローンのテーブルのデータを挿入、削除、および変更することもできます。

2。運用実験の改善

SQL Server Management Studioで実現される、学生がコースを選択するためのデータベース操作を確立します。
データベースのテーブル構造は、
学生(学生番号、名前、年齢、性別、学科)、
コース(コース番号、コース名、単位、前のコース)、
選択コース(学生番号、コース番号、学年)、
要件:
(1 )データベースを構築し、テーブルを構築し、テーブル間の関係を確立します。
(2)適切なデータ型を選択します。
(3)必要な列レベルの制約とテーブルレベルの制約を定義します。
(4)SQL Server Management Studioを介した新しいクエリは、生徒の選択的データベースでのデータの追加、データの削除、およびデータの変更操作を実現します。
学生、コース、選択科目には、それぞれ5つ以上のレコードが必要です。

2.実験プロセス

実験1:

(1)。データベースを作成する
ここに画像の説明を挿入
(2)。sqlステートメントを使用して操作する

--建立图书表
create table Book1
(
  B_num  varchar(20) primary key, --主键
  B_sort varchar(20) , 
  B_publish varchar(20),
  B_author varchar(20),
  B_name varchar(20) not null,
  B_price numeric(5,2) --小数  
  )
  drop table  Book1;
--建立读者表
  create table  Reader1
  (
  R_num varchar(20) primary key, --主键
  R_name varchar(5) not null,
  R_unit varchar(10),
  R_sex varchar(4) default '男'   not null check (R_sex='男' or R_sex ='女'),
  R_tel varchar(11) 
  )
 drop table reader1;
 --建立借阅表
 create table Borrow1
 (
   B_num  varchar(20) ,
   R_num varchar(20),
   LonaDate date  not null,
   ReturnDate  date  default '2000-01-01' ,--默认时间 
   primary key (B_num,R_num),
   foreign key(R_num) references Reader1(R_num),
   foreign key(B_num) references Book1(B_num)
 )
 drop table Borrow1 ;

 --查看内容
 select * from book1;
 select * from reader1;
 select * from Borrow1;

  --插入数据
 insert into  book1 values ('00000001','计算机','中国工信集团','谢希任','计算机网络',49.00),
                      ('00000002','计算机','科学出版社','白中英','计算机组成',47.56),
				    ('00000003','小说','广西师范大学出版社','肖恩·白塞尔','书店日记',35.46),
				    ('00000004','小说','湖南科学技术出版社','卡洛·罗韦利','时间的秩序',56.00),
				    ('00000005','小说','南海出版公司','塔拉·韦斯特弗','你当像鸟飞往你的山',49.00)


 insert into  Reader1 values('01','李蛋',' ','男',12345678901),
							('02','翠花','财务 ','男',12345678901),
							('03','狗子','行政','男',12345678901),
							('04','张三','销售','男',12345678901),
							('05','张伟','研发','男',12345678901)

insert into   Borrow1 values('00000004','03','2018-07-03',GETDATE()),
                            ('00000001','03','2018-07-09',GETDATE()),
							('00000003','01','2019-12-03',GETDATE()),
							('00000004','01','2018-06-03',GETDATE()),
							('00000003','05','2019-05-03',GETDATE()),--当前时间
							('00000003','02','2019-05-03',GETDATE())
insert into   Borrow1(B_num,R_num,LonaDate)  values('00000005','02','2018-07-03') --实现默认时间

--删除数据
delete  from  Borrow1  where   B_num='00000004' and R_num='03'; 
--修改数据
update borrow1 set   B_num ='00000001'  where   B_num='00000005' and R_num='02'; 

実験2:

--创建学生表
create table student
(
  s_num  int PRIMARYKEY,
  s_name varchar(20)not null,
  s_age int check(s_age between 10 and 35),
  s_sex varchar(10) check(s_sex in('男', '女')) default '男', 
  s_unit varchar(20) not null
)
--插入数据
insert into student values (1815001,'张三',18,'男','机械学院'),
                          (1815002,'李白',30,'女','生工学院'),
						  (1815003,'后裔',11,'男','数计学院'),
						  (1815004,'翠花',25,'女','物理学院'),
						  (1815005,'狗蛋',21,'男','机械学院');
--创建课程表
create table course
(
c_num int PRIMARYKEY,
c_name varchar(20) not null,
c_credit  int check(c_credit in (1,2,3,4,5,6)),
先行课 varchar(20) )
--插入数据
drop table course
insert into  course values (001,'C语言',2,001),
							(002,'程序设计电路',2,001),
							(003,'数字电路',3,001),
							(004,'计算机组成',3,003),
							(005,'计算机网络',4,001);

select * from course
--创建选课表
create table selectCourse
(
 s_num  int,
 c_num int,
 score numeric(3,1)  not null   ,
 primary key (s_num,c_num),
 foreign key ( s_num) references student(s_num),
 foreign key (c_num) references course(c_num),
)
drop table selectCourse
--插入数据
insert into  selectCourse values(1815001,001,2),
                          (1815001,002,2),
						(1815001,003,3),
						(1815002,001,2),
						(1815004,001,2)
select * from  Course
--数据增加
insert into student values (1815006,'二狗',16,'男','体育学院');
--修改数据
update course set c_credit=5 where c_name='C语言'

3.実験結果

実験1:
次のように、テーブルを作成してデータを挿入します。
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入ここに画像の説明を挿入
ここに画像の説明を挿入

2.以下に示すように、データ変更後:
ここに画像の説明を挿入

実験2:
1.下の図6、7、8に示すように、テーブルを作成してデータを挿入します。

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
2.以下に示すように、データ変更後:

ここに画像の説明を挿入
4.実験分析
①実験結果を分析します。
実験結果は理論結果と一致します
。②実験プロセスで発生した問題とその解決方法を説明します。
1.問題:文にデータを挿入し、カスタムのデフォルト値を表示したい場合、次の図に示す方法は機能せず
ここに画像の説明を挿入
実現できませ解決策:データの特定の列からのみ挿入できます
ここに画像の説明を挿入

③エラーを分析し、
すべてをSQL構文に従って操作する必要があります。データを挿入するときは、列レベルのデータ制約に準拠する必要があります。それ以外の場合は、エラーが報告されます

3.
実験の概要実験の完了は平均的なものであり、関連する文法に慣れていないため、実験の速度が遅くなり、すぐに完了することができません。次の研究では、関連する文法に精通し、習熟度を高める必要があります。

元の記事を10件公開 12 件を獲得 1854年を訪問

おすすめ

転載: blog.csdn.net/qq_44236958/article/details/105518791