SQL server增删改查(1)

news2025/1/21 15:43:56

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. 选中数据库, 然后右键呼出目录, 点击新建数据库

  1. 输入数据库名称

  1. 点击确认

新建查询

点击新建查询

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

可以在里面输入对应的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, 则该表的删除没有限制条件, 再删除表的同时, 相关的依赖对象(例如视图, 索引, 触发器等等)都会被一起删除.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/468939.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Scala语言入门以及基本语法

文章目录 前言1.环境搭建1) IDEA中插件下载2) SDK下载配置 2.基本使用1)var与val的区别2) .基本数据类型3).字符串的基本用法4) 控制结构1) if else2) for 循环3) while循环 5)类6) 函数 前言 scala在一种简洁的高级语言中结合了面向对象和函数式编程。Scala的静态…

8个免费的PNG素材网站推荐

很多设计小白都不知道什么是PNG。事实上,PNG是一种支持透明度的图像格式。当你想在设计中将图像与背景或文本混合时,它就会派上用场。 如果你没有时间为你正在处理的设计创建透明的PNG图像,你也可以使用我收集的PNG素材网站,以便…

【Linux从入门到精通】Linux常用基础指令(中)

本篇文章接上篇文章(【Linux从入门到精通】Linux常用基础指令(上))进行详解。本章的指令相对较为重要,使用频率较高,难度相对上篇文章较难,也较为复杂。希望能对你的理解有所帮助。 文章目录 一…

(Open AI 极简教程)ChatGPT注册登录常见问题及其解决方法最全总结

好久没有更新过技术类的文章了,临近五一假期,首先祝大家假期游玩愉快,也希望本篇文章能够对你有所帮助,今天这篇博客将会把ChatGPT注册中可能遇到的问题彻头彻尾的讲一下,如果感觉有帮助的话就动动你发财的小手点个收藏…

蓝奥声核心技术分享——一种无线低功耗配置技术

1.技术背景 无线低功耗配置技术指基于对目标场景状态变化的协同感知而获得触发响应并进行智能决策,属于蓝奥声核心技术--边缘协同感知(EICS)技术的关键支撑性技术之一。该项技术涉及物联网边缘域的无线通信技术领域,具体主要涉及网络服务节点…

3.龙芯2k1000 builroot文件系统编译过程

3.龙芯2k1000 builroot文件系统编译过程 文章目录 3.龙芯2k1000 builroot文件系统编译过程(一)、在Ubuntu环境下载并配置交叉编译链(与内核编译工具链相同)(二)、下载buildroot源码(三&#xff…

【Linux命令篇】正则表达式浅析

前言 转义字符是将普通字符转化为特殊字符的一种方式。 在正则表达式中,一些字符被定义为特殊字符(也称为元字符),它们具有特殊的含义。这些特殊字符包括: 句点字符 .:可以匹配除了换行符以外的任何单个…

JavaScript经典教程(四)-- JavaScript基础 - BOM、打印、window对象等详解

184:JavaScript基础 - BOM、打印、window对象等详解 185:JavaScript基础 - 数据类型Number及运算符号 1、关键字 (3)alert - 警告窗 原型:window.alert(); alert实际上是一个函数 注:alert无法弹出部分…

Figma如何导出jpg格式?

在这个追求效率和质量的时代,Figma确实可以加快我们的设计工作,增加效率,功能越来越强大。然而,Figma从未有过中文版本。 但就使用工具而言,一次生两次并不难。设计小白经常卡在最后一步,如何用Figma导出j…

【Paper】2022_基于自适应事件触发控制的一般线性多智能体系统的一致性_田昌源

田昌源. 基于自适应事件触发控制的一般线性多智能体系统的一致性[D].青岛大学,2022.DOI:10.27262/d.cnki.gqdau.2022.002546. 文章目录 第五章 一般线性多智能体系统的自适应事件触发二分一致性5.1 系统模型5.2 自适应事件触发二分一致性5.2.1 无领导一致性5.2.2 领导-跟随一致…

JDK的环境配置(超级详细教程)

JDK的环境配置——超详细教程 一、下载java安装包 我们可以去官网下载java,进入官网页面,然后点击Download Java。 网站:https://developer.oracle.com/languages/java.html 里面有各种版本的jdk可供选择。 二、安装JDK 这里我选择安装…

Android实现一个带清除和提交按钮的清爽圆角搜索框

运行效果&#xff1a; 放入Toolbar的效果 清除按钮有内容才显示&#xff1a; 下面是教程&#xff1a; 实现一个圆角搜索框&#xff0c;可以使用CardView来实现&#xff0c;同时可以添加一个EditText和两个ImageView作为清除和提交按钮。 activity_main <?xml version&quo…

Anaconda3 安装 Tensorflow-gpu

一.准备需要 GPU版本&#xff0c;需要提前下载 cuda 和 cuDNN。&#xff08;可以查看此教程 Anaconda3 安装 Tensorflow-gpu &#xff09; GPU 一般是 nvidia 的 安装前 一定 要查看自己电脑的环境配置&#xff0c;然后查询Tensorflow-gpu、Python、 cuda 、 cuDNN 版本关系&…

嵌入式设备显示屏相关概念汇总

嵌入式设备常用的显示屏接口 LCD 接口&#xff1a;是一种常见的数字电路接口&#xff0c;支持多种显示器件&#xff0c;如字符型液晶显示器和点阵型液晶显示器等。 VGA 接口&#xff1a;是一种视频接口标准&#xff0c;用于连接显示器和计算机。该接口提供模拟 RGB 信号&#…

以太网卡TSO、GSO、LRO、GRO描述及相关配置

以太网卡TSO、GSO、LRO、GRO描述及相关配置 以太网卡的 TSO、GSO、LRO、GRO 是一些传输协议中用于提高网络性能的技术。 硬件包拆分与合并 TSO&#xff08;TCP Segmentation Offload &#xff09; TSO 是一种由网卡卸载 TCP 数据包分段的技术。在传统的方式中&#xff0c;当…

案例01-tlias智能学习辅助系统04-登录认证+全局异常处理

目录 1、基础登录 2、登录校验 2.1、会话跟踪技术&#xff1a; Cookie、Session JWT令牌 2.2、请求过滤 方式一、过滤器&#xff08;Filter&#xff09; 方法二&#xff1a;拦截器&#xff08;interceptor&#xff09; Filter与Interceptor的区别 3、全局异常处理器 1、…

fork函数如何创建进程,exit/_exit函数如何使进程终止的详细分析与代码实现

&#x1f38a;【进程通信与并发】专题正在持续更新中&#xff0c;进程&#xff0c;线程&#xff0c;IPC&#xff0c;线程池等的创建原理与运用✨&#xff0c;欢迎大家前往订阅本专题&#xff0c;获取更多详细信息哦&#x1f38f;&#x1f38f;&#x1f38f; &#x1fa94;本系列…

【Pytorch基础教程38】torchserve模型部署和推理

note torch-model-archiver打包模型&#xff1b;利用torchserve加载前面打包的模型&#xff0c;并以grpc和http等接口往外提供推理服务启动模型的api服务、curl命令发送http post请求&#xff0c;请求模型服务API&#xff1b;流程和TensorFlow serving流程大同小异 文章目录 n…

人工智能之配置环境教程二:在Anaconda中创建虚拟环境并在VsCode中使用

人工智能之配置环境教程二&#xff1a;在Anaconda中创建虚拟环境安装pytorch并在VsCode中使用虚拟环境 作者介绍一. 在Anaconda中创建虚拟环境1. 进入本地终端1.1 键盘使用**winR**快捷键1.2 输入**cmd**点击**确定**进入windows命令行终端 2. 安装镜像源2.1 添加镜像源 3. 创建…