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

更换学号后执行成功

相关推荐
ruleslol1 小时前
MySQL的段、区、页、行 详解
数据库·mysql
北岛寒沫1 小时前
北京大学国家发展研究院 经济学原理课程笔记(第二十一课 金融学基础)
经验分享·笔记·学习
Learn-Python1 小时前
MongoDB-only方法
python·sql
while(1){yan}2 小时前
MyBatis Generator
数据库·spring boot·java-ee·mybatis
それども2 小时前
MySQL affectedRows 计算逻辑
数据库·mysql
是小章啊2 小时前
MySQL 之SQL 执行规则及索引详解
数据库·sql·mysql
富士康质检员张全蛋2 小时前
JDBC 连接池
数据库
yangminlei2 小时前
集成Camunda到Spring Boot项目
数据库·oracle
ChineHe3 小时前
Redis数据类型篇002_详解Strings核心命令与存储结构
数据库·redis·缓存
清水白石0084 小时前
《从零到进阶:Pydantic v1 与 v2 的核心差异与零成本校验实现原理》
数据库·python