目录

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

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

SQL Server 基本操作

一、建数据库并创建用户

首先使用

create database <表名>

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

create database us1

刷新左侧“对象资源管理器”,刷新后新建的数据库会出现在数据库列表中

https://i-blog.csdnimg.cn/blog_migrate/7f7191fc15d25873642528bca426d3aa.png#pic_center

接下来就该创建数据库的用户,步骤如下:

1.首先,点击“us1”左侧的“+”,会出现隐藏的内容,点击刚刚显示出来的内容中的“安全性”左侧的“+”号

https://i-blog.csdnimg.cn/blog_migrate/63d6bd7967c631757ce2daefa7738844.png#pic_center

2.选中“安全性”下方的“用户”,右击用户,选中“新建用户”

https://i-blog.csdnimg.cn/blog_migrate/80b19bf4264d9fdb7a03db19de718ad8.png#pic_center

3.在弹出窗口中输入要创建的用户名,输入完成后,点击蓝色方框标注的地方 https://i-blog.csdnimg.cn/blog_migrate/9cbd5b2f232b73d02de7ae042f38969d.png#pic_center

4.在弹出的窗口中选择“浏览”

https://i-blog.csdnimg.cn/blog_migrate/f19c435e645ed67ceb3c95f94972a65e.png#pic_center

接下来,在浏览中选择第一个对象 https://i-blog.csdnimg.cn/blog_migrate/a1a54717a8d6a62e6907eb74fb26aa23.png#pic_center

点击一路确定,就完成了用户的创建,创建出的用户: https://i-blog.csdnimg.cn/blog_migrate/36eefc5288dbaaec442b4e054223fac9.png#pic_center

至此,我们完成了对数据、库用户的创建,接下来就需要创建模式了

二、创建模式

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

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

https://i-blog.csdnimg.cn/blog_migrate/3d491bc21bc614a958f2a6dedc5176e0.png#pic_center

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

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

这里使用

create schema "S-T" authorization  WANG

课在us1下方的“安全性”-“架构”中找到创建的模式

https://i-blog.csdnimg.cn/blog_migrate/05f53fff77f471031e64797e1cdd3c2b.png#pic_center

三、建表并插入数据

新建查询,在下方可输入如下的代码,创建表格,要注意的需要先创建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*/
 ); 

这就完成了建表的操作,可以在左侧查看建立的表

https://i-blog.csdnimg.cn/blog_migrate/2d2c0ad33ead2936a4a891861ec848f6.png#pic_center

接下来,就进行插入数据

插入数据的方法如下:

对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