使用SQL Server 数据库基础

来源:互联网 发布:09年总决赛科比数据 编辑:程序博客网 时间:2024/05/22 07:49

 使用SQL Server 数据库基础
1.      数据库的帮助

l       数据类型

分类
 备注和说明
 数据类型
 说明
 
二进制数据类型
 用来存储非字符和文本的数据
 binary
 固定长度的二进制数据
 
Varbinary
 可变长度的二进制数据
 
image
 用来存储图像
 
文本数据类型
 字符数据包括任意字母,符号或数字字符的组合
 char
 固定长度的非Unicode字符数据,最大长度为800个字符
 
varchar
 可变长度的非Unicode数据
 
nchar
 固定长度的Unicode数据
 
nvarchar
 可变长度的Unicode数据
 
text
 存储长文本信息
 
ntext
 存储可变长度的长文本
 
数字数据
 该数据仅包括数字,包括正数,负数以及分数
 Int

Smallint

Tinyint

bigint
 整数
 
Float

real
 浮点数
 
货币数据
 货币数据类型用于十进制货币值,并且精确到小数点后面4位数字
 Money
 
 
Bit数据类型
 表示是、否的数据,只有两种选择;在SQL Server中用1和0表示,一般1表示是,0表示否
 Bit
 存储布尔数据类型
 
日期和时间
 日期和时间在单引号内分别输入
 datetime
 日期和时间
 

 

 

2.      数据库的管理

l       通配符

通配符
 解释
 实例
 
‘_’
 一个字符
 A LIKE ‘C_’
 
%
 任意长度的字符串
 B LIKE ‘CO_%’
 
[]
 括号内制定范围内的一个字符
 C LIKE ‘9W0[1-2]’
 
[^]
 不再括号中所制定范围内的一个字符
 D LIKE ‘9W0[^1-2]’
 

 

l       使用T-SQL语句对数据库管理

类型
 语法
 
新建库
 Use master(注: 此功能用来控制进入master数据库)

Go(注: 分割语句)

create database 表名

on

(

    name = '数据库名',(数据库名称)

    filename = 'D:/表名.mdf',(数据库路径)

    size = 10mb,(数据库初始化大小)

    maxsize = 100mb,(数据库最大大小)

    filegrowth = 10%(数据库增长速度)

)
 
新建表
 create table UserInfo

(

    Id int identity(1,1) not null, (标识种子为1,增长一次+1)

    NickName char(10) not null,

)
 
添加约束
 约束包含主键约束, 外键约束, 默认约束, 检查约束, 唯一约束

添加约束以: (alter table 表名 add constraint 约束名) 开头, 后面追加

主键约束: primary key (id);

外键约束: foreign key(从表列) references bool(主表列);

默认约束: unique (列名);

检查约束: check(列名 like ‘1_’);结合通配符使用

唯一约束: unique(列名);

 

注意: 约束名一定要符合规范

例如添加默认约束: UK_约束名. 以此类推
 
事务
 begin tran

declare @errorSum int

set @errorSum=0

set @errorSum=@errorSum+@@error

if (@errorSum > 0) rollback tran

else commit tran
 

 

l       使用T-SQL语句对数据库数据管理

类型
 语法
 说明
 
插入数据
 INSERT  [INTO]  表名(列名)  VALUES  (列名)
 插入单行数据
 
INSERT 表名(列名)

SELECT 列值 UNION

SELECT 列值
 插入多行数据
 
修改数据
 UPDATE  表名 SET 列名 = 更新值 

WHERE 更新条件
 一般情况下必须写更新条件
 
删除数据
 DELETE  FROM 表名

WHERE 删除条件
 删除单行数据
 
TRUNCATE  TABLE 表名
 删除整个表中的数据
 
查询数据
 SELECT 列名 FROM 表名

WHERE 查询条件表达式 

ORDER BY 排序的列名 [注: ASC或DESC(降序)]
 排序查询
 
SELECT 列名 AS 命名

FROM 表名
 在查询中使用列名
 
SELECT 列名

FROM 表名

WHERE 查询条件表达式
 查询空行
 
SELECT 新命名 = 列名, ‘值命名’  AS 新列命名

FROM 表名
 在查询中使用常量列
 
SELECT TOP 限制的行数(填写数字) 列名

FROM 表名

WHERE查询条件表达式
 返回限制的行数
 
SELECT *

FROM 表名

WHERE查询条件表达式 LIKE 'ACCP%'
 使用LIKE模糊查询
 
SELECT *

FROM 表名

WHERE 表名 BETWEEN 条件一 AND 条件二(注: NOT)
 在某个范围内进行查询
 
SELECT * FROM 表名

WHERE  列名 IN (列值1, 列值2)(注:Not)
 使用IN在列举值内进行查询
 
SQL SERVER中使用的聚合函数
 
SUM – 总和

Avg – 平均值

MAS(最大值) 和 Min(最小值)

COUNT(非空值的计数)
 WHERE

*

GROUP BY

*

HAVING

(使用WHERE,GROUP BY,HAVING的优先级)
 在查询中使用的聚合函数
 
SELECT COUNT(列名),列名

FROM 表名

GROUP BY 列名
 分组查询(在分组查询的同时必须使用聚合函数)
 
HAVING 查询条件表达式

(举例: COUNT(Uclass) > 1)
 使用Having子句进行分组筛选
 
内连接查询
 
SELECT 表名1.列名,表名2.列名

FROM 表名1

INNER JOIN 表名2 ON (条件表达式)
 注: INNER JOIN *** ON 是内连接查询用的关键字,其中表名可以简化,但是前提在 FROM 中必须指示简化的表名是来源于哪个表

(举例:S.列名 FROM 表名 AS 列名或 INNER JOIN 表名)
 
外连接查询
 
SELECT 表名1.列名,表名2.列名

FROM 表名1

LEFT OUTER JOIN 表名2 ON 条件表达式
 左外连接,

与内连接不同的是,如果附表中数据不能满足主表则以NULL填充……
 
SELECT 表名1.列名,表名2.列名

FROM 表名1

RIGHT OUTER JOIN 表名2 ON 条件表达式
 左外连接(同上)
 
    

l       在查询中使用的函数

函数类型
 函数名
 描述
 举例
 


 CHARINDEX
 用来寻找一个指定的字符串在另一个字符串中的起始位置
 SELECT CHARINDEX

('ACCP','MYACCPCOURSE',1)

返回: 3
 
LEN
 返回传递给他的字符串长度
 SELECT LEN

('MYACCPCOURSE')

返回:12
 
UPPER
 把传递给他的字符串转换为大写
 SELECT UPPER

('system') 返回: SYSTEM
 
LTRIM
 清除字符左边的空格
 
 
RTRIM
 清除字符右边的空格
 
 
RIGHT
 从字符串右边返回指定数目的字符串
 SELECT RIGHT

('北大青鸟',2)

返回: 青鸟
 
 
 替换一个字符串中的字符
 
 
STUFF
 在一个字符串中,删除指定长度的字符,并在该位置插入一个新的字符串
 SELECT STUFF

('谢霆锋的老婆是谁',8,8,'张柏芝'

) 返回: 谢霆锋的老婆是张柏芝
 


 GETDATE
 取得当前的系统日期
 SELECT GETDATE()

返回: 今天的日期
 
DATEADD
 将指定的数值添加到指定的日期部分后的日期
 SELECT DATEADD(dd,4,'01/01/2007')

返回: 2007-01-05 00:00:00.000
 
DATEDIFF
 两个日期之间的指定日期部分的区别
 SELECT DATEDIFF(dd,'01/01/2007',

'01/04/2007') 返回: 3
 
DATENAME
 日期中指定日期部分的字符串形式(dd,mm,dw,yy)
 SELECT DATENAME(dw,'01/05/2009')

返回: 星期一
 
DATEPART
 日期中指定日期部分的整数形式
 SELECT DATEPART(YY,'01/05/2009')

返回: 2009
 


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/t6786780/archive/2009/09/06/4525652.aspx