参考自《SQL Server 2014 数据库原理与应用》 鲁宁 人民邮电出版社
本文重点:
●关系型数据库管理系统 (Relational Database Management System,RDBMS)
●SQL(Structured Query Language,结构化查询语言)
●ODBC(Open Database Connectivity,开放数据库互联)
●SQL Server
1 数据库基本概念
1.1数据模型——关系型(Relational Database)
用二维表结构来表示实体及实体之间联系的模型称为关系模型。关系模型中的基本数据逻辑结构是一张二维表。关系数据库已成为数据库技术的主流。
●关系模型术语
- 把二维表称作关系
- 一个表的结构称为关系模式(Relational Schema),它由一个关西民以及它所有的属性名构成,其格式为:关系名(属性名1,属性名2,属性名3…)
- 表中每一行称为一个元组,每一列称为一个属性
- 由若干个关系模式组成的集合称为关系模型
1.2 数据库系统
数据库系统(Database System,DBS)是采用数据库技术的计算机系统。广义的数据库系统由数据库、数据库管理系统、应用系统、数据库管理员和用户构成。
——
数据库管理系统(Database Management System,DBMS),是一种负责数据库的定义、建立、操作、管理和维护的系统管理软件。数据库管理系统位于用户和操作系统之间,负责处理用户和应用程序存取、操纵数据库的各种请求。常用的大型DBMS:SQL Server、Oracle、Mysql等。
数据库应用系统是指在数据库管理系统提供的软件平台上,结合各领域的应用需求开发的软件产品。
●MySQL
MySQL是一个关系型数据库管理系统 (Relational Database Management System,RDBMS),属于 Oracle 旗下的开源产品,在 WEB 应用方面相当出色。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。
●SQL Server
SQL Server是一个关系型数据库管理系统,由微软公司开发,相比于MySQL,拥有更好的技术支持以及更昂贵的授权费用。
2 SQL简介及语句应用
SQL(Structured Query Language,结构化查询语言)是关系数据库的标准语言。
SQL语言的组成:
- 数据定义语言(Data Definition Language,DDL),如CREATE,ALTER,DROP
- 数据操纵语言(Data Manipulation Language,DML),如INSERT,UPDATE,DELETE
- 数据控制语言(Data Control Language,DCL),如GRANT,REVOKE
- 数据查询语言(Data Query Language,DQL),如SELECT,FRAOM,WHERE
一些SQL语句的执行需要特定权限。
2.1 SQL的数据类型
- 整数数据型:bigint,int,smallint,tinyint,bit
- 精确浮点型:numeric,decimal,float,real
- 日期时间型:time,date,smalldatetime,datetime,datetime2,datetimeoffset
- 字符型:char,varchar,text
- 货币型:money,smallmoney
- unicode字符型:nchar,nvarchar,ntext
- 二进制字符型:binary,varbinary,image
- 特殊数据型
————————
Unicode(万国码)为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。Unicode编码共有三种具体实现,分别为utf-8,utf-16,utf-32(utf:Unicode Transformation Format,针对Unicode的可变长度字符编码,Unicode只是一个字符集,在制定的时候并没有考虑编码的问题),其中utf-8占用一到四个字节,utf-16占用二或四个字节,utf-32占用四个字节。
详见:字符编码的概念
2.2 使用SQL语句管理数据库
这里暂时都以最简语法表示
- 创建数据库
CREATE DATABASE database_name
- 修改数据库
ALTER DATABASE database_name
...
- 删除数据库
DROP DATABASE database_name
2.3 使用SQL语句管理表
- 创建表
CREATE TABLE tablename
column1 datatype[constraint],
column2 datatype[constraint],
...
columnN datatype[constraint],
- 修改表
——添加新列
ALTER TABLE table_name ADD COLUMN column_name datatype
——删除列
ALTER TABLE table_name DROP COLUMN column_name datatype
- 删除表
DROP TABLE table_name
2.4 使用SQL语句维护数据
- 数据插入
可以一次插入一条或多条记录:
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
- 数据更新
UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;
- 数据删除
DELETE FROM table_name
WHERE some_column=some_value;
FROM字句用来指定检索数据的来源;
WHERE子句用来限制返回的行的搜索条件。
2.5 SQL简单查询语句
SQL语言使用SELECT语句来实现数据的查询,并按用户要求检索数据,将查询结果以表格的形式返回。
SELECT column_name,column_name
FROM table_name;
3数据库访问架构——ODBC技术简介
ODBC(Open Database Connectivity,开放数据库互联),是微软开放服务结构(WOSA)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API。这些API利用SQL来完成大部分任务。
一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,所有数据库操作由对应的DBMS的ODBC驱动程序完成。ODBC为数据库应用程序访问异构型数据库提供了统一的数据存取API,应用程序不必重新编译、链接就可以与不同的DBMS连接。目前主流的DBMS都已支持ODBC。
一个完整的ODBC由以下几个部件组成:
- 应用程序
包括:
●ODBC管理器,用于管理安装的ODBC驱动程序和管理数据源;
●驱动程序管理器,用于管理ODBC驱动程序 - ODBC API
如ODBC驱动程序,提供了ODBC和数据库之间的接口。 - 数据源
包含数据库位置、类型等信息,是一种数据连接的抽象。
4启动SQL Server Management Studio
在使用SQL Server数据库管理系统之前,必须先启动SQL Server服务。
SQL Server Management Studio用于访问、配置和管理所有SQL Server组件的集成环境。
在此栏中选择以下设定:
- 服务器类型:选择数据库引擎
- 服务器名称:当前计算机名(如果计算机名修改过,则在此栏中也要做出相应的修改)
- 身份验证:SQL Server和Windows的身份验证是结合在一起的,因此有两种验证模式:
选择【SQL Server身份验证】时,默认登录名为sa,密码为软件安装时设置的密码;
选择【Windows身份验证】时,可使用本机账户和密码。如果忘记了SQL Server的密码可以改用【Windows身份验证】。
如果出现下列问题:
请核对服务器名称是否填写正确(填入计算机名),然后检查是否开启全部相关服务(特别是SQL Server代理)。
5 SQL Server系统数据库简介
进入系统后,在左侧【对象资源管理器】列表中可看到系统默认安装的4个系统数据库,如下图所示:
- master:记录SQL Server系统所有的系统级信息
- model:用作系统上创建的所有数据库的模板
- msdb:供SQL Server代理程序调度警报和作业以及记录操作员时使用
- tempdb:保存所有的临时表和临时存储过程
6管理数据库
SQL Server用文件存放数据库,数据库是由数据库文件和事务日志文件组成的:
数据库文件(Database File)包含数据库数据和数据库对象,一个数据库可以有多个数据库文件,但一个数据库文件只属于一个数据库。数据库文件可以集合起来放到文件卒中,便于分配和管理。
事务日志文件(Transaction Log File)是记录所有事务以及事务对数据库所做的修改的文件。
文件组(File Group)是将多个数据库文件集合起来形成的一个整体。
6.1操作
-
创建数据库:首次使用时必须创建新数据库。右键点击列表中的【数据库】,在菜单中点击【新建数据库】:
-
创建数据表:右击列表中新建数据库中的【表】,在菜单中点击【新建表】
-
浏览数据表:单击或双击数据表是无法打开表单页面的,需要右击数据表,在菜单中点击**【选择前1000行】**。无法查看所有行的原因是为了提高查询效率,可以通过设置来实现查看所有行。
7 SQL Server与外部数据的交互
7.1导入数据
使用SQL Server数据导入导出向导可以方便地将外部Excel、文本文件、Access等数据导入SQL Server目标数据库中。
右击新创建的数据库,在菜单中点击【任务】-【导入数据】,在弹出的【SQL Server导入和导出向导】中选择数据源,数据源指要从什么文件导入。注意软件不允许导入高版本的excel,因此建议将高版本的excel另存为低版本:
然后在【选择目标】中选择要将数据导入到哪个数据库中,选择【SQL Server native client 11】:
在【指定表复制或查询】中,选择【复制一个或多个表或视图的数据】;
在【选择源表和源视图】中选择要导入的表,注意有$符号结尾的是excel中的表。在这一步可能会出现导入完成后却找不到导入的表的情况,这时候只需要保存并重启软件即可。
跳过【查看数据类型映射】;
在【保存并运行包】中勾选【立即运行】;
其后一路点击完成向导配置。
展开【表】,可看到导入的数据表:
8数据安全性管理
8.1数据库登录管理
在SQL Server中有两种账号:一种是登录服务器(SQL Server)的登录账号(Login Name);另一种是使用数据库的用户账号(User Name)。登录账号本身并不能让用户访问服务器中的数据库,当一个用户创建时,必须关联一个登录名。
系统创建的默认登录账号为sa。sa是超级管理员账号,允许SQL Server的系统管理员登录。
管理登录账号
忘记sa的密码后,可以先使用【Windows身份验证】进行登录,进入主界面后选择左侧列表【安全性】-【登录名】-“sa”,右击点击【属性】:
在此处修改密码:
然后执行重新启动的操作:
即可使用sa和更新的密码登录数据库。
8.2数据库用户管理
用户是服务器针对数据库权限的设置位置。用户是一个或多个登录对象在数据库中的映射。一个登录可对应多个用户,一个用户也可以被多个登录使用。如果没有为一个登录指定数据库用户,则登录时系统会视图将登录名映射成guest用户。
- dbo用户
全称Database Owner,是具有在数据库中执行所有活动的暗示性权限的用户。 - guest用户
创建数据库之后自动生成,其任务为让未经授权或明确定义的用户具有一定程度的权限。可以通过权限设置更改其权限。