环境:
win10,SQL Server 2008 R2
参考:
SQL Server 新建数据库 - 菜鸟教程
https://www.cainiaoya.com/sqlserver/sql-server-create-db.html
第 2 课:编写 Transact-SQL | Microsoft Learn
https://learn.microsoft.com/zh-cn/previous-versions/sql/sql-server-2008-r2/ms166585(v=sql.105)
SQL Server 管理套件(SSMS)_w3cschool
https://www.w3cschool.cn/sqlserver/sqlserver-oe8928ks.html
安装说明在:
↓
SQL Server入门-安装和测试(2008R2版)-CSDN博客
https://blog.csdn.net/pxy7896/article/details/139737854
SQL Server Management Studio(简称SSMS)是一个图形化的管理平台。本文大部分操作在SSMS中进行。
数据库和表的操作
MS SQL Server中,有两种类型的数据库:1)系统数据库 2)用户数据库。前者是自动创建的,包括:master/model/msdb/tempdb。
- master:记录了系统级信息,如用户账号、配置信息、所有数据库的信息
- model:模板数据库。每当创建一个新的数据库(包括系统数据库的TempDB),会创建一个以 Model 数据库为副本数据库,并更改成你创建数据库时所用的名称
- msdb:是 SQL Server 代理的数据库,用于配置警报使用 SQL Server 代理和预定作业等
- tempdb:暂时存储数据的,包括临时表、临时存储过程等
后者是用户手动创建的,既可以通过点击,也可以使用T-SQL脚本创建(其实跟SQL一致,此处略)
使用数据库: use 数据库名称
删除数据库:drop database 数据库名称
可以用create命令创建表,也可以手动创建表(在当前数据库的“表”节点上右键,创建表)。
添加数据
- 手动单条添加
- 粘贴
- 导入
假设导入excel表:
这个地方选择目标:
因为student是一个已经存在于数据库中的表,所以会提示如果类型不同要如何转换数据:
成功后:
查询一下看看,发现已经正确导入了:
4. 使用sql脚本:insert语句
报错:当 IDENTITY_INSERT 设置为 OFF 时,不能为表’xx’中的标识列插入显式值
需要执行:
SET IDENTITY_INSERT 模式.表名 ON;
然后再执行insert语句。
insert的语法:
insert into 模式.表名 (列名1, 列名2, ...) values (值1, 值2, ...)
注意,字符串用单引号包围,不像mysql可以单或双。
查询设计器
在构建涉及很多表和视图的复杂查询时,可以考虑使用查询设计器。
先新建查询,然后点击查询-在编辑器中设计查询
然后添加表:
如果想构建关联,就是选中一个然后拖动到另一个上;如果要得到某列信息,就选中。下方会出现构建好的查询语句。
点击确定后,生成的语句会自动复制到查询页面,点击执行即可。
视图
视图是什么:
- 对用户来说,视图是从一个特定的角度,查看数据库中的数据。运行视图就能看到结果,就像打开了一个表
- 从数据库系统内部来看,一个视图是由select语句组成的查询,定义的虚拟表(可能是join了几个表,但是汇总在一起显示)
- 从数据库系统外部来看,视图也像一张表,对表的操作都可以应用在视图上(如增删改查)
视图的优点:
- 限制访问特定的表中的行和列
- 可以在视图中加入新列
- 展示汇总的信息(比如count的结果)
视图的不足:
允许选择数据,但不允许执行业务逻辑(如条件语句等)
语法:
- 新建视图
create view 名称 as select语句 ...
- 修改视图
alter view 名称 as 修改后的select语句
使用举例:
首先使用编辑器设计一个查询,然后在查询窗口顶端添加create view语句,此时查询窗口的内容如下:
create view todo as
SELECT student.学号, student.姓名
FROM student INNER JOIN
student$ ON student.学号 = student$.学号
点击执行,然后刷新该数据库的视图分支,可以看到该视图已经出现:
执行时直接在查询页面输入:
select * from todo;