– 变量 分支 循环

– declare 变量名 数据类型
– declare 关键字,作用声明变量
– 变量名:以@开头
– 数据类型:数据库中支持的数据类型:int varchar(n) text char(n) nvarchar(n)

nchar(n)
declare @name varchar(255)

– 定义多个变量

declare @No varchar(255),@Price int

– 变量赋值,仅支持给一个变量赋值

set @name = '活着'

– 查看变量赋值的结果

print @name

– 以为表格方式 查看变量赋值

--select @name 属性名

– 多个变量赋值,执行多次set

set @No = '231025'
set @Price = 23

use BookDB

– 将子查询的查询结果,赋值给变量

set @Price = (select Price from BookInfos where BookName='活着')
print @Price

– 将查询结果直接赋值给变量,注意:如何有多个记录,赋值最有一个结果

select @Price=Price from BookInfos where  BookName='活着'
print @Price

– 同时给多个变量赋值

select @name='test',@no='53232'
print @name+@no

分支语句

–========================= 双分支 =====================

declare @age int
set @age = 23-- if..else..分支语句if(@age>18) -- if(条件表达式)
begin 
print '成年人'
end 
else  --false
begin 
print '未成年人'
end

–========================== 多分枝 =================

declare @age int
set @age = 25
if(@age>60)
begin print '老年人'
end
else if (@age>40 and @age<=60)
begin print '中年人'
endelse if(@age>25)
beginprint '青年人'
end
else if(@age>0)
begin print '少年'
end
else 
begin print '不是人'
end

–============================ 嵌套分支 =====================

declare @age int
set @age = 7
if(@age<18)
begin if(@age <10)begin print '小孩'endelse beginprint '未成年'end
end

– 分支练习

use BookDB
go
-- object_id()  返回实例的id
if(object_Id('BookInfos','U') is not null)print 'BookInfo 表存在'
else print '不存在'-- 验证记录是是否存在
if(exists(select BookId from BookInfos))print '存在'
else print '不存在'use master
go
-- 验证数据库是否存在
if(exists(select * from sys.databases where name='BookDB'))print 'BookDB 数据库存在'
else print 'BooDB不存在'

–================== 验证表是否存在 =========

use BookDB
go
if(exists(select * from sys.objects where name = 'BookInfos'))print '表存在'
else print '不存在'-- 什么时候需要用到验证数据库与表是否存在,
-- 新建数据库与表之前需要先验证表是否存在,存在,先删除再新建--- 需求:使用sql 练习新建数据 表 插入数据...-- 新建数据库之前,使用 master
use master 
go
declare @DBName varchar(255)
set @DBName = 'MyMISDB'
-- 验证数据库是否存在
-- exists()
-- not exists()
-- 如果数据库名为:MyMISDB 存在
if(exists(select * from sys.databases where name =@DBName ))
begindrop database MyMISDBprint '删除数据库:'+ @DBName +'成功'
end

–========= 新建数据库:主文件,从文件,日志文件 =====

create database MyMISDB 
on primary -- 主文件
(name='MyMISDB',fileName='D:\3上位机6班\1sql_server\07\database\MyMISDB.mdf',size=100MB,filegrowth= 1% 
)
,
( -- 从文件name='MyMISDB_data',fileName='D:\3上位机6班\1sql_server\07\database\MyMISDB_data.ndf',size=10MB,filegrowth= 1% 
)
log on  -- 日志文件
(name='MyMISDB_log',fileName='D:\3上位机6班\1sql_server\07\database\MyMISDB_log.ldf',size=10MB,filegrowth= 1% 
)
print '新建'+@DBName +'数据库成功'
-- go 阻断变量的作用域
use MyMISDBprint '使用:'+ @DBName +'数据库'

–===================== 创建表 ============================

–============= 新建表:部门 =====================

if exists( select *  from sys.objects where name = 'Department' )
begin drop table Departmentprint '删除:Department 成功'
end
print '开始新建 Department 表.....'
create table Department 
(-- 属性名,类型 ,约束DepartmentId int primary key identity(10,1),DepartmentName varchar(255) not null)
print '新建Department表成功'

–======================== 职位表 =================

if exists( select *  from sys.objects where name = 'Post' )
begin drop table Postprint '删除职位表:Post 成功'
end
print '开始新建 Post 表.....'create table Post 
(-- 属性名,类型 ,约束PostId int primary key identity(10,1), -- 职位id PostName varchar(255) not null	 -- 职位名
)
print '新建Post表成功'

–======================= 员工表 ==================

if exists( select *  from sys.objects where name = 'Employee' )
begin drop table Employeeprint '删除员工表:Employee 成功'
end
print '开始新建 Employee 表.....'create table Employee 
(-- 属性名,类型 ,约束EmployeeId int primary key identity(101,1), -- 员工idEmployeeName varchar(255) not null, 	 -- 员工名称Gender varchar(2) not null,NowAddress varchar(255) default('地址不详'), -- 家庭住址IdNo varchar(255) unique not null check(len(IdNo)=18) , -- 身份号码WeiXinNumbser varchar(255) not null ,   -- 微信号码PhotoNumber varchar(255) not null,    -- 手机号码OtherWork varchar(255) not  null , -- 工作信息EntryData Datetime not null, -- 入职时间-- 关联其他表-- 为什么不直接保存部门名称和职位名称-- 1: 因为数据重复录入-- 2:不符合OOP 面向对象,明确性原则PostId int references Post(PostId) not  null, -- 外键 职位编号DepartmentId int references Department(DepartmentId) not null, -- 外键 部门编号
)
print '新建Employee表成功'
go

–=添加数据=

print '开始添加数据'
use MyMISDB
go
insert into  Department(DepartmentName) values 
('研发部门'),('财务部门'),('行政部门'),('测试部门'),('实验部门'),('人事部门')insert into Post(PostName)values
('软件工程师'),
('测试工程师'),
('实施工程师'),
('财务经理'),
('人事经理'),
('行政主管'),
('出纳'),
('上位机开发工程师'),
('算法工程师')insert into Employee (EmployeeName, Gender, NowAddress, IdNo, WeiXinNumbser, PhotoNumber, OtherWork, EntryData, PostId, DepartmentId)values
('江平安','男','天津','123226199012111510','thinger01','13600001201','暂无','2020-01-01',10,10),
('申向前','男','北京','123226199012111511','thinger02','13600001202','暂无','2020-01-02',11,11),
('刘威','男','上海','123226199012111512','thinger03','13600001203','暂无','2020-01-03',12,13),
('韩亮亮','男','广州','123226199012111513','thinger04','13600001204','暂无','2020-01-04',10,10),
('韩兵','男','苏州','123226199012111514','thinger05','13600001205','暂无','2020-01-05',12,12),
('杜帅兵','男','南宁','123226199012111515','thinger06','13600001206','暂无','2020-01-06',10,10),
('唐晨牧','男','德州','123226199012111516','thinger07','13600001207','暂无','2020-01-07',11,11),
('郭子华','男','衢州','123226199012111517','thinger08','13600001208','暂无','2020-01-08',12,12),
('胡胜南','女','西安','123226199012111518','thinger09','13600001209','暂无','2020-01-09',10,10),
('杨玉','女','咸阳','123226199012111519','thinger10','13600001210','暂无','2020-01-10',11,11),
('郑琳','女','沈阳','123226199012111520','thinger11','13600001211','暂无','2020-01-11',14,14)print '三个表数据添加完成'

– 循环

declare @index int 
set @index = 0
while (@index <5)  -- 循环语句
begin -- {print @indexset @index += 1
end -- }

– 练习:每次脚本执行; 自动生成订单编号。20250625171500001 并插入数据
– 1:登录界面:(人事经理)
– 2:主要界面

– 触发器:视图,储存过程,游标,事务

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AWS S3 可观测性最佳实践

AWS S3 介绍 AWS S3&#xff08;Amazon Simple Storage Service&#xff09;是一种可扩展的对象存储服务&#xff0c;提供高可用性、持久性和安全性。它允许用户存储和检索任意数量的数据&#xff0c;并通过简单的 Web 服务接口访问这些数据。S3 支持多种存储类别&#xff0c;…

Ubuntu下布署mediasoup-demo

一、引言 mediasoup是一个强大的SFU架构的WebRTC流媒体服务器&#xff0c;凭借其多功能性、高性能和可扩展性&#xff0c;mediasoup成为构建多方视频会议和实时流媒体应用程序的完美选择。它具有联播、SVC、传输BWE和更多尖端功能。本文介绍了mediasoup-demo在Ubuntu下的布署。…

【JVS更新日志】物联网、智能排产APS、企业计划、规则引擎6.25更新说明!

项目介绍 JVS是企业级数字化服务构建的基础脚手架&#xff0c;主要解决企业信息化项目交付难、实施效率低、开发成本高的问题&#xff0c;采用微服务配置化的方式&#xff0c;提供了低代码数据分析物联网的核心能力产品&#xff0c;并构建了协同办公、企业常用的管理工具等&…

解决git pull,push 每次操作输入账号密码问题

服务器每次git pull 的时候都需要输入账号密码&#xff0c;一劳永逸解决它。 解决方案&#xff1a; 找到项目下 .git /config 文件&#xff0c;然后打开&#xff0c;编辑 [rootiZbp11b24d3d7nc8uvjx9mZ .git]# ls branches config description FETCH_HEAD HEAD hooks i…

Netty:深入解析AbstractByteBufAllocator架构设计

AbstractByteBufAllocator 类结构分析 类结构概览 public abstract class AbstractByteBufAllocator implements ByteBufAllocator {// 静态常量static final int DEFAULT_INITIAL_CAPACITY 256;static final int DEFAULT_MAX_CAPACITY Integer.MAX_VALUE;// ...其他常量//…

Java 日志管理与分析

为什么需要日志 ■ 发⽣了什么&#xff08;What&#xff09;。 ■ 何时发⽣的&#xff08;When&#xff09;。 ■ 发⽣于何处&#xff08;Where&#xff09;。 ■ 谁参与其中&#xff08;Who&#xff09;。 ■ 参与者来源&#xff08;第⼆个Where&#xff0c;注意与上⾯的Wher…

bmc TrueSight 监控mysql配置

bmc TrueSight 监控mysql配置 1.将pat加入mysql组 useradd pat;echo patpassword|passwd --stdin pat usermod -aG mysql pat2.设置环境变量 查看文件是否存在[rootu1acmsdp01 ~]# find / -name mysql.sock /var/lib/mysql/mysql.sock ^C [rootu1acmsdp01 ~]# cd /var/lib/my…

WinAppDriver 自动化测试:C#篇

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】

zlmediakit webrtc搭建使用

webrtc 编译与使用 | ZLMediaKit 官方文档参考 编译机器&#xff1a; centos 7.6 gcc 版本 10.1.0 (GCC) cmake version 3.23.0web播放rtsp流视频&#xff0c;使用webrtc毫秒级延迟_webrtc播放rtsp流-CSDN博客 依赖准备 openssl 安装 (openssl 版本要求 1.1 以上) 我的…

Linux下使用docker nginx部署vue前端项目工程

1、使用Docker和Nginx部署Vue项目的步骤 1、准备好VUE项目&#xff0c;已打包编译 2、docker环境已完成安装 3、本地环境上创建nginx目录&#xff0c;下包括conf&#xff0c;html&#xff0c;logs目录。用于容器映射&#xff08;其实是方便修改文件&#xff0c;因为在容器中…

从实验室到生产线:机器学习模型部署的七大陷阱及PyTorch Serving避坑指南

1 实验室与生产环境的鸿沟&#xff1a;为什么99%的模型部署会失败&#xff1f; &#xff08;1&#xff09;部署失败的真实数据统计 根据2023年MLOps行业报告&#xff1a; 78%的组织表示模型部署时间超过预期65%的模型部署后性能下降超过20%仅12%的组织能在一周内完成模型更新…

Module not found: Error: Can‘t resolve ‘core-js/modules/es.array.concat.js‘

遇到错误“Module not found: Error: Can’t resolve ‘core-js/modules/es.array.concat.js’”通常是因为你的项目中使用了core-js库&#xff0c;但是你的项目配置或者core-js的版本不支持你正在尝试使用的功能。下面是一些解决这个问题的步骤&#xff1a; 确认core-js版本 …

Windows10中设置多个虚拟IP方法

一.netsh 命令添加&#xff08;最直接、最简单&#xff09; 1.在 Windows 10 中&#xff0c;使用 netsh 命令为现有物理网卡或虚拟网卡添加额外的 IP 地址&#xff08;IP Alias&#xff09;是最直接的方法。这些 IP 地址与主 IP 在同一网段&#xff0c;共享同一张网卡的 MAC 地…

回答 如何通过inode client的SSLVPN登录之后,访问需要通过域名才能打开的服务

需要dns代理 1 配置需求或说明 1.1 适用的产品系列 本案例适用于软件平台为Comware V7系列防火墙&#xff1a;本案例适用于如F5080、F5060、F5030、F5000-M等F5000、F5000-X系列的防火墙。 注&#xff1a;本案例是在F100-C-G2的Version 7.1.064, Release 9510P08版本上进行…

Jenkins通过Pipeline流水线方式编译前端项目

本文记录了本人在前端项目持续集成与自动化部署方面的实践经验&#xff0c;使用 Jenkins 官方 jenkins:lts 镜像为基础&#xff0c;构建支持 Node.js 构建和压缩能力的运行环境&#xff0c;并通过声明式 Pipeline 实现一套多环境&#xff08;SIT/PROD&#xff09;可选的一键部署…

Dockerfile 镜像构建

目录 简介 一、Docker镜像概念与结构 1.1 镜像的分层存储机制 1.2 镜像分层的关键特性 二、Dockerfile语法 2.1 基础构建指令 2.2 环境配置指令 2.3 文件操作指令 2.4 运行时指令 2.5 网络与数据管理 三、实战案例 3.1 构建Nginx Web服务器 3.2 构建Tomcat应用服务…

Docker Desktop 4.42集成的MCP工具包

一、介绍 Docker Desktop 4.42 集成了 MCP&#xff08;Model‑Client‑Plugin&#xff09;Toolkit&#xff0c;无需额外安装扩展即可直接使用。 MCP Toolkit 集成细节 内置于 Docker Desktop&#xff1a;你可以直接打开应用&#xff0c;在设置中启用 MCP 服务器&#xff0c;比…

CUDA NCU Occupancy学习笔记

占用率是每个多处理器的活跃 Warp 数量与最大可能活跃 Warp 数量的比率。另一种查看占用率的方式是&#xff0c;硬件处理 Warp 的能力中&#xff0c;实际使用 Warp 的百分比。较高的占用率并不一定能带来更高的性能&#xff0c;然而&#xff0c;较低的占用率总是会降低隐藏延迟…

配置自己的NTP 服务器做时间同步

✅ 推荐方案&#xff1a;使用 chrony 搭建 NTP 服务器&#xff08;适用于 CentOS 7/8/9&#xff09; chrony 是 CentOS 推荐的 NTP 实现&#xff0c;精度高、资源占用低、同步快&#xff0c;默认在 CentOS 8 中取代了 ntpd。 &#x1f527; 一、安装 chrony sudo yum install…

【运维系列】Plane 开源项目安装和配置指南

Plane是一个用现代前端技术栈&#xff08;Next.js TailwindCSS&#xff09;开发的开源项目管理平台&#xff0c;核心理念是 Bring Structure to Chaos" —— 给混乱的项目管理带来结构感。 1.项目地址 gitHub 2.项目使用的关键技术和框架 Plane 项目使用了多种关键技术…