您的位置:首页 > 数据库

SQL基础知识

2009-09-09 15:56 232 查看

使用
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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: