SQL Server数据库创建数据库、用户、表和插入数据(Transact-SQL)

本文详细介绍了如何在SQLServer中进行数据库创建、用户管理和数据插入。首先,通过`CREATE DATABASE`命令创建数据库,然后在数据库中创建用户。接着,设置当前数据库并创建模式。在建表环节,遵循了外键约束的规则,确保数据完整性。最后,演示了如何向Student、Course和SC表中插入数据,并强调了插入顺序和外键约束的重要性。
摘要由CSDN通过智能技术生成

一、建数据库并创建用户

首先使用

create database <表名>

创建数据库,这里使用如下代码作为示例:

create database us1

刷新左侧“对象资源管理器”,刷新后新建的数据库会出现在数据库列表中
在这里插入图片描述
接下来就该创建数据库的用户,步骤如下:
1.首先,点击“us1”左侧的“+”,会出现隐藏的内容,点击刚刚显示出来的内容中的“安全性”左侧的“+”号
在这里插入图片描述
2.选中“安全性”下方的“用户”,右击用户,选中“新建用户”
在这里插入图片描述
3.在弹出窗口中输入要创建的用户名,输入完成后,点击蓝色方框标注的地方在这里插入图片描述
4.在弹出的窗口中选择“浏览”
在这里插入图片描述
接下来,在浏览中选择第一个对象在这里插入图片描述
点击一路确定,就完成了用户的创建,创建出的用户:在这里插入图片描述
至此,我们完成了对数据、库用户的创建,接下来就需要创建模式了

二、创建模式

准备工作:需要把自己建的是数据库设为当前数据库,系统默认为master数据库,这里我使用us1

不这样做,编译器会报错并停止执行某些创建模式的语句

在这里插入图片描述

创建模式需要用到的脚本语言:

create schema <模式名>  authorization <用户名>

这里使用

create schema "S-T" authorization  WANG

课在us1下方的“安全性”-“架构”中找到创建的模式
在这里插入图片描述

三、建表并插入数据

新建查询,在下方可输入如下的代码,创建表格,要注意的需要先创建Student、Course表,后创建SC表,这是因为SC中有两个外码Sno(学生学号)、Cno(课程号),分别来自Student、Course
如果不这样做在插入SC的数据时编译器会出现

INSERT 语句与 FOREIGN KEY 约束"FK__SC__Cno__2B3F6F97"冲突。该冲突发生于数据的提示,并停止执行
正确的建表方法:

CREATE TABLE Student          
 (	
 Sno CHAR(9) PRIMARY KEY,        /* 列级完整性约束条件,Sno是主码*/                  
 Sname CHAR(20) UNIQUE,          /* Sname取唯一值*/
 Ssex CHAR(2),
 Sage SMALLINT,
 Sdept CHAR(20)
 ); 
 
CREATE TABLE  Course
 (	
 Cno CHAR(4) PRIMARY KEY,
 Cname CHAR(40),            
 Cpno CHAR(4),               	                      
 Ccredit SMALLINT,
 FOREIGN KEY (Cpno) REFERENCES  Course(Cno) /* 表级完整性约束条件, Cpno是外码,被参照表是自身*/
 ); 
 
CREATE TABLE  SC
 (
 Sno CHAR(9), 
 Cno CHAR(4),  
 Grade SMALLINT,
 PRIMARY KEY (Sno,Cno),                      /* 主码由两个属性构成,必须作为表级完整性进行定义*/
 FOREIGN KEY (Sno) REFERENCES Student(Sno),  /* 表级完整性约束条件,Sno是外码,被参照表是Student*/
 FOREIGN KEY (Cno)REFERENCES Course(Cno)     /* 表级完整性约束条件,Cno是外码,被参照表是Course*/
 ); 

这就完成了建表的操作,可以在左侧查看建立的表
在这里插入图片描述
接下来,就进行插入数据
插入数据的方法如下:
对Student表进行插入数据

INSERT  INTO  Student (Sno,Sname,Ssex,Sdept,Sage) VALUES ('201215121','李勇','男','CS',20);
INSERT  INTO  Student (Sno,Sname,Ssex,Sdept,Sage) VALUES ('201215122','刘晨','女','CS',19);
INSERT  INTO  Student (Sno,Sname,Ssex,Sdept,Sage) VALUES ('201215123','王敏','女','MA',18);
INSERT  INTO  Student (Sno,Sname,Ssex,Sdept,Sage) VALUES ('201215125','张立','男','IS',19);
INSERT  INTO  Student (Sno,Sname,Ssex,Sdept,Sage) VALUES ('201215128','陈冬','男','IS',20);

这里需要注意的是insert语句中的valuses中数据的顺序需要与表名后面括号里的名称的顺序一致,不然编译器就会报错,停止执行脚本
用下面的这一行代码可以显示插入的结果,用来检查上述插入方法执行后是否能够正确执行插入操作。

SELECT * FROM Student

同理对Course进行插入操作

INSERT  INTO Course(Cno,Cname,Cpno,Ccredit)	VALUES ('1','数据库',NULL,4);
INSERT  INTO Course(Cno,Cname,Cpno,Ccredit)	VALUES ('2','数学',NULL,4);
INSERT  INTO Course(Cno,Cname,Cpno,Ccredit)	VALUES ('3','信息系统',NULL,4);
INSERT  INTO Course(Cno,Cname,Cpno,Ccredit)	VALUES ('4','操作系统',NULL,4);
INSERT  INTO Course(Cno,Cname,Cpno,Ccredit)	VALUES ('5','数据结构',NULL,4);
INSERT  INTO Course(Cno,Cname,Cpno,Ccredit)	VALUES ('6','数据处理',NULL,4);
INSERT  INTO Course(Cno,Cname,Cpno,Ccredit)	VALUES ('7','Pascal语言',NULL,4);
UPDATE Course SET Cpno = '5' WHERE Cno = '1' 
UPDATE Course SET Cpno = '1' WHERE Cno = '3' 
UPDATE Course SET Cpno = '6' WHERE Cno = '4' 
UPDATE Course SET Cpno = '7' WHERE Cno = '5' 
UPDATE Course SET Cpno = '6' WHERE Cno = '7' 

这里需要注意的事项与Student需要注意的事项一样。
查询插入的结果

SELECT * FROM Course

下面对SC中的数据进行操作:
方法如下:

INSERT  INTO SC(Sno,Cno,Grade) VALUES ('201215121 ','1',92);
INSERT  INTO SC(Sno,Cno,Grade) VALUES ('201215121 ','2',85);
INSERT  INTO SC(Sno,Cno,Grade) VALUES ('201215121 ','3',88);
INSERT  INTO SC(Sno,Cno,Grade) VALUES ('201215122 ','2',90);
INSERT  INTO SC(Sno,Cno,Grade) VALUES ('201215122 ','3',80);
 

查询插入的结果

SELECT * FROM SC
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Best-Wishes

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

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

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

打赏作者

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

抵扣说明:

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

余额充值