数据类型
----系统数据类型
系统数据类型是SQL SERVER支持的内置数据类型。
数据类型
|
描述
|
所需空间
|
binary
|
固定长度的二进制数据,最大长度为8,000字节
|
0到8000字节,具体取决于定义
|
Bit
|
整型数据,值为1或0(真或假)
|
1字节
|
Char
|
固定长度的非Unicode的字符数据,最大长度为0到8000字节,8,000个字符
|
0到8000字节,8,000个字符。具体取决于定义
|
Datetime
|
日期和时间数据,从1753年1月1日到9999年12月30日,精确到三百分之一秒,即3.33秒
|
8个字节。
|
Decimal
|
带定点精度和小数位数的十进制数字类型
|
2-17字节
|
float
|
浮点精度数据类型,从-1.79E+308到1.73+308.
|
8字节
|
image
|
可变长度的二进制数据,最大长度为2^31-1字节
|
16字节的指针,每个
初始化列至少外加2000字节
|
Int
|
整数数据,从-2^31-1到2^31-1
|
4个字节
|
Money
|
货币数据类型,从-2^63到2^63-1,精确到每个货币单位的万分之一
|
8个字节
|
Numeric
|
decimal的同义词
|
2-17字节
|
Real
|
浮点精度数字数据,从-3.40E+38到3.40E+38
|
4个字节
|
Smalldatetime
|
Smalldatetime 日期和时间数据,从1900年1月1日到2079年6月6日,精确到1分钟
|
4个字节
|
Smallint
|
整数数据,从2^15到达^15-1
|
2个字节
|
Text
|
(文本)可变长度的非Unicode数据,最大长度为2^31-1个字符
|
16字节的指针,每个
初始化列至少外加2000字节
|
Timestamp
|
整个数据库范围内的唯一数字
|
8个字节
|
Tinyint
|
整数数据,从0 到255
|
1个字节
|
Uniqueidentifier
|
存储作为全局唯一标识符(GUID)的16字节的二进制值。GUID是确保唯一性的二进制数字
|
16字节
|
Nvarchar
|
可变长度的Unicode数据,最大长度为4000个字符
|
存储大小是输入数据
|
----用户数据类型
添加用户数据类型:
sp_addType 自定义数据类型名,基本数据类型,’not null’
删除用户数据类型:
sp_dropType自定义数据类型名
规则:被绑定在一列或一个用户定义数据类型上的一个数据库对象,它指定了该列可以输入的数据
创建规则:create rule 规则名 as @rID like ‘指定输入样式’
删除规则:drop rule 规则名
综合实例:现在我要创建一个类型,这种类型用来输入特殊的ID,比如 ‘TT-AC01’,只能以TT-开头,后接两个字母和两个个数字,不输入的话,则默认添入’TT-AA11’
--创建规则,规则名为r_id,@rr为变量,代表以后输入的值
create rule r_id as @rr like ‘TT-[A-Z][A-Z][0-9][0-9]’
--创建默认,默认名为 dData
create default dData as ‘TT-AA11’
--添加用户自定义类型,类型名为inID
sp_addType inID,varchar(7),not null
--将规则和默认绑定到数据类型上
sp_bindrule r_id,inID
sp_bindefault dData,inID
现在就完成了,我们可以直接用inID这种数据类型,只能输入’TT-VC24’这种格式,默认输入为’TT-AA11’
-----------------------------------------------------------------------------
数据插入、更新、删除
----插入数据
(1) 插入所有字段
insert into 表名 values(值1,值2…)
(2) 插入个别字段(插入的值要和列的类型相对应)
insert into 表名(列1,列2…) values(值1,值2…)
(3) 表对表的插入
insert 表名(列1,列2…)
select 列1,列2…
from 源表名
----更新数据
update 表名 set 列1=值,列2=值..
where 条件
----删除数据
delete from 表名
where 条件
(truncate table 表名,删除整个表的数据,速度更快)
-----------------------------------------------------------------------------
数据查询
(返回的结果是一个临时表)
完整的查询语句:
select 列|表达式
from 表名
where 条件(针对select和from返回的结果进行筛选)
group by 列(针对where子句的输出结果分组)
having 条件(针对分组汇总后的结果进行筛选)
order by 列,…(进行排序)
聚合函数:sum(求和)
avg(求平均值)
count(记数)
max(求最大值)
min(求最小值)
(聚合函数忽略null值。如果加入distinct的话,只进行一次重复值的运算)
---------------------------------
distinct(独特的)只返回不重复的值
Date between '2009-01-26' and '2009-02-06' 范围的查询
如:select distinct name
from student
查询结果只返回不重复的值
---------------------------------
order by 用来排序,Asc代表升序,Desc代表降序
如:有个成绩表,我先按学生的ID升序排序,再按Score(分数)降序排序
select *
from tbExam
order by u_ID asc,Score desc
---------------------------------
使用常量:
如:有学生表字段name,sex,age,我要连接在一起显示出来
select ‘姓名:’+name+’ 性别:’+sex+’ 年龄:’+cast(age as varchar)
from tbStudent
注:”+”号左右两边的数据类型必须相等
cast是把age数字型转换成了varchar文本型
注:类型转换 1)convert(类型,内容,格式) 2)cast(内容 as 类型)
---------------------------------
给列命别名:
(1) select 别名=列名 from 表
(2) select 列名 as 别名 from 表
查询,列是没有名字的,我们可以给列命别名
select ‘姓名:’+name+’ 性别:’+sex+’ 年龄:’+cast(age as varchar)
as ‘学生信息’
from tbStudent
---------------------------------
用Top关键字对返回的数据的数量进行控制
如:学生表有10条数据,我要返回5条,可以采用下面两种方法
(1) select top 5 *
from tbStudent
(2) select top 50 percent
from tbStudent
注:percent是百分比的意思,代表我只返回百分之50的数据
---------------------------------
联接:
联接
|
----------------------------------------------------
| | |
内联接 外联接 内联接
|
-------------------------------
| | |
左外部联接 右外部联接 完全外部联接
1. 内联接,只返回左右两表相匹配的记录
select *
from A inner join B
on 条件
2. 外联接
左外部联接,返回左表中所有的记录,但仅返回右表中相匹配的记录
select *
from A left join B
on 条件
右外部联接,返回右表中所有的记录,但仅返回左表中相匹配的记录
select *
from A right join B
on 条件
完全外部联接,返回左右表中所有的记录
select *
from A full join B
on 条件
3. 内联接,表自身与自己进行查询
-----------------------------------------------------------------------------
数据库安全模型
数据库3层安全模型
第一层:登录到SQLServer系统,即需要登录帐户
|
第三层:访问数据库中的表,需要数据库管理员DBA给自己授权,如添、修、删、查等权限
|
登录验证两种方式:
--SQL身份验证:适合非Windows平台的用户或Internet用户,需要帐户和密码
--Windows身份验证:适合于Windows平台用户,不需要提供密码,和Windows集成验证
1. 创建登录
Windows登录:
授权:sp_grantlogin ‘windows域名\域帐户’
撤销:sp_revokelogin ‘windows域名\域帐户’
SQL登录帐户:
添加:sp_addlogin ‘登录名’,’密码’
删除:sp_droplogin ‘登录名’
2. 创建数据库用户
sp_grantdbaccess ‘登录帐户’,’数据库用户’
3. 向数据库用户授权
授权:grant 权限 [on 表] to 数据库用户
撤销:revoke 权限 [on 表] to 数据库用户
分享到:
相关推荐
### SQL Server 转 PostgreSQL 经验总结及 PostgreSQL 特性 #### 一、SQL Server 到 PostgreSQL 的数据类型映射 在进行 SQL Server 数据库迁移至 PostgreSQL 的过程中,一个重要的步骤是确保数据类型的正确映射。...
### 优化SQL Server数据库的经验总结 #### 一、引言 在现代企业的信息化建设中,数据库作为信息系统的核心组件之一,其性能的好坏直接影响着整个系统的响应速度和用户体验。SQL Server作为一款广泛使用的数据库...
总结来说,"SQL Server基本图标"是数据库管理和开发中的视觉工具,通过这些图标,用户可以更高效地理解和操作数据库。理解和掌握这些图标对于任何SQL Server用户,无论是新手还是经验丰富的专业人员,都是至关重要的...
SQL Server 知识点总结 SQL Server 是一种关系型数据库管理系统,由 Microsoft 开发,广泛应用于企业级数据库管理。下面是 SQL Server 知识点总结,涵盖数据库结构、创建数据库、查看数据库信息、修改数据库等方面...
总结,《SQL Server宝典SQL Server语句大全》中的内容涵盖了SQL Server从基础到高级的各个方面,无论是数据库管理员还是开发人员,都能从中找到所需的SQL Server知识和实践经验。通过深入学习和实践,可以更好地利用...
#### 二、SQL Server异地备份原理与准备工作 **原理概述:** SQL Server异地备份主要依靠其内置的维护计划功能来实现。通过设置维护计划,可以定时自动执行备份任务,并将备份文件保存到远程服务器上,从而达到异地...
资源名称:SQL Server 2005 一千万条以上记录分页数据库优化经验总结 资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
### JSP连接SQL Server 2000经验总结 #### 一、背景介绍 在进行JSP课程设计的过程中,为了实现数据库操作功能,通常需要连接到后端数据库。本篇文章将详细总结如何在Tomcat 5.0环境下,使用Java Server Pages (JSP)...
MySQL数据库导入SqlServer实践经验总结
标题中提到的是“sqlserver与mysql区别”,而描述部分明确指出“MS SQL不支持limit语句”,并给出了一些替代方案,比如使用top和row_number() over()函数。下面将围绕标题和描述,结合部分内容,详细阐述SQL Server...
以下是一些关于SQL Server的经验总结,涵盖了问题解决、日期处理、数据操作、查询优化等多个方面: 1. **处理挂起的安装操作**:当安装SQL Server或Service Pack时,如果系统提示有挂起的安装操作,可以尝试进入...
在提供的压缩文件中,"SQLSERVER 2005管理与开发 优化SQL Server数据库(转载).mht"可能是关于SQL Server 2005的管理与优化的综合文章,包含了很多实践经验和技巧;"SQL优化.xlsx"可能是对SQL查询优化的实例或数据...
### MyEclipse(Java)连接SQLServer 2008 R2 的详细步骤及常见问题解决方案 #### 一、背景介绍 在进行Java应用程序开发时,经常需要与数据库进行交互。MyEclipse作为一款功能强大的集成开发环境(IDE),支持多种...
Paul Nielson凭借丰富的SQL Server使用经验,清晰地解释了SQL Server 2008中涉及的各种概念,同时在书中合理穿插了作者在多年的开发和顾问生涯中收集的现实示例和总结的最佳实践。SQL Server是一个博大的产品,《SQL...
本人通过学习经验所总结的sql server 2008 r2 安装 + JDBC配置,如有不足望大家指出。
这可以通过连接到每台计算机的WMI命名空间`\\COMPUTERNAME\root\Microsoft\SQLServer\ComputerManagement1X`(这里的1X代表SQL Server版本号,如10、11等)来实现。在该命名空间下,有`SQLServer`类,包含了关于SQL ...
- **最佳实践**: 分享作者多年从业经验总结出来的最佳实践建议,帮助读者规避常见错误并提升工作效率。 #### 结论 SQL Server 2008 Transact-SQL Recipes 不仅仅是一本理论书籍,它还提供了丰富的实践指导和实用...
总结,SQL Server 2000作为一款强大的数据库管理系统,其功能全面且强大,无论是初学者还是经验丰富的DBA,都能从中找到适合自己的工具和方法。学习并掌握SQL Server 2000,对于理解和操作数据库至关重要,也是IT...
【SQLServer数据库详解】 SQL Server是一款由微软公司开发的关系型数据库管理系统,广泛应用于企业级数据存储和管理。作为一款强大的数据库系统,SQL Server提供了丰富的功能,包括数据存储、查询、事务处理、安全...