SQL Server 2005系列教学(3) 创建数据表


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

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

编号
姓名
性别
年龄
籍贯
电话号码
是否党员
0001
贾宁
27
黑龙江
131412315678
0002
霍玉娟
25
天津
131456781234
0003
李逍遥
40
杭州
13845678914
0004
赵灵儿
38
北京
13945678912
 
 
 
 
 
 
 
 
 
每一列称为一个字段,字段的标题称为字段名
每一行称为一条记录!
如第一条记录的编号字段值为“0001”,姓名字段值为“贾宁”
是否为空:有些可以为空,但有些是不可以为空的,空了的话那么这张表就没有意义了。如编号,姓名,等等。
我们再研究一个问题就是这么字段中哪一个能唯一的确定一个记录。也就是说字段值不会有重复的。这个字段就称为“主键”。“编号”
主键:该字段能唯一的确定一条记录。
掌握了这些我们就可以建表了。建表的顺序是先建库的结构也就是字段再输入记录!
常用数据类型
数据类型:指的是你为每个字段指定某种类型,那么在以后进行录入的时候就只能是该类型或者是相兼容的类型,比如年龄,应该是数字,但如果你写一个字母进去就不行。
 
 
数值型
整数类型和小数类型
四种整数数据类型,只是表示数的范围不同
  1bigint 大整型,从-263次方到263次方减1的所有整型数据(所有数字)。存储大小为8个字节。
     2INT INTEGERINT (或INTEGER)数据类型存储从-231次方 -2 147 483 648 231次方-1 147 483647 之间的所有正负整数。每个INT 类型的数据按个字节存储,其中位表示整数值的正负号,其它31 位表示整数值的长度和大小。
  3SMALLINT  SMALLINT 数据类型存储从-215次方( -32 768 215次方-1 32 767 )之间的所有正负整数。每个SMALLINT 类型的数据占用个字节的存储空间,其中位表示整数值的正负号,其它15 位表示整数值的长度和大小。
    4TINYINT    TINYINT数据类型存储从255 之间的所有正整数。每个TINYINT类型的数据占用个字节的存储空间。
如果你不能确定具体使用哪种类型你就使用INT型,但你在付出的代价就是多浪费了一些磁盘空间。
 
 
小数类型:
Numeric  -1038+11038次方-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个字符
 
     2VARCHAR可变长度字符型   若输入的数据过长,将会截掉其超出部分。若输入数据的字符数小于,则系统不会在其后添加空格。他也能达到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
 
3Nchar(n) 包含n个字符的固定长度的unicode字符数据,存储大小为两倍的两倍
4.  nvarchar(n) 包含n个字符的可变长度unicode字符数据,字节的存储大小是所输入字符个数的两倍。
 
 
逻辑数据类型
BIT BIT数据类型占用个字节的存储空间,其值为。如果输入以外的值,将被视为1 BIT 类型不能定义为NULL  或者是  true 为真,即为1  false为假,即为0
 
日期型
DATETIME   一个 DATETIME型的字段可以存储的日期范围是从1753年1月1日第一毫秒到99991231最后一毫秒。
 SMALLDATETIME   一个SMALLDATETIME型的字段能够存储从1900年1月1日到2079年6月6日的日期,它只能精确到分钟。 
DATETIME占用8个字节,而SMALLDATETIME只占4个字节。
 
:插入记录时,应使用   
 
货币型:货币数据类型用于存储货币值。在使用货币数据类型时,应在数据前加上货币符号,系统才能辨识其为哪国的货币,如果不加货币符号,则默认为
MONEY 介于 -2^632^63-1之间,
SMALLMONEY 介于 -2^312^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,如需转载请自行联系原作者

 
 
 
上一篇:ECS的购买须知


下一篇:ECS宝塔