SQL Server 2016(基本概念和命令)
1、文件类型。
【1】主数据文件:数据库的启动信息。扩展名为".mdf"。
【2】次要(辅助)数据文件:主数据之外的数据都是次要数据文件。扩展名为".ndf"。
【3】事务日志文件:包含恢复数据库的所有事务日志信息。扩展名为".ldf"。
【4】文件流数据文件:存储文档、图片、音频、视频等。
2、表的基本感念。
行:每行成为一条"记录"或"元组",用于描述一个对象的信息。
列:每列称为一个"字段"或"属性",用于描述对象的一个属性。
3、主键、外键。
主键:键,即关键字。主键由一个或多个字段组成,其具有唯一性,不允许取空值(NULL)。一个表只能有一个主键。
外键:一个关系数据库通常包含多个表,通过外键可以使多个表关联起来。
4、常用数据类型。
精确数字:
int:SQL Server中的主要数据类型。(整数型)
bit:只有两种可以能值。只能是0、1或NULL(空值),Yes或No、True或False。(整数型)
money:用来表示钱和货币值。
日期和时间:
date:用于表示日期。
time:用于表示一天中的某个时间。
datetime:用于表示日期和时间。
字符串:
char:存储固定长度。
varchar:存储可变长度。
Unicode字符串:
nchar:存储固定长Unicode字符型数据。
nvarchar:存储变长Unicode字符型数据。
5、创建表。
创建表的基本语法:
create table 表名
(
列名1 数据类型(大小)
列名2 数据类型(大小)
列名3 数据类型(大小)
......
)
identity(1,1):表示该列为标识符,种子和增量值都为1。
not null:表示该列不允许空值。
primary key:表示该列为主键列,并且不为空。
check():表示该列创建约束,括号内为约束条件。
命令参考:
##创建表employee
create table employee
(
编号 int identity(1,1) not null,
姓名 nvarchar(50) not null,
身份证号 varchar(18) primary key,
职务 nvarchar(50) not null,
出生日期 datetime not null,
基本工资 money not null check(基本工资>=0 and 基本工资<=100000)
)##使用命令查看表employee的所有信息
select * from employee
6、删除表。语法:[ drop table 表名 ]
命令参考:
##删除表employee
drop table employee
7、修改表的结构。[ alter table 表名 ]
1、向表employee中添加一个"备注"列。
添加表的基本语法:
alter table 表名
add 列名 数据类型(大小)
命令参考:
##向表中添加备注列
alter table employee
add 备注 nvarchar(2000)
8、修改列。
修改列的数据类型:
alter table 表名
alter column 列名 数据类型(大小)
命令参考:
##修改备注列的长度为1000
alter table employee
alter column 备注 nvarchar(1000)
8、删除列。
删除列的基本语法:
alter table 表名
drop column 列名
命令参考:
##删除表中的备注列
alter table employee
drop column 备注
10、插入数据。语法:[ insert into 表名 (列名) values (列表值) ]
注意事项:
不能只插入半行或几列数据。
不能为标识符指定值,因为它的值是自动增长的。
插入的数据要符合check约束的要求。
如果指定不为空,则该列必须插入数据,否则将报错。
1、向表中插入一行数据。
命令参考:
insert into employee (姓名,身份证号,职务,出生日期,基本工资)
values ('郭靖','111222333444555666','运维工程师','1995/1/1',8000)
11、 更新数据。语法:[ update 表名 set 列名=更新值 where 更新条件 ]
1、更新表中黄蓉的基本工资为11000;更新表中郭靖的工资为"9000",备注为"勤奋好学"
命令参考:
update employee set 基本工资='11000' where 姓名='黄蓉'
update employee set 基本工资='9000',备注='勤奋好学' where 姓名='郭靖'
12、删除表中数据的两种方法。 (delete、truncate)
12.1、删除表中数据。语法:[ delete from 表名 where 删除条件 ]
1、删除表中杨过的记录(行);删除表中所有记录。
命令参考:
delete from employee where 姓名='杨过'
delete from employee
12.2、删除表中数据。[ truncate table 表名 ](类似格式化表中数据)
【1】与delete删除数据不同的是,truncate类似格式化,删除所有记录标识符会重置为0。
【2】delete删除后可以通过事务日志恢复,而truncate不能。
1、删除表中的所有记录。
13、select查询。
表达式:
between:指定范围,使用"and"定义开始值和结束值。例:(1 and 10)
in:是否在此范围内。例:in (10,20,30)
like:模糊查询。例:like '66%' //66开头的数据
<>:不等于。
!=:不等于,等同于<>。
通配符:
'_':表示单个字符。
%:表示任意长度的字符串。
[ ]:表示查找此范围内的数据。例:like '[C-P]' //从C到P之间开头的数据
[^]:表示不查找在此范围内的数据。例:like 'car[^afg]' //查找以car开头但是后面的字母不为a、f、g的名字。
逻辑表达式:
not:取反的操作。
and:和、并且的意思,需要同时满足两个条件。
or: 或的意思,只需要满足两个条件其中一个即可。
13.1、案例。
//查询表中的所有信息
select * from employee//查询表中的"姓名,职务,基本工资"列
select 姓名,职务,基本工资 from employee//查询表中运维工程师的姓名
select 姓名 from employee
where 职务='运维工程师'//查询表中基本工资在8000到10000之间的所有员工信息
select * from employee
where 基本工资 between 8000 and 10000//查询表中基本工资小于10000或大于20000的所有员工信息
select * from employee
where 基本工资<10000 or 基本工资>20000//查询表中基本工资为8000、9000、10000的所有员工信息
select * from employee
where 基本工资 in (8000,9000,10000)//查询表中身份证号以66开头的员工所有信息
select * from employee
where 身份证号 like '66%'//查询表中姓杨的运维工程师的信息。
select * from employee
where 姓名 like '杨%' and 职务='运维工程师'//查询表中备注不为空的所有信息
select * from employee
where 备注 is not null//查询表中前5行的数据
select top 5 * from employee//查询表中姓名和身份证号列的信息,姓名和身份证号以别名"name"、"idcard"显示
select 姓名 as name,身份证号 as idcard from employee//查询表中的基本工资,并以降序显示(高到低)
select * from employee
order by 基本工资 desc//查询表中的有哪些职务(去重)
select distinct 职务 from employee//查询表中的姓名(name)、身份证号、职务、基本工资信息,条件要满足身份证号第三位为0并且职务不是CTO,在降序显示
select 姓名 as name,身份证号,职务,基本工资 from employee
where 身份证号 like '__0' and 职务!='CTO'
order by 基本工资 desc
14、使用select查询后加入新表或查询后创建新表。
不需要事先创建新表
//查询employee表中的姓名、身份证号、职务信息后创建然后保存到new01表中
select 姓名,身份证号,职务 into new01 from employee
需要事先创建新表再能将查询到的信息保存到新表
//查询employee表中的姓名、职务、出生日期并且基本工资大于等于15000的员工信息,保存new02表中
insert into new02 (姓名,职务, 出生日期)
select 姓名,职务,出生日期 from employee
where 基本工资>=15000//查询employee表中的姓名、职务、出生日期信息保存到new03中,然后向new03中加入信息
select into new03 (姓名,职务,出生日期)
select '欧阳锋','人事经理','1988-09-09' union
select '一灯','财务经理','1977-07-07' union
select 姓名,职务,出生日期 from employee
15、在查询中使用函数。
系统函数:
字符串函数:
日期函数:
15.1、案例。
//查询运维工程师的姓名和基本工资,以固定格式显示
select '运维工程师 ' +姓名+' 的基本工资是: '+cast(基本工资 as varchar(10))+'元'
from employee
where 职务='运维工程师'//查询当前系统时间10天之后的时间
select dateadd(DD,10,getdate())//查询表中的表中所有人的姓名和年龄
select 姓名,datediff(YY,出生日期,getdate()) as 年龄
from employee//查询表中90后的员工姓名和出生年份
select 姓名,datename(YEAR,出生日期) as 出生日期
from employee
where 出生日期 between '1990-01-01' and '1999-12-31'//查询表中基本工资的总和
select sum(基本工资) as 总工资
from employee//查询表中基本工资的平均值
select avg(基本工资) as 平均工资
from employee//查询表中最高工资和最低工资的员工信息
select max(基本工资) as 最高工资,min(基本工资) as 最低工资
from employee//查询表中的总行数
select count(*) as 总行数
from employee//查询表中90后的总人数
select count(出生日期) as '90后人数'
from employee
where 出生日期>='1990-01-01'//查询表中各个职务的平均工资
select 职务,avg(基本工资) as 职务平均工资
from employee
group by 职务//查询表各个职务的平均工资小于10000的信息
select 职务,avg(基本工资) as 职务平均工资
from employee
group by 职务
having avg(基本工资)<10000//查询表中各个职务平均工资小于10000并且姓名不是段誉
select 职务,avg(基本工资) as 职务总工资
from employee
where 姓名 !='段誉'
group by 职务
having avg(基本工资) <10000
数字函数:
15.2、案例。
//查询表中的平均工资并取整
select ceiling(avg(基本工资)) as 平均工资
from employee
15.3、函数综合案例。
查询未满30岁的员工的生日和年龄,并且计算出距离30岁的天数,最后用字符串拼接显示结果。
select
'员工 '+姓名+
' 的生日是'+convert(varchar(10),出生日期,111)+
', 现在年龄是 '+cast(datediff(YY,出生日期,getdate()) as varchar(10))+'岁'+
', 距离30岁还有 '+
cast(datediff(DD,getdate(),dateadd(YY,30,出生日期)) as varchar(10))+'天'
from employee
where datediff(YY,出生日期,getdate())<=30
order by 出生日期
相关文章:

SQL Server 2016(基本概念和命令)
1、文件类型。 【1】主数据文件:数据库的启动信息。扩展名为".mdf"。 【2】次要(辅助)数据文件:主数据之外的数据都是次要数据文件。扩展名为".ndf"。 【3】事务日志文件:包含恢复数据库的所有事务…...
Linux C语言 30-套接字操作
Linux C语言 30-套接字操作 本节关键字:C语言 网络通信、套接字操作、TCP、UDP、服务端、客户端 相关C库函数:socket, bind, listen, accept, setsockopt, recv, send, recvfrom, sendto, close 什么是网络通信? 通信是人与人之间通过某种…...

RPC和REST对比
RPC和REST对比 参考学习 RPC 和 REST 之间有什么区别? 当我们对比RPC和REST时,其实是在对比RPC风格的API和REST风格的API,后者通常成为RESTful API。 远程过程调用(RPC)和 REST 是 API 设计中的两种架构风格。API …...

外包干了2年,技术退步明显。。。
前言 简单的说下,我大学的一个同学,毕业后我自己去了自研的公司,他去了外包,快两年了我薪资、技术各个方面都有了很大的提升,他在外包干的这两年人都要废了,技术没一点提升,学不到任何东西&…...

深度学习——第1章 深度学习的概念及神经网络的工作原理
1.1 序言——探索智能机器 千百年来,人类试图了解智能的机制,并将它复制到思维机器上。 人类从不满足于让机械或电子设备帮助做一些简单的任务,例如使用滑轮吊起沉重的岩石,使用计算器做算术。 人类希望计算机能够自动化执行更…...

爬虫爬取百度图片、搜狗图片
通过以下代码可以爬取两大图片网站(百度和搜狗)的图片,对于人工智能、深度学习中图片数据的搜集很有帮助! 一、爬取百度图片 该代码可以爬取任意百度图片中自定义的图片: import requests import re import time imp…...
Android Camera2使用
一 简介 1.1 Camera API: 这是旧版本的相机API,也称为Camera1 API。它提供了较简单的使用方式,适用于旧版Android设备。但它存在一些限制,如性能不佳、操作复杂等 1.2 Camera2 API: 这是新版本的相机API࿰…...

IOS/安卓+charles实现抓包(主要解决证书网站无法打开问题)
安装 官网下载 https://www.charlesproxy.com/latest-release/download.do 安装charles文档 流程 上述链接解决下图问题 使用介绍 Charles介绍 上述链接看一至三即可,了解首页各个按钮的作用 charles全面使用教程及常见功能详解(较详细)…...

七、Lua字符串
文章目录 一、字符串(一)单引号间的一串字符(二)local str "Hello, "(三)[[ 与 ]] 间的一串字符(四)例子 二、字符串长度计算(一)string.len&…...

0基础学java-day13
一、包装类 1. 包装类的分类 1) 针对八种基本数据类型相应的引用类型【对象】—包装类 2) 有了类的特点,就可以调用类中的方法。 3) 如图: 2 包装类和基本数据的转换 3 案例演示 Integer01.java package com.hspedu.wrapper;/*** author 林然* version 1.0*/ p…...
好题记录:
好题记录: 1:2:3:三级目录 1: 下面代码的结果是:( ) 下面代码的结果是:( )#include <stdio.h> int main() {int arr[] {1,2,3,4,5};short *p (short*)arr;int i …...
web前端之JavaScrip中的闭包
MENU 闭包--笔试-11defineReactive函数,利用闭包封装Object.defineProperty()闭包--节流函数--笔试-10闭包的定义JavaScript闭包的9大经典使用场景 闭包–笔试-11 function fun() { var n 9; // js 中强行给一个未声明的变量赋值,// 程序不会报错// 并…...

Windows下命令行启动与关闭WebLogic的相关服务
WebLogic 的服务器类型 WebLogic提供了三种类型的服务器: 管理服务器节点服务器托管服务器 示例和关系如下图: 对应三类服务器, 就有三种启动和关闭的方式。本篇介绍使用命令行脚本的方式启动和关闭这三种类型的服务器。 关于WebLogic 的…...

LeetCode Hot100 169.多数元素
题目: 给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 方法一:哈希表 class Solution {public int…...

数据结构:堆的实现思路
我们之前写过堆的实现代码:数据结构:堆的实现-CSDN博客 这篇文章我们了解一下堆到底是如何实现的 1.堆向下调整算法 现在我们给出一个数组,逻辑上看做一颗完全二叉树。我们通过从根节点开始的向下调整算法可以把它调整成一个小堆 向下调…...
结合 DBSCAN 示例代码介绍 DBSCAN
前文为JoyT的科研之旅第一周——科研工具学习及论文阅读收获-CSDN博客 DBSCAN 介绍 DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类算法,它能够识别出任意形状的簇,并有效地处理噪声…...

vscode 调试jlink
文章目录 软件使用说明1、启动GDB Server2、下载gdb3、vscode配置4、调试 软件 vscodejlink - (JLinkGDBServer.exe)gcc-arm-none-eabi-10-2020-q4-major (arm-none-eabi-gdb.exe) 使用说明 vscode通过TCP端口调用JLinkGDBServer通过jlink连接和操作设备,vscode不…...

微前端实战:打造高效、灵活的前端应用架构
文章目录 一、微前端简介二、微前端的优势1. 高度模块化2. 独立部署3. 易于扩展4. 技术栈无关5. 独立升级 三、微前端的原理四、微前端案例思路《微前端实战》编辑推荐内容简介作者简介目录前言/序言 随着互联网行业的快速发展,前端应用的规模和复杂度也在不断增加。…...

csv文件EXCEL默认打开乱码问题
这里讨论的问题是,当用记事本打开带有中文字符的csv正常时,用excel打开却是乱码。 简单概括就是:编码问题,windows的 excel打开csv文本文件时,默认使用的是系统内的ANSI,在中文环境下就是GB2312。如果写文件…...
C语言之实现贪吃蛇小游戏篇(2)
目录 🎇测试游戏test.c 🎇游戏头文件包含&函数声明snake.h 🎇游戏实现snake.c 🎇测试游戏test.c #define _CRT_SECURE_NO_WARNINGS 1 #include "snake.h" void test() {int ch 0;do{Snake snake { 0 };//创建…...

Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...

CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...

QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...