SQLServer学习之表的操作
关系数据库通常包含多个表。数据库实际上是表的集合,数据库的数据或者信息都是存储在表中的。表是对数据进行存储和操作的一种逻辑结构,每一个表都代表一个对用户意义的对象。
例如在前面附加的数据库中,就含有emp
,dept
等表格
数据类型
在创建表之前,或者说在我们使用数据库之前,必须先了解有关数据类型的定义,就如我们在学编程的时候,必须先了解如何定义变量一样。
sqlserver中定义了很多的数据类型可供使用。详细情况请查询相关资料,这里只列出一些常见的数据类型,大概十几种,分为数值型,字符型,日期型和二进制类型
数值类型数据源:
int
:整形float
:浮点型decimal
:精确型,需要注意的是,在SQLserver中没有double类型
字符类型数据:
char
:定长的数据---char(10),保存10个字符的长度的数据,不管是否达到10字符,都需要分配10个字符的空间,但是有一个好处是该数据类型查询效率非常高varchar
:可变长字符数据---->长度可以随着保存内容的长度改变而改变,可以节省磁盘空间text
:大文本数据类型,存放的大型文本数据
日期类型数据:
datetime
:表示日期和时间,这种数据类型存储从1753年1月1日到9999年12月3 1日间所有的日期和时间数据, 精确到三百分之一秒或3.33毫秒Smalldatetime
:表示从1900年1月1日到2079年6月6日间的日期和时间,精确到一分钟
二进制数据类型:
binary
:存储大概8000个字节长度的二进制数据,该数据类型是定长的
varbinary
:存储大概8000个字节长度的二进制数据,该数据类型是可变长的
image
:image 数据类型用来存储变长的二进制数据,最大可达231-1或大约20亿字节
表的创建
为了可以在数据库中保存我们需要的数据,关系型数据库采用的是存放一张一张的表格结构的存储方式存储。
在数据库中创建表一般有两种方法:
- 在工具
Microsoft SQL Server Management Studio
采用可视化的方式创建(不推荐) - 书写SQL命令的方式创建
由于不推荐直接直接使用可视化的方式创建表格,这里不再讲述
书写SQL命令同样是在 Microsoft SQL Server Management Studio
中
案例分析:
创建一个student表
create table student
(
id int,
Name varchar(50),
clazz varchar(20),
birthday date,
Living_expenses float,
achievement float,
discription text
);
如上,执行以上的命令,就可以创建出一个最为简单的表格student
了,
create table
代表我需要创建一个表格student
:为表名称- 括号内是表的字段,代表我需要创建的表格的列名和所能保存的数据类型
id int,
表示的是由一个字段名称叫id列,所能保存的数据类型是int
类型,这和我们正常的编程习惯的是相反的,请注意。- 字段中,没一个字段定义完成后,都需要以逗号隔开,但是在最后一个字段上,不能有逗号,
- 创建语句完成,请以分号结尾。
表的修改
在有的时候,表创建完成,但是后来才发现表创建的并不完美,需要加以修改
修改表的表名和列名:将
student
表名称更改为students
- 想要修改表名和字段名称,需要用到的是sql提供的存储过程(有关存储过程的内容在后面更新):
sp_name
exec sp_rename 'student', 'students';
- 想要修改表名和字段名称,需要用到的是sql提供的存储过程(有关存储过程的内容在后面更新):
修改列名称:将
students
表的id
列修改成studentid
- 修改列名,同样用到是
sp_name
的存储过程来修改,需要注意的是,在修改列名的时候,需要在原来的列名带上表名才能修改,否则将报错。
exec sp_rename 'students.id', 'studentid', 'column';
- 修改列名,同样用到是
修改列的数据类型:将
name
的数据类型修改成char(50)
;- 修改列的数据类型,不需要任何的存储过,直接采用
alter table
关键字即可
alter table students alter column name char(50);
- 修改列的数据类型,不需要任何的存储过,直接采用
添加一个字段:在students表中添加一个
password
字段用于保存学习密码- 在需要的时候,我们需要天剑一个字段,用于新内容的存放
alter table students add password nvarchar(20);
删除表
一般来说,删除表格有两种方法
一种是删除表格中的数据,保留表的结构,在需要的时候可以利用日志进行恢复
delete from students;
一种是直接删除数据和表结构,将无法恢复。
drop table students;