【SQL Server】教材数据库(1)

1 利用sql建立教材数据库,并定义以下基本表:

学生(学号,年龄,性别,系名)

教材(编号,书名,出版社编号,价格)

订购(学号,书号,数量)

出版社(编号,名称,地址)

定义主码、外码、和价格、数量的取值范围。

2 在三个表中输入若干记录,注意如果输入违反完整性约束条件的记录系统有何反应。

新建查询,使用sql语句创建教材数据库

create database jiaocai

on primary(

name = jiaocai,

filename = 'D:\data_place\jiaocai_data.mdf',

size = 10mb,

filegrowth = 1mb

)

log on(

name = jiaocai_log,

filename = 'D:\data_place\jiaocai_data.ldf',

size = 5mb,

maxsize = 15mb,

filegrowth = 10%

)

分别创建学生,教材,出版社,订购表,为属性添加约束。

use jiaocai

create table student(

id varchar(30) primary key not null,

name varchar(10) not null,

age int,

sex varchar(6),

dept varchar(10)

)

create table publish(

id varchar(30) primary key not null,

name varchar(20) not null,

address varchar(40)

)

create table book(

id varchar(30) primary key not null,

title varchar(30),

c_id varchar(30) foreign key references publish(id),

price int check(price > 0 and price < 200)

)

create table orders(

s_id varchar(30) foreign key references student(id),

b_id varchar(30) foreign key references book(id),

number int check(number > 0 and number < 2000)

)

使用insert into批量向各个表中添加数据

insert into dbo.student(id,name,age,sex,dept)

values

('2201331','张伟',18,'男','计算机'),

('2202332','王晶',20,'男','光电'),

('2203333','刘丽',19,'女','汉语言'),

('2204334','严正',21,'男','大数据'),

('2205335','蒋婷',18,'女','汉语言'),

('2206336','杨智',19,'女','英语'),

('2207337','周子涵',20,'男','俄语'),

('2208338','王飞',19,'男','机电'),

('2209339','吴昊',18,'女','中文'),

('2210340','徐峰',20,'男','计算机')

insert into dbo.publish(id,name,address)values

('jj01','安徽出版社','安徽'),

('gg01','高教出版社','北京'),

('dd01','长春出版社','长春'),

('aa01','九州出版社','海口'),

('ee01','江苏出版社','江苏'),

('hh01','重庆出版社','重庆'),

('zz01','青岛出版社','青岛'),

('yy01','山东出版社','山东')

insert into dbo.book(id,title,c_id,price)values

('j1','C语言','jj01',50),

('g1','光学应用基础','gg01',68),

('h1','中国古代诗选','hh01',58),

('d1','spark语言基础','dd01',77),

('y1','商务英语','yy01',30),

('e1','计算机俄语','ee01',88),

('a1','机械制图','aa01',56),

('z1','大学语文','zz01',40)

insert into dbo.orders(s_id,b_id,number)values

('2201331','j1',1),

('2202332','g1',2),

('2203333','h1',1),

('2204334','d1',1),

('2205335','y1',1),

('2206336','e1',1),

('2207337','a1',1),

('2208338','z1',1)

这样数据库和对应的带有数据的数据表就创建好了。

use jiaocai

insert into dbo.student(id,name,age,sex,dept)

values('2209339','王明义',19,'男','计算机')

执行以上sql语句发现添加数据失败,原因是学号作为主键,主键具有唯一标识不能重复。

更换学号后执行成功

相关推荐
在努力的前端小白4 分钟前
Spring Boot 敏感词过滤组件实现:基于DFA算法的高效敏感词检测与替换
java·数据库·spring boot·文本处理·敏感词过滤·dfa算法·组件开发
未来之窗软件服务6 分钟前
自建知识库,向量数据库 (九)之 量化前奏分词服务——仙盟创梦IDE
数据库·仙盟创梦ide·东方仙盟·自建ai·ai分词
冒泡的肥皂3 小时前
MVCC初学demo(一
数据库·后端·mysql
.Shu.4 小时前
Redis Reactor 模型详解【基本架构、事件循环机制、结合源码详细追踪读写请求从客户端连接到命令执行的完整流程】
数据库·redis·架构
yatingliu20195 小时前
HiveQL | 个人学习笔记
hive·笔记·sql·学习
造梦师阿鹏6 小时前
004.从 API 裸调到 LangChain
经验分享·ai·大模型·ai技术·大模型应用开发
薛晓刚7 小时前
当MySQL的int不够用了
数据库
SelectDB技术团队7 小时前
Apache Doris 在菜鸟的大规模湖仓业务场景落地实践
数据库·数据仓库·数据分析·apache doris·菜鸟技术
星空下的曙光8 小时前
mysql 命令语法操作篇 数据库约束有哪些 怎么使用
数据库·mysql
小楓12018 小时前
MySQL數據庫開發教學(一) 基本架構
数据库·后端·mysql