博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL Server 2005系列教学(3) 创建数据表
阅读量:5891 次
发布时间:2019-06-19

本文共 3542 字,大约阅读时间需要 11 分钟。

现在我们已经知道了如何利用图形界面创建数据库了,但数据库仅仅是一个存放数据的仓库,我们还没有把具体的数据存放进去,是不是?我们把表格中的数据放进去了吗?没有。

那么我们下面就要把表格中的数据放进去,就是建表。建表之前我们需要掌握几个术语。
 
 
数据表是数据库是最重要的对象,
数据库中的所有数据都是存放在数据表中的.
数据表和平时我们所说的表格类似.
我们先来看一个我们平时的表格.
准备工作:
确定表名:
确定表的属性:
 
 
字段名
记录
 

编号
姓名
性别
年龄
籍贯
电话号码
是否党员
0001
贾宁
27
黑龙江
131412315678
0002
霍玉娟
25
天津
131456781234
0003
李逍遥
40
杭州
13845678914
0004
赵灵儿
38
北京
13945678912
 
 
 
 
 
 
 
 
 
每一列称为一个字段,字段的标题称为字段名
每一行称为一条记录!
如第一条记录的编号字段值为“0001
”,姓名字段值为“贾宁”
是否为空:有些可以为空,但有些是不可以为空的,空了的话那么这张表就没有意义了。如编号,姓名,等等。
我们再研究一个问题就是这么字段中哪一个能唯一的确定一个记录。也就是说字段值不会有重复的。这个字段就称为“主键”。“编号”
主键:该字段能唯一的确定一条记录。
掌握了这些我们就可以建表了。建表的顺序是先建库的结构也就是字段再输入记录!
常用数据类型
数据类型:指的是你为每个字段指定某种类型,那么在以后进行录入的时候就只能是该类型或者是相兼容的类型,比如年龄,应该是数字,但如果你写一个字母进去就不行。
 
 
数值型
整数类型和小数类型
四种整数数据类型,只是表示数的范围不同
  1
bigint 
大整型,从-2
63
次方到2
63
次方减1
的所有整型数据(
所有数字)
。存储大小为8
个字节。
     2
INT 
INTEGER
INT 
(或INTEGER
)数据类型存储从-2
31
次方 
-2 
147 
483 
648
 
2
31
次方-1 
147 
483
647
 
之间的所有正负整数。每个INT 
类型的数据按
个字节存储,其中
位表示整数值的正负号,其它31 
位表示整数值的长度和大小。
  3
SMALLINT  SMALLINT 
数据类型存储从-2
15
次方( -32
 768
 
2
15
次方-1
 32 
767 
)之间的所有正负整数。每个SMALLINT 
类型的数据占用
个字节的存储空间,其中
位表示整数值的正负号,其它15 
位表示整数值的长度和大小。
    4
TINYINT    TINYINT
数据类型存储从
255 
之间的所有正整数。每个TINYINT
类型的数据占用
个字节的存储空间。
如果你不能确定具体使用哪种类型你就使用
INT
型,但你在付出的代价就是多浪费了一些磁盘空间。
 
 
小数类型:
Numeric 
 -10
38+1
10
38
次方-1
之间的小数  
存储的长度和精度有关
       1-9 
 5
字节   10 -19  9
字节   20-18
 13
字节    29 – 38
  17
字节
          
总长度,
小数位   
对小数位会四舍五入
Float  -1.79E+308  
  1.79e+308
Float 
有效值
参见联机丛书
 
 
字符类
  
用到最多的。
 
四种
           1 CHAR(n)  
固定长度字符型  
若输入数据的字符个数小于n
,则系统自动在其后添加空格来填满设定好的空间。若输入的数据过长,将会截掉其超出部分。固定给你,你不用也给你。
最大长度
8000
个字符
 
     2
VARCHAR
可变长度字符型   
若输入的数据过长,将会截掉其超出部分。若输入数据的字符数小于
,则系统不会在其后添加空格。
他也能达到
8000
个字符的长度
 
declare @A CHAR(5),@B VARCHAR(5)
SET @A='AA'
SET @B='BB'
PRINT @B+@A
 
declare @A CHAR(5),@B VARCHAR(5)
SET @A='AAAAAA'
SET @B='BBBBBB'
PRINT @B+@A
 
3
Nchar(n) 
包含n
个字符的固定长度的unicode
字符数据,存储大小为两倍的两倍
4.  nvarchar(n) 
包含n
个字符的可变长度unicode
字符数据,字节的存储大小是所输入字符个数的两倍。
 
 
逻辑数据类型
BIT
 BIT
数据类型占用
个字节的存储空间,其值为
。如果输入
以外的值,将被视为1
 BIT 
类型不能定义为NULL 
 
或者是  true 
为真,
即为1  false
为假,
即为0
 
日期型
DATETIME   
一个 DATETIME
型的字段可以存储的日期范围是从1753年1月1日第一毫秒到9999
12
31
最后一毫秒。
 SMALLDATETIME   
一个SMALLDATETIME
型的字段能够存储从1900
年1月1日到2079年6月6日的日期,它只能精确到分钟。 
DATETIME
占用
8
个字节,而
SMALLDATETIME
只占
4
个字节。
 
:
插入记录时,
应使用 ’  ’
 
货币型:
货币数据类型用于存储货币值。在使用货币数据类型时,应在数据前加上货币符号,系统才能辨识其为哪国的货币,如果不加货币符号,则默认为
MONEY 
介于 -2^63
2^63-1
之间,
SMALLMONEY 
介于 -2^31
2^31-1
 
图形界面建表:  
  
并插入记录测试
 
 
命名方式:
 
 
建表;
Create table  
表名
(字段名  
字段类型(长度)是否为空not null 
是否为主键primary key
字段名  
字段类型 
(长度) 
是否为空
………
具体如
create table student
(
编号 char(4) not null primary key,
 
姓名 varchar(10) not null,
 
性别 char(2) ,
 
年龄 tinyint,
 
籍贯 varchar(10),
 
手机号码 varchar(15),
 
部门 varchar(20)
 
是否党员 bit)
系统默认长度的数据类型则不能再指定长度。注意;正确选择当前数据库
 
那如果发现表的结构不合理怎么办?
 
修改表
[1.1]
、添加列
Alter table 
表名称 add 
列定义 | 
计算列 | 
表约束[,...]
[1.2]
、编辑列
alter table 
表名称 alter column 
列定义
[1.3]
、删除列
alter table 
表名称 drop column 
列名称
 
 
 
如果有多个文件组的话可以将表放在指定的文件组中
create table yuangong (
编号 char(4),
姓名 varchar(8)) on filegroup02
 
创建一个计算列的表
create table 
员工表
(
姓名 nvarchar(20) not null,
性别 bit,
年龄 tinyint,
籍贯 nvarchar(20),
出生日期 datetime,
联系电话 varchar(20),
基本工资 money,
奖金     money,
交通补助 money,
住房补助 money,
应缴税款 money,
最后所得 as 
基本工资+
奖金+
交通补助+
住房补助-
应缴税款
)
 
创建一个编号自增的表
create table yuangong (
编号 int identity primary key,
姓名 varchar(8)) on filegroup02 --------
主键约束
 
SET identity_insert 
表名
 ON
(系统默认:
off
)同时只能对一个表进行操作
比如:
  SET identity_insert STUDENT ON
  Insert into student(stu_id) values(100)
 
 
create table 
职务表
(
职务编号 int Not Null Identity,
职务名称 nvarchar(30) not null
)
 
创建数据库的时,如果数据库已经存在,为了美观不能让系统报错,让系统输出一个提示即可!加入一个 if not exists  …………………………..
 
 
 
 
 本文转自 dufei 51CTO博客,原文链接:http://blog.51cto.com/dufei/80748,如需转载请自行联系原作者
 
 
 
你可能感兴趣的文章
Loj #3056. 「HNOI2019」多边形
查看>>
【3】数据库的表设计和初始化
查看>>
Django rest framework的基本用法
查看>>
正则表达式匹配非需要匹配的字符串(标题自己都绕晕了)
查看>>
沙盒目录介绍
查看>>
260. Single Number III
查看>>
c#基础--字符串的处理_string类
查看>>
crossplatform---Nodejs in Visual Studio Code 10.IISNode
查看>>
CentOS 配置 ROR 环境
查看>>
父子类初始化时,子类的成员变量需要等父类初始化完后再进行本类初始化赋值。...
查看>>
《C语言》-(流程控制:顺序结构、选择结构、循环结构)
查看>>
怎样让pl sql developer 界面视图复位
查看>>
浅谈js中各种循环
查看>>
HTTP学习笔记
查看>>
LINQ表达式总结笔记
查看>>
Python编程基础练习题
查看>>
阿里 EasyExcel 使用及避坑
查看>>
Swift3.0P1 语法指南——基础
查看>>
CentOS下修复grub引导程序
查看>>
Maven依赖范围及传递
查看>>