当前位置: 首页 > news >正文

目录

1、常用系统数据类型

1. int或integer

2. tinyint

3. decimal[(p[,s])]或numeric[(p[,s])]

4. char(n)

5. varchar(n|max)

6. datetime

2、T-SQL创建表

3、T-SQL修改表

4、T-SQL表数据的操作

4.1 插入数据

4.2 修改数据

4.3 删除数据

5、删除表


1、常用系统数据类型

1. int或integer

四字节,-2^31~2^31-1的整数。

2. tinyint

1字节,0~255的整数。

3. decimal[(p[,s])]或numeric[(p[,s])]

p:最多可以存储的十进制数字的总位数,1~38,默认18。

s:小数点后面可以存储的十进制数字的最大位数,默认0。

如:decimal(10,5),10位数,整数5位,小数5位。

4. char(n)

n:1~8000。实际数据的长度<n,会填空格,实际数据的长度>n,会截断。

5. varchar(n|max)

n:1~8000。实际数据的字符数<n,存储的空间大小 = 实际数据的字节数+前缀空间大小(2字节,存储数据的实际长度,若实际数据的字符数>4000字符,为4字节)

varchar(max),允许存储最多2^31-1个字符的数据。

6. datetime

8字节,可以使用 '/','-','.',做分隔符。默认‘1900-01-01 00:00:00’。

2、T-SQL创建表

CREATE TABLE [database_name.schema_name.|schema_name.]table_name(
<column_definition>[,...n])<column_definition> ::= column_name <type_name> [NULL|NOT NULL] 
<column_constraint>[DEFAULT default_value] -- 默认值<column_constraint> ::= [CONSTRAINT constraint_name]{ -- 约束名
{PRIMARY KEY|UNIQUE}[CLUSTERED|NONCLUSTERED] -- 主码,唯一
|[FOREIGN KEY]REFERENCES ref_table_name[(ref_column_name)] -- 外码
|CHECK(logic_expression)} -- 检查

database_name,数据库名,可以用use 数据库名 指定,就不用写了,除非用的是另一个数据库。

schema_name,架构名,对一个数据库里的表进行分类。

table_name,表名,column_name,列名,type_name,类型名。

NULL|NOT NULL,是否允许为空,默认允许为NULL。

default_name,默认值。只能用于INSERT

constraint_name,约束名。

COLUMN_CONSTRAINT,列级约束(只涉及单个列),可选一个关键字,PRIMARY KEY,UNIQUE,FOREIGN KEY,CHECK

PRIMARY KEY,主键,只有一个属性值唯一不为空,默认CLUSTERED(聚集索引)。

UNIQUE,唯一性,可多个属性值唯一,默认NONCLUSTERED(非聚集索引)

用unique修饰的字段,允许为NULL,但只能一个NULL值

可以把unique约束定义在多个字段

FOREIGN KEY,外键,可多个,外键约束提供了字段参照完整性,不能自动创建索引。

CHECK,检查,可多个

check(),()中不能是子查询。

例:

这里先举例,在创建表的时候,同时创建约束。

金钥匙为主键(不为空),默认允许为NULL 

列级约束,column_constraint

use student
go
create table student1(
sno char(10) primary key, -- 主键
sname varchar(10) unique, -- 唯一
gender char(2) NOT NULL default '男', -- 默认
sage tinyint NOT NULL check(sage >= 0 and sage<=100),-- 检查
)

或者,表级约束(table_constraint),可涉及多个列,

此时需要加,CONSTRAINT constraint_name,

use student
go
create table student1(
sno char(10),
sname varchar(10),
gender char(2) NOT NULL default '男',-- 默认
sage tinyint NOT NULL,
constraint pk_s primary key(sno), -- 主键
constraint q_s unique(sname), -- 唯一
constraint ck_s check(sage >= 0 and sage<=100) -- 检查
)
-- constraint 不能选择default关键字,只能是主码,唯一,外码,检查之一

这里单独写一个外码,

关系s(sno(主码),sname),c(cno(主码),cname),sc(sno,cno,score),(sno,cno)主码

因为sc中(sno,cno)是主码,只能写表级约束,constraint pk_sc primary key(sno,cno) 

创建sc

use student
go
create table sc(
sno char(10) references s(sno),
cno char(4) references c(cno),
score tinyint
constraint pk_sc primary key(sno,cno))

 或者

use student
go
create table sc(
sno char(10),
cno char(4),
score tinyint
constraint pk_sc primary key(sno,cno),
constraint fk1_sc foreign key(sno) references s(sno),
constraint fk2_sc foreign key(cno) references c(cno))

3、T-SQL修改表

只能执行一个操作

ALTER TABLE [database_name.schema_name.|schema_name.]table_name{
ALTER COLUMN column_name type_name [NULL|NOT NULL]
|ADD {<column_definition>|<table_constraint>}[,...n]
|DROP {[CONSTRAINT] constraint_name[,...n]|COLUMN column_name}}

ALTER COLUMN修改已有列的属性

ADD:添加or的约束(除NULL|NOT NULL之外,几乎所有的约束),可多个,用,分隔。

DROP:删除一个列or约束(可多个)

4、T-SQL表数据的操作

4.1 插入数据

INSERT INTO table_name[(column_namelist)]
{VALUES(expression[,...n])}
-- 三种插入数据的形式-- 没有list,对应的属性全要写
insert into student1 values(
'1111111111','L','男',20)-- 只用写对应的属性,但是没写的属性,如果没有默认值且不允许为NULL,就会失败
insert into student1(sno,sname) values(
'1111111112','Z')-- 同理,如果用default占位,如果没有默认值且不允许为NULL,就会失败
insert into student1 values(
'1111111113','C',default,20)

4.2 修改数据

UPDATE table_name
SET column_name = expression [,...n]
[WHERE {condition_expression}]

WHERE:可选关键字,缺省时,默认修改表中的每一行数据。

condition_expression:条件表达式。

例:将student1中的sage为20的记录,改成sage为21的记录

use student
go
update student1
set sage = 21
where sage = 20

4.3 删除数据

DELETE table_name
[WHERE {condition_expression}]

若不指定where,会将表中数据全删了。

-- 将table_name表中数据全删了,比delete table_name全删更快捷
TRUNCATE TABLE table_name

5、删除表

DROP TABLE table_name

http://www.mrgr.cn/news/81838.html

相关文章:

  • 使用uWSGI将Flask应用部署到生产环境
  • 职场常用Excel基础01-数据验证
  • 【C++】九九乘法表编程题详解与多角度对比分析
  • 优化租赁小程序提升服务效率与用户体验的策略与实践
  • 无人机无法返航紧急处理方式!
  • 从0入门自主空中机器人-1【课程介绍】
  • springMVC-请求响应
  • 数据分析与应用:如何分析7日动销率和滞销率?
  • 经典问题——华测
  • 【论文阅读】Reducing Activation Recomputation in Large Transformer Models
  • QML学习(五) 做出第一个简单的应用程序
  • Mac M2 Pro安装MySQL 8.4.3
  • iOS 中的 nil、Nil、NULL、NSNull 僵尸对象和野指针
  • 深度学习笔记(5)——目标检测和图像分割
  • 嵌入式小白
  • 【网络】CookieSession
  • 玩转影刀AI Power-风景小助手教学
  • 2021.12.28基于UDP同信的相关流程
  • 【MySQL】第一弹----库的操作及数据类型
  • Tauri2+Leptos开发桌面应用--Sqlite数据库操作
  • 进军AI大模型-环境配置
  • vue Promise使用
  • Python爬虫(一)- Requests 安装与基本使用教程
  • 二叉树相关性质及其遍历
  • 【老白学 Java】第一次绘制
  • 阿里云人工智能工程师ACA认证免费课程学习笔记