目录

  • 第1单元    数据库系统导论
    • ● 任务1.1  数据库基本概念
    • ● 任务1.2  设计E—R 图
    • ● 任务1.3   将E-R图转换成关系模型
    • ● 任务1.4   练习与作业
    • ● 教与学参考资源
  • 第2单元   认识SQL SERVER数据库
    • ● 任务2.1 数据库应用场景
    • ● 任务2.3  SQL  Server 数据库安装
    • ● 任务2.4 SQL Server 的管理
    • ● 任务2.5  使用SSMS连接数据库
    • ● 教与学参考资源
  • 第3单元  创建和管理数据库
    • ● 任务3.1 创建数据库
    • ● 任务3.1(2)  命令创建数据库
    • ● 任务3.2 管理数据库
    • ● 任务3.2(2) 查看、收缩数据库
    • ● 教与学参考资源
  • 第4单元 创建和管理数据库表
    • ● 任务4.1 SQL Server常用数据类型
    • ● 任务4.2  创建数据表
    • ● 任务4.3  命令创建表
    • ● 任务4.4 实施完整性约束
    • ● 教与学参考资源
  • 第 5 单元   查询数据表
    • ● 任务5.1 单表数据查询
    • ● 任务5.2 多表数据查询
    • ● 任务5.3 嵌套查询
    • ● 任务5.4 合并查询结果
    • ● 教与学参考资源
  • 第6单元  管理表中数据
    • ● 任务6.1   添加数据
    • ● 任务6.2  修改数据
    • ● 任务6.3  删除数据
    • ● 习题与训练
    • ● 教与学参考资源
  • 第7单元  使用索引和视图
    • ● 任务7.1  使用索引
    • ● 使用T-SQL创建索引
    • ● 任务7.2  使用视图
    • ● 使用T-SQL语句创建视图
    • ● 教与学参考资源
  • 第8单元 Transact-SQL语言编程
    • ● 任务8.1   声明和使用变量
    • ● 任务8.2   流控语句
    • ● 任务8.3   常用系统函数
    • ● 任务8.4   创建自定义函数
    • ● 教与学参考资源
  • 第9单元  事务和锁
    • ● 任务   9.1     事务
    • ● 事务的基本操作
    • ● 任务9.2    锁
    • ● 死锁及避免方法(例)
    • ● 教与学参考资源
  • 第10单元  创建和管理存储过程
    • ● 任务10.1 存储过程及优点
    • ● 任务10.2 创建和执行存储过程
    • ● 任务10.3   存储过程参数和返回值
    • ● 任务10.4 修改、删除、 重新编译存储过程
    • ● 教与学参考资源
  • 第11单元 创建和管理触发器
    • ● 任务1 触发器的作用和分类
    • ● 任务2 触 发器的创建与执行
    • ● 任务3 创建级联触发器
    • ● 任务4 修改、删除触发器
  • 第12单元 创建和使用游标
    • ● 任务1  游标的作用及使用步骤
    • ● 任务2  创建基本游标
    • ● 任务3  使用变量保存游标数据
    • ● 任务4  使用循环环提取游标数据
  • 第13单元 SQL Server用户管理
    • ● 任务1数据库安全管理概述
    • ● 任务2SQL Server 安全机制
    • ● 任务3 账号、角色及权限管理
    • ● 任务4数据库完整性管理
    • ● 任务5 数据库的备份与还原
    • ● 任务6   数据的导入与导出
  • 第14单元  综合应用案例
    • ● 概述
    • ● 需求分析
    • ● 概述设计-逻辑设计- 物理设计
    • ● 编写数据库设计说明书
  • 学生做项目成果展示
    • ● 项目一  设计《我班同学数据库》
    • ● 项目二  设计《(Teaching)教学数据库》
    • ● 项目三  数据库应用系统设计开发项目
    • ● 项目四 《华夏-宿舍管理系统》设计开发
    • ● 项目五   综合实训大作业
    • ● 综合实训团队项目大作业
    • ● 学生完成项目摘录展示
  • 总复习与综合训练
    • ● 总复习
    • ● 综合训练一
    • ● 综合训练二
    • ● 综合训练三
    • ● 综合训练四
    • ● 综合训练五
    • ● 简答综合训练
  • 在线专题测验
    • ● 自检自测一
    • ● 自检自测二
  • 拓展   数据库管理工具平台  Navicat
    • ● 关于Navica
    • ● Navicat 的系统需求
    • ● Navicat 的用户界面
    • ● Navicat 创建数据库对象
    • ● 在Navicat创建的SQL 程序脚本
    • ● 在Navicat创建的SQL  server 脚本(2)
    • ● 综合实训(1)
    • ● 综合实训(2)
  • 技术拓展   (MYSQL)数据库技术与应用
    • ● MYSQL技术
  • 教与学图片剪影
    • ● 教学团队
    • ● 学生学习实训
    • ● 活动与交流
任务6.1   添加数据


*



务6.1  添加数据(用T-SQL插入数据行)

1.NSERT [INTO] 表名|视图名 [(列名表)] VALUES(常量表)

语法:INSERT [INTO] 表名|视图名 [(列名表)] VALUES(常量表)

*说明: *列名表用于指定该数据表的一列或多列(逗号分隔),顺序可以与表的列顺序不同。在数据表中未被指定的列必须支持空值或者默认值,如果默认值存在,该列使用默认值,否则SQL Server会尝试为该列补上一个空值。*常量表提供向表中插入的数据,如果提供的数据是多个,也必须用逗号分隔。*常量表中提供的数据与列名表指定的列名个数、数据类型和顺序必须一致。*当常量表中提供的数据与表定义的列在个数和顺序上完全一致时,列名表可以省略。

注意:该命令中可以省略列名,如果不写列名,

必须为表中所有列提供值。

列名和值要一一对应。

字符和日期类型的数据值上要加单引号,数值类型可以不加单引号。

如果字段要填入空值,可以写NULL,不要加单引号。

同一条INSERT命令不要反复运行,否则表中将出现重复数据,

完全相同的数据行只能使用DELETE命令一起删除。


练习例:对已建好的数据库[Teaching],


--添加数据数据库[Teaching]的教师表[T]

/* 格式: INSERT INTO [dbo].[T]([TNO] ,[TNAME] ,[TSEX] ,[TITLE]) VALUES

           (<TNO, char(6),> ,<TNAME, varchar(8),> ,<TSEX, char(2),> ,<TITLE, varchar(10),>)

*/


USE  [Teaching]

GO

INSERT T VALUES('T11','李大力','男','教授')

INSERT T VALUES('T12','王小平','女','讲师')

INSERT T VALUES('T13','刘伟伟','男','讲师')

INSERT T VALUES('T14','张小雪','女','教授')

INSERT T VALUES('T15','张瑶兰','女','副教授')

INSERT T VALUES('T16','王红一','男','助教')

INSERT T VALUES('T17','李伟明','男','助教')

GO

--添加数据数据库[Teaching]的学生表[S]

/*  格式:INSERT INTO [dbo].[S]([SNO] ,[SNAME] ,[SSEX] ,[SDEPT] ,[SBIRTHDAY])

     VALUES  (<SNO, char(6),> ,<SNAME, varchar(8),> ,<SSEX, char(2),>

           ,<SDEPT, varchar(10),> ,<SBIRTHDAY, datetime,>)

*/

INSERT S VALUES('19001','李小勇','男','软件','1998-03-05')

INSERT S VALUES('19002','刘小晨','女','信息','1999-10-03')

INSERT S VALUES('19003','王小敏','女','软件','1999-05-10')

INSERT S VALUES('19004','张小立','男','信息','1998-04-07')

INSERT S VALUES('19005','欧大锋','男','信息','1999-07-30')

INSERT S VALUES('19006','欧大华','男','软件','1998-06-09')

INSERT S VALUES('19007','刘小明','女',网络','1999-08-10')

INSERT S VALUES('19008','李水岩','女',动漫','1998-05-23')

GO

--添加数据数据库[Teaching]的课程表[C]

/* 格式: INSERT INTO [dbo].[C] ([CNO] ,[CNAME] ,[CT] ,[TNO])

     VALUES (<CNO, char(6),> ,<CNAME, varchar(20),> ,<CT, smallint,> ,<TNO, char(6),>)

*/

USE  [Teaching]

INSERT C VALUES('C11','数据库技术',50,'T11')    

INSERT C VALUES('C12','高等数学',80,'T15')

INSERT C VALUES('C13','信息系统安全',30,'T13')    

INSERT C VALUES('C14','操作系统原理',60,'T12')    

INSERT C VALUES('C15','数据结构及应用,80,'T16')    

INSERT C VALUES('C16','计算机网络基础',50,'T13')   

INSERT C VALUES('C17','C语言程序设计',60,'T14')    

INSERT C VALUES('C18','数据库开发技术',50,'T17')   


—

—语句格式的功能是将SELECT 语句的查询结果

—--例: 将数据插入[教务数据库]的[学生表]

(1)INSERT INTO [教务数据库].[dbo].[学生表]

 ([学号],[姓名],[性别],[民族],[出生日期],[专业班级] )

     VALUES ('202006551', '吕春萌','女','汉','2001-08-06','20软件5班')

(2)INSERT INTO [dbo].[学生表]

           ([学号],[姓名],[性别],[民族],[出生日期],[专业班级] )

     VALUES ('201906601','李小芳','女','汉','2000-05-23','19软件6班') 

(3)  INSERT   [学生表]   ([学号],[姓名],[性别],[民族],[出生日期],[专业班级] )

     VALUES ('201906301','卢小明','男','回','2001-06-23','19软件3班') 

—


--例:将数据插入[教务数据库]的[课程表]

(1)INSERT INTO [教务数据库].[dbo].[课程表]

           ([课程号],[课程名],[学时],[学分],[类别])

     VALUES    (‘206001',‘MYSQL数据库技术',64,4,'必修课')

(2)INSERT INTO [dbo].[课程表]

           ([课程号],[课程名],[学时],[学分],[类别])

     VALUES   (‘206002’,‘高级JAVA程序设计',90,5,'必修课')

(3)INSERT 课程表

    VALUES   (‘206003’,‘网站设计',78,4.5,'必修课')


—

--将数据插入[教务数据库]的[教师表]

(1)INSERT INTO [教务数据库].[dbo].[教师表]

           ([教师号],[姓名],[性别],[专业],[职称],[出生日期],[院系号])

VALUES   ('703010','李小冬','男','人工智能','副教授','1963-09-05',7)

(2)INSERT INTO [教务数据库].[dbo].[教师表]

          ([教师号],[姓名],[性别],[专业],[职称],[出生日期])

     VALUES   ('703011','刘小芳','女','大数据技术','讲师','1983-11-15')

(3)INSERT INTO [教务数据库].[dbo].[教师表]

           ([教师号],[姓名],[性别],[专业],[职称])

     VALUES    ('703012','谢红','男','电子商务技术','讲师')

—

--例:将数据插入[教务数据库]的[成绩表]   注意:主键(学号,课程号),外键的值必须存在!

(1)INSERT INTO [教务数据库].[dbo].[成绩表]

           ([学号],[课程号],[成绩],[任课教师号])

     VALUES      ('202006551','206001',86,'703010')


(2)INSERT INTO [教务数据库].[dbo].[成绩表]

           ([学号],[课程号],[成绩],[任课教师号])

     VALUES     ('202006551','206002',75,'703011')


(3)INSERT INTO [教务数据库].[dbo].[成绩表]

      ([学号],[课程号],[成绩],[任课教师号])

     VALUES   ('202006551','206003',90,'703012')



例如:INSERT  INTO  学生2  SELECT 学号,姓名 

FROM 学生。

该语句的功能是将学生表中的学号姓名两列的数据插入到学生2表中。在执行INSERT语句时,如果插入的数据与约束或规则的要求产生冲突或值的数据类型与列的数据类型不匹配,那么INSERT语句将执行失败。注意:使用INSERT语句添加记录时,不能为计算字段、标识字段指定数据,这些字段的值由SQL Server自动产生。INSERTSELECT

*语法:INSERT 表名 SELECT子查询*

说明:*SELECT查询子句用于指定源表及其数据,

通过SELECT查询生成结果集,并将其插入到INSERT后指定的表中。*

此语句可以将其他数据源的多行数据插入到现有的表中。

必须保证接收新值的表中列的数据类型与源表中相应列的

数据类型一致。


练习例:

USE Teaching

GO

--新创建一个 [奖学金表]

CREATE TABLE 奖学金表

(学号 char(6) ,

 姓名 varchar(8) ,

 性别 char(2) ,

 奖金等级 varchar(12) ,

 奖学金 REAL ,

 备注 varchar(100))

 GO

/*将学生表[S]的[SNO],[SNAME],[SSEX]导入

[奖学金表]     ([学号],[姓名] ,[性别]  )   */

USE [Teaching] 

GO

INSERT INTO [dbo].[奖学金表]

          ([学号],[姓名] ,[性别]  )

                SELECT [SNO],[SNAME],[SSEX]  FROM [dbo].[S] 


查阅是否已导入:   SELECT   *   FROM   [奖学金表]


—

--例: 将一表中的数据插入到另一表(注:这一表必须是已存在的表)

USE  db_2012

insert into books2

select * from books where 出版社 ='人邮'

--查询数据表

select * from books2   WHERE  出版社  LIKE  ‘%人%’


USE  BOOKDATA

select * from   书目信息   WHERE  出版社  LIKE  '%7-1%‘



USE  db_2012

insert into books2

select * from BOOKDATA.dbo.书目信息   where 出版社 = '%7-1%‘ 

(出错!  分析为什么?  表 [books2]与[书目信息] 结构是否相同? )


例: 将一个数据库表的数据导入另一个数据库表内.

insert   into    db_2012.dbo.books([书号] ,[书名] ,[作者] ,[图书出版社] ,[单价] ,[简介])

select [书目编号],[名称] ,[作者],[出版社],[价格] ,[简介] 

   from BOOKDATA.dbo.书目信息 

      Where [作者] LIKE '%陈%' 

思考:  解释上面命令的功能作用