您的位置:首页 > 数据库

SQL Server中的数据类型、数据库和数据表的创建

2018-01-05 20:41 337 查看

一、 SQL Server数据库数据类型

==字符串(string)类型==

数据类型描述
char(n)固定长度的字符串。最多8000个字符
varchar(n)可变长度的字符串。最多8000个字符
varchar(max)可变长度的字符串。最多1,073,741,824个字符
text可变长度的字符串。最多2GB文本数据
nchar()固定长度的Unicode字符串。最多4000个字符
nvarchar()可变长度的Unicode字符串。最多4000个字符
nvarchar(max)可变长度的Unicode字符串。最多536,870,912个字符
ntext()可变长度的Unicode字符串。最多2GB文本数据
bit允许0,1或NULL
binary(n)固定长度的二进制字符串。最多8000字节
varbinary(n)可变长度的二进制字符串。最多8000字节
varbinary(max)可变长度的二进制字符串。最多2GB
image可变长度的二进制字符串。最多2GB
==数值(Number)类型==

数据类型描述
int允许介于-2,147,483,648至2,147,483,647之间的数字
tinyint允许介于0至225之间的数字
smallint允许介于-32768至32767之间的数字
bigint允许介于-9,223,372,036,854,775,808与-9,223,372,036,854,775,807之间的数字
decimal(p,s)固定精度和比例的数字。p表示可以存储的最大位数,取值于1-38之间,默认是18;s表示小数位数,取值0-p之间,默认是0
numeric(p,s)同 numeric(p,s)
samllmoney介于-214,748.3648与-214,748.3647之间的货币数据
money介于-922,337,203,685,477.5808与-922,337,203,685,477.5807之间的的货币数据
float(n)浮动精度的数字。float(24)表示保存4字节,float(53)表示保存8字节。默认n为53
real从-3.40E+38到3.40E+38的浮动精度数字
==日期(Date)类型==

数据类型描述
date仅日期。从0001年1月1日到9999年12月31日
time仅时间。精度为100纳秒
datetime日期和时间。从1753年1月1日到9999年12月31日,精度为3.33毫秒
datetime2日期和时间。从1753年1月1日到9999年12月31日,精度为100纳秒
smalldatetime日期和时间。从1900年1月1日到2079年12月31日,精度为1分钟
datetimeoffset与datetime2相同,外加时区偏移
timestamp存储唯一的数字,每当创建或修改某行时,该数字会更新。timestamp基于内部时钟,不对应于真实时间。每个表只能有一个timestamp变量
==其他数据类型==

数据类型描述
sql_variant存储最多8000字节不同类型数据,除了text,ntext以及timestamp
uniqueidentifier存储全局唯一标识符(GUID)
xml存储XML格式化数据,最多2GB
cursor存储对用于数据库操作的指针的引用
table存储结果集,共稍后处理

二、SQL和数据库数据表的创建

SQL,指数据化查询语言,全称是Structured Query Language,是存取数据以及查询、更新和管理关系数据库的标准语言。

一些重要的SQL命令

CREATE DATABASE -创建新数据库

CREATE TABLE -创建新表

SELECT -从数据库中提取数据

UPDATE - 更新数据库中的数据

DELETE -从数据库中删除数据

INSERT INTO -向数据库中插入数据

ALTER TABLE -变更数据表

DROP TABLE -删除表

CREATE INDEX - 创建索引

DROP INDEX - 删除索引

CREATE VIEW - 创建视图

DROP VIEW -删除视图

==数据库的创建、修改和删除==

创建数据库

语法: CREATE DATABASE <数据库名>

SQL标识符不区分大小写,但一般建议大写

实例 :

CREATE DATABASE teaching;


修改数据库名称

ALTER DATABASE teaching MODIFY NAME=teaching1;


删除数据库

DROP DATABASE teaching1;


==创建数据表==

语法:

CREATE TABLE 表名

(

列名1 数据类型 [列约束1],

列名2 数据类型 [列约束2],

[,…n],

[表约束]

)

[ ]表示里面的内容是可选的,[,…n]表示前面的项可重复多次

所有内容可以写为一行,将不同意义的内容分多行写增加其可读性

实例:

--创建带有主键约束和其他约束的数据表
CREATE TABLE Student
(
sclass varchar(10) NOT NULL,
snumb varchar(10) PRIMARY KEY,
sname varchar(10) NOT NULL,
segender varchar(4) DEFAULT '男' CONSTRAINT consgender CHECK (sgender IN('男','女'))
sbirthday date,
sage int CONSTRAINT consage CHECK (sage>=0 AND sage<=150)
);


注:

1. NOT NULL -非空约束

2. PRIMARY KEY -主键约束,设置该字段为主键

3. 键/码是指数据库中能唯一标识一条记录的属性或属性集,分为主键外键。一个表可以有多个键,但只能有一个主键,主键的取值不能重复,也不能为空外键:在本表中不是主键,但在另一个表中是主键;外键的取值必须是另一表中对那个主键的取值之一

4. DEFAULT -设置默认值

5. CONSTAINT 约束名 CHECK (条件) -设置列约束,

--创建带有组合主键和外键的数据表
CREATE TABLE Study
(
snumb varchar(20),
cnumb varchar(10),
score decimal(5,2),
PRIMARY KEY (snumb,cnumb),
FOREIGN KEY (snumb) REFERENCES student(snumb),
FOREIGN KEY (cnumb) REFERENCES course(cnumb)
);


注:

1. 创建组合主键,写在所有字段后面,PRIMARY KEY (字段名)

2. 创建外键:FOREIGN KEY (外键字段名) REFERENCES 对应表名(对应表主键名)

==向数据表中插入数据==

INSERT INTO 表名 (字段名表) VALUES (值列表)

字段名表:用逗号隔开的字段名或表达式

<值列表>的顺序和类型要和前面的<字段名表>对应,逗号分隔

--在Student表中插入数据
INSERT INTO Student
VALUES('电气','2016006001','王涛','男','1997-2-1',21);
INSERT INTO Student (snumb,sname,sclass)
VALUES ('2016006002','田园','电气');


==简单查询数据表中的数据==

--查询Student表中的所有字段
SELECT * FROM Student


==从数据库中批量导入导出数据==

在SQL SERVER数据库引擎中,选中数据库,鼠标右键——任务(task)——导入(导出数据),按照向导可批量导入导出数据

参考资料:

SQL 用于各种数据库的数据类型

SQL Server数据库技术(Coursera)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐