【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语句发现添加数据失败,原因是学号作为主键,主键具有唯一标识不能重复。

更换学号后执行成功

相关推荐
小HANN1 小时前
Linux建站实战:CentOS7+LNMP 从零部署 ECShop 开源电商系统
linux·运维·服务器·经验分享
昌原的儿子LEO2 小时前
Linux IO多路复用与SQLite数据库核心知识点总结
linux·数据库·oracle
山岚的运维笔记2 小时前
mysql 专业笔记 -- 第 8 章:使用变量
运维·数据库·笔记·后端·学习·mysql·dba
聚美智数2 小时前
网安查询-备案查询-网络安全查询API接口介绍
网络·数据库·web安全
恒锐丰科技林技术员3 小时前
EG2226 全桥驱动芯片:高压电机逆变驱动的高性价比方案
经验分享·嵌入式硬件·硬件工程
坐吃山猪3 小时前
【多线程】Semaphore使用
java·数据库·oracle·多线程
数智启示录3 小时前
PostgreSQL 内存调优实战(第 12 篇):work_mem 只调大 64 倍,峰值为什么远不止 64 倍
运维·数据库·经验分享·postgresql·面试
数字生命卡兹克4 小时前
GPT-6 Astra全面解析 - “欢迎来到AGI时代。”
经验分享
姜太小白4 小时前
【Oracle】记排查sh脚本调用SQL执行卡顿的排查总结
数据库·sql·oracle
bgy66664 小时前
MariaDB 数据库 基础详解
数据库·mariadb