T-SQL复习02--数据表操作

数据库相关概念

  • 数据库就是存放数据的仓库
  • 数据库由表、关系及操作对象组成
  • 数据存放在表中
  • 数据库表由记录组成
  • 记录由字段组成
  • 字段由字符或数字等组成
  • 在创建表时,要考虑数据表的结构问题,也就是涉及确定数据表中各列的数据格式是数值、字符、日期、货币、图像等其他数据格式,这个数据格式就是数据类型
  • 在SQL Server数据库中,每个列、变量、表达式和参数都有其各自的数据类型。指定对象的数据类型相当于定义了对象的以下特性
    • 对象所含的数据类型,如字符、整数或二进制数
    • 所存储值的长度或它的大小
    • 小数位数(仅用于数字数据类型)

数据类型类别

描述 具体类型
字符串 char、varchar、text
Unicode字符串 nchar、nvarchar、ntext
精确数字 bigint、int、smallint、tinyint、numeric、decimal、money、smallmoney
日期和时间 datetime2、datetime、smalldatetime、date、time、datetimeoffset
近似数字 float、real
二进制字符串 binary、varbinary、image
其他数据类型 cursor、timestamp、hierarchyid、uniqueidentifier、xml、sql_variant、table

标识符

  • 标识符可以包含字符、符号及数字,不允许有空格
  • 标识符应尽量短
  • 标识符要使用有意义的名字
  • 使用能够区分对象类型的标识符
  • 保持对象名和用户名唯一性

创建表的规则

  • 表和列的名称必须遵守标识符的规定
  • 列名在表中必须是唯一的
  • 必须为每列指定数据类型
  • 每一行代表一条唯一的记录

使用T-SQL创建表

具体语法:

1
2
3
4
5
6
7
8
9
use 数据库名
create table 表名
(
字段1 数据类型 identity(标识种子,递增量) 是否为空,
字符2 数据类型 是否为空,
...
字段N 数据类型 是否为空
)
go

注:N最大可等于1024
在数据库中,常用的一个流水编号通常会使用identity字段来进行设置,这种编号的个好处是一定不会重复,而且一定是唯一的,这对table中的唯一值特性很重要,通常用来做客户编号、订单编号等功能。identity用在数据类型后边,并定义初始值和递增量,因为使用identity的字段由数据库维护,所以在insert into该表时,不需要对该字段插入值
示例:

1
2
3
4
5
6
7
8
9
10
11
USE SCHOOL
GO

CREATE TABLE STUDENT
(
ID BIGINT IDENTITY(1,1) NOT NULL,
NAME VARCHAR(10) NOT NULL,
SEX CHAR(2) NOT NULL,
AGE INT NOT NULL
)
GO

使用T-SQL修改表列属性

当数据库中的表创建完成后,可以根据需要改变表中原先定义的许多选项,以更改表的结构。用户可以增加、删除和修改列,增加、删除和修改约束,更改表名以及改变表的所有者等

具体语法:

1
2
3
4
use 数据库名
alter table 表名
alter column 字段名 新数据类型 (新长度)
go

示例:

1
2
3
4
5
USE SCHOOL
GO
ALTER TABLE dbo.STUDENT
ALTER COLUMN NAME CHAR(20) NULL
GO

使用T-SQL添加删除表列

添加列

具体语法:

1
2
3
4
5
use 数据库名
alter table 表名
add 字段名1 数据类型 null--是否可空,默认是空,若要不为空,可以指定为not null
add 字段名2 ... --可以同时添加多列
go

示例:

1
2
3
4
5
USE SCHOOL
GO
ALTER TABLE dbo.STUDENT
ADD PHONE CHAR(20) NULL
GO

删除列

具体语法:

1
2
3
4
5
6
use 数据库名
alter table 表名
drop column 字段名1
drop column 字段名2
... --可以同时删除多列
go

示例:

1
2
3
4
5
USE SCHOOL
GO
ALTER TABLE dbo.STUDENT
DROP COLUMN PHONE
GO

使用T-SQL修改表名

需要使用到系统自带的sp_name存储过程
具体语法:

1
2
use 数据库名
exec sp_rename '旧表名','新表名'

示例:

1
2
3
4
USE SCHOOL
GO
EXEC sys.sp_rename 'STUDENT','STUDENT01'
GO

使用T-SQL删除表

具体语法:

1
2
use 数据库名
drop table 表名

示例:

1
2
3
4
USE SCHOOL
GO
DROP TABLE dbo.STUDENT01
GO