SQL Server 数据库基础语法、数据类型
2012-04-10 16:17
441 查看
创建/删除数据库:
Ø基本数据类型
精确数字类型
近似数字类型
日期时间类型
字符串类型
Unicode字符串类型
二进制字符串类型
基础操作的语法:
--Go批处理语句用于将go之前的语句合并为为一个语句块,同时执行多个语句
--使用、切换数据库
usemaster
go
--创建、删除数据库
--示例1
if(exists(select*fromsys.databaseswherename='testHome'))
dropdatabasetestHome
go
createdatabasetestHomeon
(
name='testHome',
filename='c:\data\students.mdf'
)
logon
(
name='testHome_log',
filename='c:\data\testHome_log.ldf'
)
go
--示例2
if(exists(select*fromsys.databaseswherename='testHome'))
dropdatabasetestHome
go
createdatabasetestHomeonprimary//默认就是primary,onprimary是可省略的
(
name='testHome_data',
fileName='c:\testHome_data.mdf',
size=3MB,
maxSize=50MB,
fileGrowth=10%
)
logon
(
name='testHome_log',
fileName='c:\testHome_log.ldf',
size=1MB,
fileGrowth=1MB
)
go
Ø基本数据类型
精确数字类型
bigint | bigint数据类型,用于整数值可能超过int数据类型支持范围的情况,范围:-2^63到2^63-1,存储空间8字节 |
int | 整数数据类型,范围在-2^31到2^31-1,存储空间4字节 |
smallint | 整数,范围在-2^15到2^15-1,存储空间2字节 |
tinyint | 范围在0到255,存储空间1字节 |
bit | 可以取值为1、0或NULL的整数数据类型,每8个bit占一个字节,16bit就2个字节,24bit就3个字节 |
decimal | 带固定精度和小数位数的数值数据类型,有效值从-10^38+1到10^38-1 |
numeric | 同上 |
money | 货币或货币值的数据类型,范围在-922,337,203,685,477.5808到922,337,203,685,477.5807 |
smallmoney | 货币类型,-214,748.3648到214,748.3647 |
float | 表示浮点数值数据的大致数值数据类型。浮点数据为近似值;范围-1.79E+308至-2.23E-308、0以及2.23E-308至1.79E+308 |
real | 范围在-3.40E+38至-1.18E-38、0以及1.18E-38至3.40E+38 |
datetime | 表示某天的日期和时间的数据类型,范围在1753年1月1日到9999年12月31日 |
smalldatetime | 范围在1900年1月1日到2079年6月6日 |
char | 固定长度或可变长度的字符数据类型,范围在范围为1至8,000字节 |
text | 最大长度为2^31-1 |
varchar | 固定长度或可变长度的字符数据类型,最大存储大小是2^31-1个字节 |
nchar | 字符数据类型,长度固定,在必须在1到4,000之间 |
nvarchar | 可变长度Unicode字符数据。最大存储大小为2^31-1字节 |
ntext | 长度可变的Unicode数据,最大长度为2^30-1(1,073,741,823)个字符 |
binary | 长度为n字节的固定长度二进制数据,范围从1到8,000的值。存储大小为n字节。 |
varbinary | 可变长度二进制数据。n可以取从1到8,000的值。最大的存储大小为2^31-1字节 |
image | 长度可变的二进制数据,从0到2^31-1(2,147,483,647)个字节 |
--判断某个表或对象是否存在
if(exists(select*fromsys.objectswherename='classes'))
print'存在';
go
if(exists(select*fromsys.objectswhereobject_id=object_id('student')))
print'存在';
go
if(object_id('student','U')isnotnull)
print'存在';
go
--判断该列名是否存在,如果存在就删除(删除列需要确保这个列中没有数据)
if(exists(select*fromsys.columnswhereobject_id=object_id('student')andname='idCard'))
altertablestudentdropcolumnidCard
go
if(exists(select*frominformation_schema.columnswheretable_name='student'andcolumn_name='tel'))
altertablestudentdropcolumntel
go
--判断是否存在当前table
if(exists(select*fromsys.objectswherename='classes'))
droptableclasses
go
createtableclasses(
idintprimarykeyidentity(1,2),
namevarchar(22)notnull,
createDatedatetimedefaultgetDate()
)
go
if(exists(select*fromsys.objectswhereobject_id=object_id('student')))
droptablestudent
go
--创建table
createtablestudent(
idintidentity(1,1)notnull,
namevarchar(20),
ageint,
sexbit,
cidint
)
go
--添加字段
altertablestudentaddaddressvarchar(50)notnull;
--修改字段
altertablestudentaltercolumnaddressvarchar(20);
--删除字段
altertablestudentdropcolumnnumber;
--添加多个字段
altertablestudent
addaddressvarchar(22),
telvarchar(11),
idCardvarchar(3);
--添加新列、约束
altertablestudentaddnumbervarchar(20)nullconstraintno_ukunique;
--增加主键
altertablestudentaddconstraintpk_idprimarykey(id);
--添加外键约束
altertablestudentaddconstraintfk_cidforeignkey(cid)referencesclasses(id);
--添加唯一约束
altertablestudentaddconstraintname_ukunique(name);
--添加check约束
altertablestudentwithnocheckaddconstraintcheck_agecheck(age>1);
altertablestudentaddconstraintck_agecheck(age>=15andage<=50);
--添加默认约束
altertablestudentaddconstraintsex_defdefault1forsex;
--添加一个包含默认值可以为空的列
altertablestudentaddcreateDatesmalldatetimenull
constraintcreateDate_defdefaultgetDate()withvalues;
--多个列、约束一起创建
altertablestudentadd
/*添加id主键、自增*/
idintidentityconstraintidprimarykey,
/*添加外键约束*/
numberintnullconstraintuNumberreferencesclasses(number),
/*默认约束*/
createDatedecimal(3,3)constraintcreateDatedefault2010-6-1
go
--删除约束
altertablestudentdropconstraintno_uk;
--多条记录同时插入
insertintostudent
select'jack',23,1,5union
select'tom',24,0,3union
select'wendy',25,1,3union
select'tony',26,0,5;
--备份、复制student表到stu
select*intostufromstudent;
select*intostu1from(select*fromstu)t;
--查询student相关信息
execsp_helpstudent;
execsp_helpclasses;
相关文章推荐
- 黑马程序员--SQL Server基础<一>新建数据库、主键、数据类型
- JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)
- php基础语法(数据类型、运算符)
- 将SQL Server 2000数据库Image类型图片数据显示在页面上
- Java入门基础之Java的基本语法与Java所支持的数据类型
- SQL Server 2005的XmL数据类型之基础篇
- 黑马程序员 Java基础语法之变量与数据类型
- asp.net查询数据库时提示使用的sql server版本不支持数据类型date
- 马士兵J2SE-第二章-J2SE基础语法-标识符、关键字、数据类型转换
- 2 Java基础语法(关键字,标识符,注释,常量,进制转换,变量,数据类型,数据类型转换)
- 黑马程序员--------------java基础语法(—)------常量,变量,数据类型和运算符
- JAVA语法基础之变量和基本数据类型
- mysql(4):基础,数据库的数据类型
- java语法基础--关键字,数据类型
- Java基础语法(一)---数据、数值类型、运算符、程序流程控制语句和循环结构
- SQL server 创建与删除数据库,数据表,约束的创建与删除语法
- SQL Server 2008数据库表中修改字段的数据类型后,不能保存
- 数据库中常用数据类型的取值范围介绍(以mysql、SQL Server为准)
- 在SQL Server中使用自定义数据类型来规范数据库字段变量
- Python语法基础(一):变量和数据类型