SQL server增删改查(1)

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介: SQL server增删改查(1)


SQL server数据类型

  • 整数型:
  • BIGINT
  • INT
  • SMALLINT
  • 小数型:
  • FLOAT
  • DOUBLE
  • 文本型:
  • CHAR
  • VARCHAR
  • NCHAR
  • NVARCHAR
  • TEXT
  • 日期和时间类型
  • DATE
  • TIME
  • DATETIME
  • 布尔型:
  • BIT

数据类型

含义

INT

长整数(也可以写作INTEGER)

SMALLINT

短整数

CHAR(n)

长度为n的定长字符串, 不足n个字符的空白部分用空格补齐

VARCHAR(n)

最大长度为n的变长字符串,如果输入字符串长度不足n ,不足的部分不会使用空格补齐

TEXT

文本输入

FLOAT(n)

浮点数, 精度至少为小数点后n位数字

DOUBLE(n)

双精度浮点数

DATE

日期类型,包含年月日,格式为: YYYY-MM-DD

TIME

时间类型,包含一日的时分秒,格式为: HH:MM:SS

DATETIME

日期时间类型, 是日期类型和时间类型的结合

格式为: YYYY-MM-DD HH:MM:SS

日期数据和时间数据中间用空格隔开

BIT

使用1/0 来表示 ture / false

如何正确选择数据类型

一个属性该如何来选取对应的数据类型呢?

一般来说, 像年龄这种会经常改变的属性, 同时它还包含这运算, 排序的需求,就比如书按年龄排序, 求一个表的记录的平均年龄等, 这种情况一般采用整数类型.

对于char这种定长字符串, 一般用于学号, 性别等固定不变的数据,如果信息的某一个记录集合所记录的数据长度在某个范围变化,字符长度不统一, 不确定的时候, 就可使用VARCHAR来设置最大字符串长度来限定. 他能最大程度的节省空间是一个很高效的数据类型.. char和varchar都是存储ANSI格式的字符串, 而NCHAR和NAVRCHAR是使用unicode格式来存储的字符串.

其中text也是可变长度的字符串, 但是text不需要指定字符串长度, text将根据实际录入长度来决定占用空间大小

而date,time和datetime是用才表示日期时间的.按需求选取即可.

SQL server Management studio管理工具的使用

使用前提

  1. 启动SQL server服务:

在搜索框中搜索服务并打开, 显示如下:

打开对应的数据库服务即可

  1. 连接数据库

对象资源管理器

下载安装好之后, 打开Management studio管理工具, 可以看到其左侧边栏(对象资源管理器)显示如下:

对象资源管理器

就像MySQL一样, SQLserver管理工具也有一个命令窗口

新建数据库

分如下几步:

  1. 选中数据库, 然后右键呼出目录, 点击新建数据库
  2. 输入数据库名称
  3. 点击确认

新建查询

点击新建查询

就可以看到有如下的界面 :

可以在里面输入对应的SQL语句.

一个简单的使用案例

新建一个名为test的数据库:

创建数据库中

test数据库在对象资源管理器中的展现

选中test数据库:

使用use语句选中test数据库, 或者是左边下拉栏, 选中test, 就ok了

创建一个学生表数据库:

学生表包含基本信息, 包括但不限于: 姓名, 年龄, 性别, 学号, 身份证等等.

写好SQL语句之后,点击执行

执行完之后, 如果成功则会显示, 命令已成功完成

在test的资源管理器视图当中就可以看到student的表的数据*(这里的dbo为前缀, 这里不做过多讲解)

约束条件

常用的约束条件的表示和作用

名称

语法表示

约束作用

主键约束

primary key

输入值非空不重复

非空约束

not null

输入值非空

重复约束

unique

输入值是唯一的

默认值约束

default

没有输入值的时候,设置为默认值

检查约束

check

检查输入值是否满足设置的条件

单/多字段主键

  1. 单字段主键:
create table emp (
    depid char(3) primary key,
    depname varchar(20)
)   
  1. 多字段主键
create table emp (
    depid char(3) primary key,
    depname varchar(20),
    primary key(depid, depname)
)   

创建表的时候增加约束

create table emp (
    id char(10) primary key, /*primary key == unique && not null*/
    depName varchar(20) not null,
    address varchar(20) not null default 'xxxx',
    sex char(3) check (sex = '男' or sex = '女'),
    age int check (age in between 20 and 60)
)

其中id为主键约束, not null为非空约束等等.

创建表后增加约束字段

使用alter关键字, 使用语法:

alter table 表名 alter column 字段 数据类型 约束条件

创建表格:

create table emp (
    id char(10) primary key, /*primary key == unique && not null*/
    depName varchar(20) not null,
    address varchar(20) not null default 'xxxx',
    sex char(3) check (sex = '男' or sex = '女'),
    age int check (age in between 20 and 60)
)

设置非空

语法为:

alter table emp alter column age int not null

我们查看对象资源管理器可以看到: age属性的 允许Null值 没有被勾选上了, 也就是不允许为null值

为不同字段增加不同条件的约束

语法:

alter table emp
    constraint PK_depname primary key(depname),
    constraint CK_address check(address like '%省%'),
    constraint DF_address default('xx省xx市') for address

基本表的定义删除与修改

创建表

使用语法:

create table 表名 (
    属性_1 数据类型 约束条件_1
    属性_2 数据类型 约束条件_2
    属性_3 数据类型 约束条件_3
    属性_4 数据类型 约束条件_4
   /* ......*/
)

对应的表的图形化表示可以参考Excel表格中的图形界面.例如:

例如, 建立一个属性包含学生学号(Sno), 姓名(Sname), 性别(Ssex), 年龄(Sage), 和所在系(Sdept)的学生表(Student):

create table Student (
    Sno char(9) primary key, /*primary key 为一种约束条件*/
    Ssex char(3) check (Ssex ='女' or Ssex ='男'),
    Sname varchar(20),
    Sage smallint,
    Sdept char(20)
);

修改表

有时候我们已经创建好表格了, 但是随着应用和需求不断的变化, 这个时候就需要对已经建立好的基本表进行修改, SQL 用alter table来修改基本表, 一般格式为:

alter table 表名
    add 新属性名 数据类型 完整性约束
    drop 完整新约束名
    alter column 属性名 数据类型

这个表名就是要修改的基本表, add用来增加新的属性, 也就是新的列, drop用来删除指定的完整性约束条件, alter column用于修改原有属性的定义(包括修改属性名和数据类型)

我们就以上面那张表为例子:

1.向Student表中增加"入学时间"属性, 数据类型为日期类型:

alter table Sutdent

add Sentrance date;

其中Sentrance为"入学时间"的列名, date为时间类型, 无论基本表中是否已经有数据, 新增加的属性一律为空值.

2.将Student表中年龄的数值类型改为字符型

alter table Student

alter column Sage varchar(10);

3. 为Student表中名字增加唯一性约束

alter table Student

add unique(Sname)

删除表

使用drop table来删除基本表;

drop table 表名 [restrict | cascade]

后面的restrict和cascade是选择删除模式, 如要选择restrict的话, 则该表的删除是有限制条件的, 想要删除这样的表, 就不能被其他表的约束所引用, 例如check和foreign key等, 不能有视图, 不能有触发器, 不能有存储过程和函数等, 如果存在依赖这个表的对象, 则删除会失败

若是选择cascade, 则该表的删除没有限制条件, 再删除表的同时, 相关的依赖对象(例如视图, 索引, 触发器等等)都会被一起删除.


相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
5天前
|
SQL DataWorks NoSQL
DataWorks产品使用合集之如何将SQL Server中的数据转存到MongoDB
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
29天前
|
SQL API 流计算
实时计算 Flink版产品使用合集之在Mac M1下的Docker环境中开启SQL Server代理的操作步骤是什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
156 1
|
23天前
|
SQL 关系型数据库 数据库
阿里云数据库 RDS SQL Server版实战【性能优化实践、优点探析】
本文探讨了Amazon RDS SQL Server版在云数据库中的优势,包括高可用性、可扩展性、管理便捷、安全性和成本效益。通过多可用区部署和自动备份,RDS确保数据安全和持久性,并支持自动扩展以适应流量波动。可视化管理界面简化了监控和操作,而数据加密和访问控制等功能保障了安全性。此外,弹性计费模式降低了运维成本。实战应用显示,RDS SQL Server版能有效助力企业在促销高峰期稳定系统并保障数据安全。阿里云的RDS SQL Server版还提供了弹性伸缩、自动备份恢复、安全性和高可用性功能,进一步优化性能和成本控制,并与AWS生态系统无缝集成,支持多种开发语言和框架。
169 2
|
23天前
|
SQL JSON atlas
实时计算 Flink版产品使用合集之SQL Server CDC是否支持抽取SQL Server视图
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
28天前
|
SQL 数据处理 API
实时计算 Flink版产品使用合集之遇到SQL Server锁表问题如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
29 0
|
29天前
|
SQL 关系型数据库 MySQL
实时计算 Flink版产品使用合集之当 SQL Server 源数据库中的数据更新后,CDC 吐出的操作(op)是怎样的
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
1月前
|
SQL XML Linux
SQL Server的版本
【5月更文挑战第14天】SQL Server的版本
32 3
|
1月前
|
SQL 关系型数据库 数据管理
Microsoft SQL Server 是微软公司开发的一款关系型数据库管理系统
【5月更文挑战第14天】Microsoft SQL Server 是微软公司开发的一款关系型数据库管理系统
36 2
|
存储 SQL 程序员
【Sql Server】存储过程通过作业定时执行按天统计记录
通过前两篇文章的学习,我们已经对创建表、存储过程、作业等功能点有所了解 本次将结合前面所学习的知识点,创建统计表以及结合作业定时按天以及实时统计域名各个长度的记录值
328 0
【Sql Server】存储过程通过作业定时执行按天统计记录
|
11月前
|
存储 SQL 数据库
SQL Server——为什么要使用存储过程?不使用是什么样的?
提高数据库执行速度,可能第一次见到这句话的小伙伴们感觉到非常的匪夷所思叭!怎么就提高了它的执行速度捏,从哪方面可以表现出来呢?既然这里要说到的是为什么要使用存储过程,也就是说它的优点是什么。那我们肯定就要对使用和不使用存储过程两方面来进行对比才能看出它的优点对吧。