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

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】主数据文件&#xff1a;数据库的启动信息。扩展名为".mdf"。 【2】次要&#xff08;辅助&#xff09;数据文件&#xff1a;主数据之外的数据都是次要数据文件。扩展名为".ndf"。 【3】事务日志文件&#xff1a;包含恢复数据库的所有事务…...

Linux C语言 30-套接字操作

Linux C语言 30-套接字操作 本节关键字&#xff1a;C语言 网络通信、套接字操作、TCP、UDP、服务端、客户端 相关C库函数&#xff1a;socket, bind, listen, accept, setsockopt, recv, send, recvfrom, sendto, close 什么是网络通信&#xff1f; 通信是人与人之间通过某种…...

RPC和REST对比

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

外包干了2年,技术退步明显。。。

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

深度学习——第1章 深度学习的概念及神经网络的工作原理

1.1 序言——探索智能机器 千百年来&#xff0c;人类试图了解智能的机制&#xff0c;并将它复制到思维机器上。 人类从不满足于让机械或电子设备帮助做一些简单的任务&#xff0c;例如使用滑轮吊起沉重的岩石&#xff0c;使用计算器做算术。 人类希望计算机能够自动化执行更…...

爬虫爬取百度图片、搜狗图片

通过以下代码可以爬取两大图片网站&#xff08;百度和搜狗&#xff09;的图片&#xff0c;对于人工智能、深度学习中图片数据的搜集很有帮助&#xff01; 一、爬取百度图片 该代码可以爬取任意百度图片中自定义的图片&#xff1a; import requests import re import time imp…...

Android Camera2使用

一 简介 1.1 Camera API&#xff1a; 这是旧版本的相机API&#xff0c;也称为Camera1 API。它提供了较简单的使用方式&#xff0c;适用于旧版Android设备。但它存在一些限制&#xff0c;如性能不佳、操作复杂等 1.2 Camera2 API&#xff1a; 这是新版本的相机API&#xff0…...

IOS/安卓+charles实现抓包(主要解决证书网站无法打开问题)

安装 官网下载 https://www.charlesproxy.com/latest-release/download.do 安装charles文档 流程 上述链接解决下图问题 使用介绍 Charles介绍 上述链接看一至三即可&#xff0c;了解首页各个按钮的作用 charles全面使用教程及常见功能详解&#xff08;较详细&#xff09…...

七、Lua字符串

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

0基础学java-day13

一、包装类 1. 包装类的分类 1) 针对八种基本数据类型相应的引用类型【对象】—包装类 2) 有了类的特点&#xff0c;就可以调用类中的方法。 3) 如图: 2 包装类和基本数据的转换 3 案例演示 Integer01.java package com.hspedu.wrapper;/*** author 林然* version 1.0*/ p…...

好题记录:

好题记录&#xff1a; 1:2:3&#xff1a;三级目录 1: 下面代码的结果是&#xff1a;&#xff08; &#xff09; 下面代码的结果是&#xff1a;&#xff08; &#xff09;#include <stdio.h> int main() {int arr[] {1,2,3,4,5};short *p (short*)arr;int i …...

web前端之JavaScrip中的闭包

MENU 闭包--笔试-11defineReactive函数&#xff0c;利用闭包封装Object.defineProperty()闭包--节流函数--笔试-10闭包的定义JavaScript闭包的9大经典使用场景 闭包–笔试-11 function fun() { var n 9; // js 中强行给一个未声明的变量赋值&#xff0c;// 程序不会报错// 并…...

Windows下命令行启动与关闭WebLogic的相关服务

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

LeetCode Hot100 169.多数元素

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

数据结构:堆的实现思路

我们之前写过堆的实现代码&#xff1a;数据结构&#xff1a;堆的实现-CSDN博客 这篇文章我们了解一下堆到底是如何实现的 1.堆向下调整算法 现在我们给出一个数组&#xff0c;逻辑上看做一颗完全二叉树。我们通过从根节点开始的向下调整算法可以把它调整成一个小堆 向下调…...

结合 DBSCAN 示例代码介绍 DBSCAN

前文为JoyT的科研之旅第一周——科研工具学习及论文阅读收获-CSDN博客 DBSCAN 介绍 DBSCAN&#xff08;Density-Based Spatial Clustering of Applications with Noise&#xff09;是一种基于密度的聚类算法&#xff0c;它能够识别出任意形状的簇&#xff0c;并有效地处理噪声…...

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连接和操作设备&#xff0c;vscode不…...

微前端实战:打造高效、灵活的前端应用架构

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

csv文件EXCEL默认打开乱码问题

这里讨论的问题是&#xff0c;当用记事本打开带有中文字符的csv正常时&#xff0c;用excel打开却是乱码。 简单概括就是&#xff1a;编码问题&#xff0c;windows的 excel打开csv文本文件时&#xff0c;默认使用的是系统内的ANSI&#xff0c;在中文环境下就是GB2312。如果写文件…...

C语言之实现贪吃蛇小游戏篇(2)

目录 &#x1f387;测试游戏test.c &#x1f387;游戏头文件包含&函数声明snake.h &#x1f387;游戏实现snake.c &#x1f387;测试游戏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) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

<6>-MySQL表的增删查改

目录 一&#xff0c;create&#xff08;创建表&#xff09; 二&#xff0c;retrieve&#xff08;查询表&#xff09; 1&#xff0c;select列 2&#xff0c;where条件 三&#xff0c;update&#xff08;更新表&#xff09; 四&#xff0c;delete&#xff08;删除表&#xf…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架&#xff0c;相比 MapReduce 具有以下核心优势&#xff1a; 内存计算&#xff1a;数据可常驻内存&#xff0c;迭代计算性能提升 10-100 倍&#xff08;文档段落&#xff1a;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.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

QT: `long long` 类型转换为 `QString` 2025.6.5

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