SQL Server 数据类型 (http://www.runoob.com/sql/sql-datatypes.html)
String 类型:
数据类型 描述 存储
char(n) 固定长度的字符串。最多 8,000 个字符。 Defined width
varchar(n) 可变长度的字符串。最多 8,000 个字符。 2 bytes + number of chars
varchar(max) 可变长度的字符串。最多 1,073,741,824 个字符。 2 bytes + number of chars
text 可变长度的字符串。最多 2GB 文本数据。 4 bytes + number of chars
nchar 固定长度的 Unicode 字符串。最多 4,000 个字符。 Defined width x 2
nvarchar 可变长度的 Unicode 字符串。最多 4,000 个字符。
nvarchar(max) 可变长度的 Unicode 字符串。最多 536,870,912 个字符。
ntext 可变长度的 Unicode 字符串。最多 2GB 文本数据。
bit 允许 0、1 或 NULL
binary(n) 固定长度的二进制字符串。最多 8,000 字节。
varbinary 可变长度的二进制字符串。最多 8,000 字节。
varbinary(max) 可变长度的二进制字符串。最多 2GB。
image 可变长度的二进制字符串。最多 2GB。
Number 类型:
数据类型 描述 存储
tinyint 允许从 0 到 255 的所有数字。 1 字节
smallint 允许介于 -32,768 与 32,767 的所有数字。 2 字节
int (integer)允许介于 -2,147,483,648 与 2,147,483,647 的所有数字。 4 字节
bigint 允许介于 -9,223,372,036,854,775,808 与 9,223,372,036,854,775,807 之间的所有数字。 8 字节
decimal(p,s) 固定精度和比例的数字。
允许从 -10^38 +1 到 10^38 -1 之间的数字。
p 参数指示可以存储的最大位数(小数点左侧和右侧)。p 必须是 1 到 38 之间的值。默认是 18。
s 参数指示小数点右侧存储的最大位数。s 必须是 0 到 p 之间的值。默认是 0。
5-17 字节
numeric(p,s) 固定精度和比例的数字。
允许从 -10^38 +1 到 10^38 -1 之间的数字。
p 参数指示可以存储的最大位数(小数点左侧和右侧)。p 必须是 1 到 38 之间的值。默认是 18。
s 参数指示小数点右侧存储的最大位数。s 必须是 0 到 p 之间的值。默认是 0。
5-17 字节
smallmoney 介于 -214,748.3648 与 214,748.3647 之间的货币数据。 4 字节
money 介于 -922,337,203,685,477.5808 与 922,337,203,685,477.5807 之间的货币数据。 8 字节
float(n) 从 -1.79E + 308 到 1.79E + 308 的浮动精度数字数据。
n 参数指示该字段保存 4 字节还是 8 字节。float(24) 保存 4 字节,而 float(53) 保存 8 字节。n 的默认值是 53。
4 或 8 字节
real 从 -3.40E + 38 到 3.40E + 38 的浮动精度数字数据。 4 字节
1.行注释 --
2.块注释 /* */
3.删除数据库 drop database school
4.创建数据库和日志并保存
CREATE DATABASE school
ON
( NAME = school_dat,
FILENAME = 'd:\school1.mdf',
SIZE = 3,
MAXSIZE = 4,
FILEGROWTH = 1 )
LOG ON
( NAME =school_log,
FILENAME = 'd:\school1.ldf',
SIZE = 2MB,
MAXSIZE = 3MB,
FILEGROWTH = 1MB )
5.go
GO 表示一批 T-SQL 语句结束,GO 之后的 T-SQL 语句属于另一个批处理的范围
6.一些最重要的 SQL 命令
SELECT - 从数据库中提取数据
UPDATE - 更新数据库中的数据
DELETE - 从数据库中删除数据
INSERT INTO - 向数据库中插入新数据
CREATE DATABASE - 创建新数据库
ALTER DATABASE - 修改数据库
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引
7.--创建索引
create index ix_student_sname ON student(sname)
本例会创建一个简单的索引,名为 ix_student_sname 在 student表的 (sname)列:
降序:create index ix_student_sname ON student(sname DESC)
希望索引不止一个列,您可以在括号中列出这些列的名称,用逗号隔开:
create index ix_student_sname ON student(sname,sage)
8.--创建表
create table Student (
Sno ud_sno ,
Sname char(10) not null unique ,
Ssex char(2) check (ssex='男' or ssex='女') ,
Sage smallint check(sage>16) ,
Sdept char(10) not null default 'JSJ' ,
primary key (sno) //主键
)
9.--设置键(在create table语句内)
主键: primary key (cno)
在已经设置该主键的表里面设置与其他表相关联的外键
外键:
primary key(Cno,Sno),
foreign key (Sno) references student(Sno) , //关联其他表中主键的外键
foreign key (Cno) references Course(Cno) ,
10.--添加数据到表
insert into student (sno,sname,ssex,sage,sdept) values('003','tony','男',20,'sx')
11.--设置默认值
Sdept char(10) not null default 'JSJ'设置该字段不为空且默认值为'JSJ'
12.如何在sql server里面写语句(其实至今没有弄明白)
首先手动新建数据库,然后点击新建查询,就可以到一个可以写sql 语句的地方
13.在数据表中增加删除某列
alter table table_name add reserve char(50)
alter table table_name drop COLUMN reserve
14.查询
select branch_name from table_name (默认不去重)
select distinct branch_name from table_name (去重)
select all branch_name from table_name
(1)将查询结果某一列计算后作为新的一列显示出来
select loan_number, branch_name, amount*10 as lal
from table_name
(2)查询条件限制
select loan_number
from loan
where branch_name ='Perryridge' and amount <1200
之间:where amount between 900 and 1300
(3)没有插入数据查询(is null)
select Sno from Selected_Course where Cno='7' and Grade is null
(4)and && or
where Cno='7' and (Grade >90 or Grade <60)
(5)like
A:%包含零个或多个字符的任意字符串:
1、LIKE'Mc%' 将搜索以字母 Mc 开头的所有字符串(如
McBadden)。
2、LIKE'%inger' 将搜索以字母 inger 结尾的所有字符串(如
Ringer、Stringer)。
3、LIKE'%en%' 将搜索在任何位置包含字母 en 的所有字符串(如
Bennet、Green、McBadden)。
B:_(下划线)任何单个字符:LIKE'_heryl'
将搜索以字母 heryl 结尾的所有六个字母的名称(如 Cheryl、Sheryl)。
C:[]指定范围([a-f])或集合([abcdef])中的任何单个字符:
1,LIKE'[CK]ars[eo]n'
将搜索下列字符串:Carsen、Karsen、Carson 和 Karson(如 Carson)。
2、LIKE'[M-Z]inger' 将搜索以字符串
inger 结尾、以从 M 到 Z 的任何单个字母开头的所有名称(如 Ringer)。
D:[^]不属于指定范围([a-f])或集合([abcdef])的任何单个字符:LIKE'M[^c]%'
将搜索以字母 M 开头,并且第二个字母不是 c 的所有名称(如MacFeather)。