SQL server 简单语法 包含创建数据库、建表、查询、插入、比较、排序、数据处理等


代码运行软件:SQL server 2019

0、数据库简介(了解)

数据库(Database,DB):按照数据结构来组织、存储和管理数据的仓库,其本身可看作电子化的文件柜,用户可以对文件中的数据进行增加、删除、修改、查找等操作。数据库基于某种目的以及规则进行管理的数据汇总。

SQL(Structured Query Language): 用于操作数据库的语言。

**数据库的分类:**分为层次型、网型、关系型。

层次型数据库:数据由一对多的亲子节点所连接,类似于数据结构中的树结构,是一种很古老的数据库形态,很难对信息进行击中管理。

网型数据库:数据以多对多的方式进行连接,类似与数据结构中的图结构,虽然可以集中管理数据,但是数据间的关系过于复杂,管理起来非常困难。

关系型数据库:数据通过行和列所构成的表进行管理。各个数据间保持独立、便于管理,并且表之前可以自由组合关联,因此,是现今最广泛应用的数据库类型。

数据库管理系统(Database Management System,DBMS):是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。主要具有数据的插入、更新、删除、排序、查询、共享(由多个软件共享数据)

0.1、关系数据库

关系数据库:通过行(row)和列(column)所构成的表形式来管理数据,即称为表(table)。关系数据库拥有表之间进行关联的运作机制。关系数据库是由名为**关系数据库管理系统(Relational Database Management System,简称RDBMS)**的软件进行管理。关系数据库具体代表有SQL server、Oracle、MySQL、PostgreSQL等。

主键(primary key):是指表中用于标识某一行的列。比如,在一张表中,我们可以对一个学号、职工号等对某人进行标识、区分,避免不同人的属性相同造成的混乱,无法区分。在一个表中只能设置唯一的一个主键。同时,给表设置主键后,能轻松的对表进行关联。

复合主键:有时只把一列设置为主键,无法区分,例如,地址的数据表中,只把区作为主键,会存在市、县等相同的情况,达不到区分,虽然主键在一张表格中只能设置一个,但是可以把多个列组合到一起作为主键使用,称这样的主键为复合主键

视图:在现有的表中提取需要的部分,抛弃原有的格式,作为虚拟的表进行展示的功能,就是视图

1、SQL基础

1.0、SQL功能分类

根据数据库语言的功能可分为:数据定义语言(DDL:Data Definition Language)、数据操作语言(DML:Data Manipulation Language)、数据控制语言(Data Control Language)。

1.1、数据库和表的创建

1.1.1、数据库创建

**数据库创建:**数据存储在表内,而表又保存在数据库中,故首先要创建数据库。创建数据库时使用的是CREATE DATABASE 语句。

代码运行软件:SQL server 2019

CREATE DATABASE 数据库名;  --SQL语句不区分大小写 
--SQL示例 创建COURSE数据库
CREATE DATABASE COURSE; 

1.1.2、选择数据库

选择数据库:RDBMS在连接之后会自动选择默认的数据库。因此想要在SQL server中使用新创建的数据库,需要通过USE来选择。

USE 数据库名; --如果不选择对应的数据库,就无法使用其中的值。

1.1.3、 表的创建

**创建表格:**创建表格时,使用CREATE TABLE语句。

--简单的表结构,其中的变量名就是表中的列名  
CREATE TABLE 表名(
    存储变量名1 变量类型1,
    存储变量名2 变量类型2.....
    存储变量名n 变量类型n
);
--SQL示例 创建course表
CREATE TABLE course(
	courseName VARCHAR(20),
	teacherName VARCHAR(10),
	studentPeople INT,
	teacherID  INT
);

1.2、表约束

1.2.1、约束

约束:是用来保证存入的数据能够一直保持正确状态的条件。创建表时,设置约束,可以对数据的输入进行控制。

约束分类:一种时设置在单列上的列级约束,另一种是同时作用于多个列的表级约束,而复合约束则是属于后者。

列级约束:写在数据类型之后,空格进行分隔。

表级约束:写在所有列的定义后。

--SQL示例  增加约束
CREATE TABLE course(
	courseName VARCHAR(20),
	teacherName VARCHAR(10),
	studentPeople INT UNIQUE,  --列级约束:对学生人数进行约定
	teacherID  INT,
    PRIMARY KEY (teacherName,teacherID)  --表级约束:对老师姓名,以及其职工号进行约束,定义复合主键
);

1.2.2、重要的约束种类

约束的主要几种:

约束功能
PRIMARY KEY (主键)禁止数据重复,禁止NULL值
UNIQUE数据具有唯一性
CHECK(表达式)预先准备表达式,禁止与之不符的数据
NOT NULL禁止NULL 值
DEFAULT = 值预先设置的值将会作为默认值

1.3、添加数据

添加数据:向表中添加数据时,使用INSERT 语句,需要添加数据的目的表则跟在INTO之后。

INSERT INTO 目的表名 (变量名1,变量名2,...,变量名n) VALUES (数据1,数据2,...,数据n);
USE COURSE; --连接COURSE数据库
INSERT INTO course(courseName,teacherName,studentPeople,teacherID) VALUES ('Java语言','TL2',64,981097);

1.4、查询

1.4.1 查询全部

**获取数据:**从表中获取已有的数据时,使用SELECT语句,从什么表中获得,可用FROM语句指定

SELECT * FROM 表名; --星号(*)表示提取全部列
--SQL获取全部数据
USE COURSE;--连接COURSE数据库
SELECT * FROM course;

1.4.2、查询指定的列

  1. 查询指定的一列
SELECT 列名 FROM 表名;
--查询courseName一列
USE COURSE;--连接COURSE数据库
SELECT courseName FROM course;
  1. 查询指定的多列
SELECT 列名1,列名2,..,列名n FROM 表名;
--查询courseName和teacherID
USE COURSE;--连接COURSE数据库
SELECT courseName,teacherID FROM course;

1.4.3、指定条件查询

**指定条件查询:**只提取特定条件的数据时,使用WHERE子句。

--以指定多列为例
SELECT 列名1,列名2,..,列名n FROM 表名 WHERE 表达式;
--查询学生人数大于64的课程
USE COURSE;--连接COURSE数据库
SELECT * FROM course WHERE studentPeople >64;

1.4.4、指定数量进行查询

SQL server的指定方法:

1.使用TOP子句可以指定从前往后提取行数。

--以指定多列为例
SELECT TOP(行数) PERCENT 列名1,列名2,..,列名n FROM 表名;
--查询前五行
USE COURSE;--连接COURSE数据库
SELECT TOP(5) * FROM course;
  1. 指定获取结果时,可以使用百分比代替行数。
--以指定多列为例
SELECT TOP(百分比) PERCENT 列名1,列名2,..,列名n FROM 表名;
--查询前20%
USE COURSE;--连接COURSE数据库
SELECT TOP(20) PERCENT * FROM course;

1.5、数据排序

  1. **ORDER BY 排序:**通过ORDER BY 子句能够以指定的列为基准对数据进行排序。
--以指定多列为例
SELECT 列名1,列名2,..,列名n FROM 表名 ORDER BY 列名 ASC;  --ASC表示降序排序,可以不写
SELECT 列名1,列名2,..,列名n FROM 表名 ORDER BY 列名 DESC;  --DESC表示升序排序
  1. 复杂排序:如果指定了多列作为基准,就能以更加详细的条件进行排序
--以指定多列为例
SELECT 列名1,列名2,..,列名n FROM 表名 ORDER BY 列名1,列名2,...,列名N;  --首先以列名1排序,如果列名1相同,再看列名2,-      															  --一直往下
  1. WHERE条件排序:WHERE子句和ORDER BY子句组合起来使用
--以指定多列为例
SELECT 列名1,列名2,..,列名n FROM 表名 WHERE 表达式 ORDER BY 列名 DESC;
--查询teacherName为TL2的数据,并降序排列
USE COURSE;--连接COURSE数据库
SELECT * FROM course WHERE teacherName= 'TL2' ORDER BY teacherID ASC;

1.6、对数据进行分组

对数据进行分组:使用GROUP BY 之后,指定的列中拥有相同的数据的行,将会分组合并到一行中。要与聚合函数一起使用。

SELECT 列名,聚合函数 FROM 表名 GROUP BY 列名;
--对teacherName进行分组
USE COURSE;--连接COURSE数据库
SELECT teacherName,COUNT(teacherName) FROM  course  GROUP BY teacherName; 

1.7、去除重复的数据

去除重复的数据:使用DISTINCT可以去除数据中重复的部分。

--以指定多列为例
SELECT DISTINCT 列名1,列名2,..,列名n FROM 表名;
--去除teacherName相同的部分,数据库里并没用去除,只是显示的时候去除显示
USE COURSE;--连接COURSE数据库
SELECT DISTINCT teacherName FROM course;

1.8、改变显示列名

改变显示列名:利用AS运算符可以把现有的列名变成其他名称,但生效的位置只是显示名称,并不会改变原来的列名。

SELECT 原有列名 AS 更改改后的列名 FROM 表名;

1.9、数据类型

1.9.1、整数型

整数类型表:处理整数

使用方法可处理的数据
INT整数
SMALLINT比INT范围更下的正数

1.9.2 实数型

实数型表:处理带有小数点的数值

使用方法可处理数据
DECIMAL(m,n)可以决定数值精度,其中m表示总位数,而n表示小数点以后的位数,m、n可以省略,如果省略,则小数部分四舍五入。
NUMERIC(m,n)可以决定数值精度,其中m表示总位数,而n表示小数点以后的位数,m、n可以省略,如果省略,则小数部分四舍五入。
REAL单精度浮点数
FLOAT(n)浮点数,如果n<24,则与REAL相同。
FLOAT(53)双精度浮点数

1.9.3、字符串型

字符串型:处理字符串

使用方法可处理数据
CHAR(n)长度固定的字符串(n字节内)
VARCHAR(n)长度可变的字符串(n字节内)
TEXT文本类的大量字符串
NCHAR(n)长度固定的UNICODE字符串(n字节内)
NVARCHAR(n)长度可变的UNICODE字符串(n字节内)
NTEXT文本类的大量UNICODE字符串

1.9.4、日期和时间类型

**日期和时间类型:**处理日期和时间

使用方法可处理数据
DATA日期(YYYY-MM-DD)
TIME时间(HH:MM:SS)
SMALLDATATIME自动更新的日期和时间(精确分钟)
DATATIME自动更新的日期和时间(精确毫秒)
DATATIME2自动更新的日期和时间(精确纳秒)

1.9.5、布尔型

布尔型:处理真假判断

使用方法可处理数据
BOOLEANTRUE(真)、FALSE(假)、UNKNOW(未知)其中之一

1.9.6、二进制型

**二进制型:**处理图像数据、声音数据等无法用文本或数值来表示的数据,由于本文以SQL server为基础编译的数据库,故有部分可能与SQL99有出入,但相差不大

使用方法可处理的数据
BIT/BINARY长度固定的bit列(上限为n bit)SQL server不能指定长度n
VARBINARY长度可变的bit列(上限为n bit)SQL server不能指定长度n
VARBINARY二进制数据

2、运算符

2.1、算术运算符

  1. 计算数值的运算符:
运算符和功能使用方法
+(加法)a+b
-(减法)a-b
*(乘法)a*b
/(除法)a/b
%(求余)a%b
  1. **使用方法:**使用算术运算符时,将数值和列名与运算符组合起来。可以利用()设置优先级。
--以乘法举例
列名 * 数值
列名 * 列名
--将学生人数加33并改变列名显示
USE COURSE;--连接COURSE数据库
SELECT courseName,(studentPeople + 33) AS  studentSUM FROM course;

2.2、比较运算符

比较运算符:在WHERE子句中加入值或数值之间进行比较的条件表达式,会改变语句的处理方式。条件成立时,表达式返回运算结果“true”,反之结果为“false”。

运算符使用方法含义
=a=ba等于b
<a<ba小于b
<=a<=ba小于等于b
>a>ba大于b
>=a>=ba大于等于b
<> 或者 !=a<>b 或者 a!=ba不等于b
--建立学生数据库,并进行运算符操作
--CREATE DATABASE STUDENT;

USE STUDENT;

--CREATE TABLE student(
--	id INT,
--	[name] VARCHAR(10),
--	ENGLISH INT,
--	MATH INT
--);

INSERT INTO student (id,[name],ENGLISH,MATH) VALUES (201212,'TL1',86,70);
INSERT INTO student (id,[name],ENGLISH,MATH) VALUES (202014,'TL2',90,90);
INSERT INTO student (id,[name],ENGLISH,MATH) VALUES (202014,'TL3',87,84);
INSERT INTO student (id,[name],ENGLISH,MATH) VALUES (202014,'TL4',86,86);
INSERT INTO student (id,[name],ENGLISH,MATH) VALUES (202014,'TL5',82,73);
INSERT INTO student (id,[name],ENGLISH,MATH) VALUES (202014,'TL6',79,86);
INSERT INTO student (id,[name],ENGLISH,MATH) VALUES (202014,'TL7',91,95);
--使用WHERE子句把条件为false的踢出,选出满足true的数据
USE STUDENT;--连接COURSE数据库
SELECT [NAME],MATH FROM student WHERE MATH >= 90; 

2.3、逻辑运算符

逻辑运算符:可以把多个条件组合起来,形成更加复杂的条件。

运算符使用方法含义
AND (与)(a>10)and (a<20)a大于10且a小于20
OR(或)(a=5) or (a=10)a等于5或10
NOT(非)not (a=20)a不等于20
--选出数学大于80且小于90时的数据
USE STUDENT;--连接COURSE数据库
SELECT [NAME],MATH FROM student WHERE (MATH < 90) AND (MATH > 80); 

2.4、字符处理运算符

2.4.1、字符串联运算符

字符串联运算符:把字符连接起来,SQL server 用+运算符。

列名 + 列名
--例如:
SELECT 列名1+列名2 FROM 表名;

2.4.2、字符串比较选取

字符串比较:想获取字符串中包含特定的字符串的数据时,需要使用LIKE 运算符。

设定方法

运算符功能使用方法含义
%相当与0~任意长度的文字列%T%包含T的任何字符串
_(下划线)相当于一个字符T_以T开头的两个字符的字符串
--选取出name中含T开头的数据
USE STUDENT;--连接COURSE数据库
SELECT *  FROM student WHERE [name] LIKE 'T%';  --其中name为进行比较的列名,T%表示以T开头的字符串

2.5、其他字符串

2.5.1、BETWEEN运算符

BETWEEN运算符:使用between~and可以指定范围,可用比较运算符替换

列名 BETWEEN  小范围数 AND 大范围数
--选出数学大于80且小于90时的数据
USE STUDENT;--连接COURSE数据库
SELECT [NAME],MATH FROM student WHERE MATH BETWEEN 80 AND 90; 

2.5.2、IS NULL运算符

IS NULL运算符:判断指定列的值是否为NULL。

列名 IS NULL        ....指定列的值为NULL,则为true,否则为false
列名 IS NOT NULL    ....指定列的值不为NULL,则为true,否则为false

2.5.3、IN运算符

**IN运算符:**使用IN运算符,仅会从特定的数据里面提取与()中某项值相同的数据,判断数据是否在IN后面的数据中。其中NOT IN 则表示指定值意外的数据,可用比较运算符替换

列名 IN (数据1,数据2,...,数据N)
列名 NOT IN (数据1,数据2,...,数据N)
--选出数学为80或90的数据
USE STUDENT;--连接COURSE数据库
SELECT [NAME],MATH FROM student WHERE MATH IN (80 , 90); 
  • 5
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
中文版SQL Server 2000开发与管理应用实例-目录: 第 1 章 安装和配置SQL Server 1 1.1 SQL Server的版本和版本选择 1 1.2 安装SQL Server的常见问题 3 1.3 如何理解实例 5 1.4 如何实现无值守安装 5 1.5 Desktop Engine 9 1.5.1 MSDE 2000概述 9 1.5.2 获取MSDE 2000 9 1.5.3 安装MSDE 2000 10 1.5.4 管理MSDE 2000 11 1.5.5 支持的并发用户数和数据库容量 12 1.6 SQL Server Service Pack 12 1.6.1 确定已安装SQL Server的版本 12 1.6.2 SQL Server Service Pack 4介绍 13 1.6.3 SQL Server Service Pack 4的内容 13 1.6.4 安装SQL Server Service Pack 4的常见问题 14 1.7 SQL Server服务 15 1.8 服务账户 15 1.9 影响SQL Server运行的设置 18 1.9.1 内存配置 18 1.9.2 数据存储 20 第 2 章 日期处理 23 2.1 日期类型概述 23 2.2 日期处理函数 25 2.2.1 日期增减函数 25 2.2.2 日期信息获取函数 26 2.2.3 日期差值计算函数 27 2.2.4 其他日期处理相关函数 27 2.3 日期选项设置 29 2.3.1 default language选项 30 2.3.2 SET DATEFIRST 31 2.3.3 SET DATEFORMAT 31 2.3.4 SET LANGUAGE 33 2.4 日期格式化与日期推算处理 34 2.4.1 日期格式化处理 34 2.4.2 日期推算处理 35 2.4.3 日期加减处理 38 2.5 日期处理实例 40 2.5.1 生日处理 40 2.5.2 生成日期列表 42 2.5.3 工作日处理 46 2.5.4 工作时间计算 49 2.6 日期处理疑难解答 51 2.6.1 日期处理中常犯的错误 51 2.6.2 常见的低效率日期处理方法 52 2.6.3 日期与数字 53 第 3 章 字符处理 55 3.1 字符类型概述 55 3.2 字符串分拆 56 3.2.1 循环截取法 57 3.2.2 动态Transact-SQL语句法 57 3.2.3 辅助表法 59 3.2.4 分拆数据到列 61 3.2.5 分拆数字数据 62 3.2.6 分拆短信数据 63 3.3 字符串合并 64 3.3.1 游标合并法 65 3.3.2 语句合并法 66 3.3.3 临时表合并法 68 3.3.4 固定行合并法 69 3.4 其他字符串处理要求 70 3.4.1 分段截取 70 3.4.2 分段更新 72 3.4.3 IP地址处理 72 3.5 字符串分拆与合并处理应用实例 74 3.5.1 字符串比较 74 3.5.2 字符串交集/并集 75 3.5.3 分拆字符串并统计 78 3.5.4 借用字符串实现无规律排序 82 3.5.5 列车车次查询 82 3.6 字符串在动态Transact-SQL语句中的应用 85 3.6.1 动态Transact-SQL语句概述 85 3.6.2 字符串在编号查询中的使用 87 3.6.3 动态参数存储过程 90 3.6.4 动态Transact-SQL语句中常见问题 92 3.7 text与ntext字段处理 96 3.7.1 text与ntext数据的存储 96 3.7.2 管理text与ntext数据 97 3.7.3 text与ntext字段的复制和合并 99 3.7.4 text与image字段转换 101 3.7.5 ntext字段的REPLACE处理 103 第 4 章 排序规则 107 4.1 字符存储编码与排序规则 107 4.1.1 字符数据的存储编码 107 4.1.2 UNICODE 108 4.1.3 排序规则 109 4.1.4 排序规则比较和排列规则 111 4.1.5 使用排序规则 112 4.1.6 如何选择字符字段类型 116 4.2 排序规则应用 117 4.2.1 拼音处理 117 4.2.2 全角与半角字符处理 120 第 5 章 编号处理 123 5.1 自动编号 123 5.1.1 IDENTITY 123 5.1.2 ROWGUIDCOL 129 5.2 手工编号 131 5.2.1 查表法 131 5.2.2 独立编号表法 135 5.2.3 随机编号 139 5.3 缺号与补号 143 5.3.1 检查缺号 143 5.3.2 补号处理 143 5.3.3 编号重排 146 5.4 编号查询 150 5.4.1 已用编号分布查询 150 5.4.2 缺号分布查询 151 5.4.3 生成已用编号和缺号分布字符串 152 5.4.4 缺勤天数统计 155 第 6 章 数据统计与汇总 159 6.1 基本查询 159 6.1.1 空(NULL)值对查询的影响 159 6.1.2 联接 161 6.1.3 UNION与UNION ALL 165 6.1.4 数据填充查询 167 6.1.5 上限与下限区间统计 169 6.1.6 随机记录查询 170 6.2 分级汇总 173 6.2.1 实现分级汇总处理 173 6.2.2 分级汇总结果的过滤 176 6.2.3 分级汇总结果显示格式处理 177 6.2.4 分级汇总结果的排序处理 179 6.3 交叉数据报表 181 6.3.1 实现原理 181 6.3.2 多列转置 184 6.3.3 动态列 185 6.3.4 动态列中的字符溢出处理 188 6.3.5 特殊的交叉报表 191 6.4 典型数据统计案例 193 6.4.1 库存明细账查询 193 6.4.2 同期及上期数据对比 197 6.4.3 动态分组统计 199 6.4.4 销售排行榜 200 第 7 章 分页处理 205 7.1 应用程序中的分页处理 205 7.2 数据库中的分页处理 207 7.2.1 使用TOP N实现分页 207 7.2.2 使用字符串 211 7.2.3 使用临时表 213 7.2.4 使用SQL Server的系统存储过程处理分页 216 7.3 特殊要求的分页处理 217 7.3.1 随机显示的分页处理 217 7.3.2 分类数据的分页处理 221 第 8 章 树形数据处理 223 8.1 单编号处理法 223 8.1.1 方法概述 223 8.1.2 逐级汇总 225 8.1.3 编码重排 226 8.1.4 调整编码规则 229 8.1.5 调整编码隶属关系 233 8.2 双编号处理法 238 8.2.1 方法概述 239 8.2.2 树形数据排序 240 8.2.3 查找子节点 244 8.2.4 查找父节点 245 8.2.5 编码校验 246 8.2.6 节点复制 249 8.2.7 节点删除 251 8.2.8 逐级汇总 253 8.3 树形数据的扩展形式 256 8.3.1 产品配件清单 256 8.3.2 公交车乘车线路查询 258 第 9 章 数据导入与导出 261 9.1 访问外部数据 261 9.1.1 链接服务器 261 9.1.2 OPENROWSET与OPENDATASOURCE 268 9.1.3 外部数据访问方法总结 270 9.2 文本文件的导入与导出 274 9.2.1 查询文本文件内容 274 9.2.2 BCP与BULK  277 9.3 导入与导出中的常见问题 285 9.3.1 访问外部数据的注意事项 285 9.3.2 使用BCP或者BULK 时的注意事项 286 9.3.3 外部数据文件位置及文件访问权限问题 287 9.4 在客户端实现SQL Server数据导入与导出处理 288 9.4.1 在Access数据库中实现与SQL Server之间的数据交换 288 9.4.2 实现客户端其他OLE DB数据源与SQL Server之间的数据交换 289 9.4.3 在客户端实现SQL Server数据导入与导出处理的一些说明 289 9.5 在数据库中存取文件 290 9.5.1 SQL Server中的文件存取方法 290 9.5.2 程序中的文件存取处理方法 292 第 10 章 作业 295 10.1 作业概述 295 10.1.1 定义作业 295 10.1.2 使用系统存储过程定义作业的常用模板 300 10.2 作业的应用 303 10.2.1 定时启用(或者停用)数据库 303 10.2.2 执行耗时的存储过程 304 10.2.3 秒级作业 305 10.3 使用作业的疑难解答 309 第 11 章 数据备份与还原 315 11.1 数据库备份与还原方法介绍 315 11.1.1 完全备份与还原 315 11.1.2 差异备份与还原 317 11.1.3 日志备份与还原 319 11.1.4 数据文件或文件组备份与还原 320 11.1.5 备份设备 321 11.1.6 数据库恢复模型对数据库备份和还原的影响 322 11.2 制订数据库备份方案 326 11.2.1 备份方案制订原则 326 11.2.2 建立数据备份方案 327 11.3 数据库备份与还原的实践应用 332 11.3.1 系统数据库的备份与还原 332 11.3.2 数据库迁移 336 11.3.3 部分数据库还原 339 11.3.4 抢救损坏数据库中的数据 341 11.3.5 将数据还原到指定时间点 343 11.3.6 将数据还原到指定标记点 345 11.3.7 同步备用服务器 346 11.4 数据备份与还原疑难解答 349 11.4.1 数据备份与还原中的常见问题 349 11.4.2 使用媒体集备份时的常见问题 354 11.4.3 数据库还原中的孤立用户问题 356 11.4.4 查询备份文件中的信息 360 第 12 章 用户定义数据类型 361 12.1 用户定义数据类型概述 361 12.1.1 创建和删除用户定义数据类型 361 12.1.2 为用户定义的数据类型绑定规则 365 12.1.3 为用户定义的数据类型绑定默认值 370 12.2 修改用户定义数据类型 373 12.2.1 修改被表引用的用户定义数据类型 373 12.2.2 修改被存储过程引用的用户定义数据类型 379 第 13 章 数据库安全 383 13.1 SQL Server的存取构架 383 13.1.1 表格格式数据流(TDS) 383 13.1.2 Net-Library与网络协议 384 13.1.3 Net-Library加密 387 13.2 用户管理 388 13.2.1 身份验证模式 388 13.2.2 登录、用户、角色和组 390 13.2.3 管理用户 395 13.3 数据文件安全 403 13.4 SQL Server安全配置 405 13.4.1 安全配置建议 405 13.4.2 使用安全套接字层(SSL)加密 408 13.5 应用程序上的安全 417 13.5.1 防止SQL注入式攻击 417 13.5.2 限制应用程序访问 418 13.5.3 不安全的扩展存储过程 419 第 14 章 系统表应用实例 423 14.1 系统对象概述 423 14.1.1 每个数据库中都存在的系统表 424 14.1.2 仅在系统数据库中存在的系统表 424 14.1.3 系统表应用中三个重要的系统存储过程 426 14.2 系统表在对象信息检索中的应用 429 14.2.1 搜索指定的对象所处的数据库 429 14.2.2 获取存储过程参数定义 432 14.2.3 搜索指定字符在哪个表的哪个字段中 435 14.2.4 非UNICODE字段改为UNICODE字段的可行性查询 438 14.2.5 字段相关对象查询 439 14.2.6 生成数据库字典 443 14.3 系统对象在处理中的应用 444 14.3.1 批量处理数据库中的对象 444 14.3.2 将所有的char、varchar改为nchar、nvarchar 445 14.3.3 标识列与普通列的相互转换 447 14.3.4 把列添加指定位置 450 14.3.5 在两个SQL Server数据库之间复制对象 451 第 15 章 SQL Server应用疑难解答 455 15.1 访问SQL Server实例的常见问题 455 15.1.1 连接失败 455 15.1.2 用户登录失败 458 15.1.3 测试连接到SQL Server实例的方法总结 458 15.1.4 超时 459 15.1.5 单用户的问题 460 15.1.6 默认数据库问题 461 15.2 索引中的疑难解答 462 15.2.1 索引对查询条件的影响 462 15.2.2 索引对查询结果顺序的影响 465 15.2.3 索引对数据操作的影响 469 15.3 数据库日志疑难解答 470 15.3.1 影响日志文件增长的因素 471 15.3.2 从事务日志中删除日志记录 472 15.3.3 日志文件处理中的误区 472 15.3.4 合理解决日志文件增长 473 15.4 错误处理疑难解答 474 15.4.1 错误处理概述 474 15.4.2 错误处理严重程度 475 15.4.3 使用@@ERROR的疑难解答 476 15.4.4 XACT_ABORT与RAISERROR的疑难解答 477 15.5 游标处理疑难解答 479 15.5.1 全局游标与本地游标 479 15.5.2 检查指定的游标是否存在 480 15.5.3 事务提交或者回滚对游标的影响 482 15.5.4 可更新的游标 483 15.6 SQL Server处理中的其他疑难解答 484 15.6.1 并发工作负荷调控器 484 15.6.2 存储过程中的疑难解答 486 15.6.3 标识值疑难解答 488 15.6.4 全文检索疑难解答 491 15.6.5 发布与订阅中的常见问题 494 15.6.6 其他疑难解答 496 中文版SQL Server 2000开发与管理应用实例-简介: 《中文版SQL Server 2000开发与管理应用实例》 本书全面系统地介绍了SQL Server开发和管理的应用技术,涉及安装和配置SQL Server、日期处理、字符处理、排序规则、编号处理、数据统计与汇总、分页处理、树形数据处理、数据导入与导出、作业、数据备份与还原、用户定义数据类型、数据库安全、系统表应用实例、SQL Server应用疑难解答等内容。本书不但融合了作者在使用SQL Server 2000过程中遇到的各种常见问题和应用案例,还总结了作者几年来在CSDN 社区SQL Server版所解决的大量问题,面向实际项目需求,涉及不同类型的应用,能够多角度地引导读者学习相关知识。而且针对各类问题,提供了详细的操作步骤和解决思路,具有很强的实用性和可操作性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值