Sql server 期末知识点复习

2023-10-29

**数据库基础概念:
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


数据库基本概念

一、第一章概念知识复习

1.数据库。数据库(DB)database 是存放数据的仓库,这些数据存在一定的关联,并按照一定的格式存放在计算机内。
2.数据库管理系统:简单的来说数据库管理系统(DBMS,软件 SQL server,My Sql),数据库系统管理人员通过对DBMS对数据库进行管理。
3.数据库系统:由数据库,数据库管理系统,应用程序,数据库管理成员组成*,即 DBS=DB+DBMS+应用程序+DBA
4.数据库系统的三层模式结构:外模式,模式,内模式
模式:也称为逻辑模式,是数据库中全体数据的逻辑结构和特征的描述。
外模式:子模式/用户模式,一个数据库可以由多个外模式,数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述。
内模式:存储模式,一个数据库只有一个内模式,是数据物理结构和存储方式的描述。
是一组具有相应数据类型的值的集合(我个人理解有点像我们之前学过的编程语言的数组一样)。
候选码某一属性的值能唯一标识一个元组,其子集不能。
主码在候选码中选定一个作为主码(只允许有一个主码)。
主属性候选码的属性叫做主属性,非主属性就是不是候选码的属性,也叫非码属性。
全码:关系模式中,所有属性都是候选码,都是主属性。

二、数据库创建,数据库及数据库对象


数据库是一个容器,里面包含了许多数据库对象。
:表是存放数据及表示关系的主要形式,是最主要的数据库对象。
视图:视图由一个或多个视图和基本表生成的引用表(虚表)。视图所对应的数据不进行实际存储,是一个虚表,视图一经定义就可以像表一样被查询,修改,输出和更新。
视图的优点:
1.为用户集中数据,简化用的数据查询和处理,视图可将分散在多个表中的数据集中在一起。
2.屏蔽数据库的复杂性
3.简化用户权限的管理,只需要授予用户使用视图的权限。
4.便于数据共享
5.可以重新组织数据以便输出到其他应用程序中。
!!!!需注意的:
(1):只能在当前数据库中创建视图,视图的命名规则必须遵循标识符命名规则,不能与表同名。
(2).不能把规则,默认值,或触发器与视图相关联。

SQL功能 关键字
数据查询 select
数据定义 create,drop,alter
数据操纵 insert,update,delete
数据控制 create,remove

创建模式
要求是在一个数据库名下创建,默认模式名是 dbo。
create schema 模式名 authorization 用户名—>模式下还可以定义


删除模式
drop schema 模式名 cascade|restrict


创建表
create table 表名
(列名,数据类型,列级完整性约束,…)


修改表(添加新元素)
alter table 表名
add 新列名 数据类型 约束条件。
(add 添加的是表记完整性约束。)


drop 列名
alter column 列名 数据类型 ------>修改列属性


删除表:drop table 表名


建立索引:create unique|cluster index 索引名
unique:每一个索引值对应一个唯一的数据记录。
cluster:聚簇索引。
修改索引:alter index 旧索引名 rename to 新索引名
删除索引:drop index 索引名


创建约束(列级约束 and 表级约束)
下面根据课本上的三个表脚本创建的,sc,sno,cno。
1.列级约束创建
create table sc(
sno varchar(10) references s.test .student(sno),
constraint PK(约束名) primary key(sno)

2表级约束
create table sc(
sno varchar(10),
cno varchar(3),
grade int,

constraint PK_2 primary key(sno,cno),
constraint Fk_1 foreign key(sno) references s.test.student(sno),
constraint FK_2 foreign key(cno) references s.test.course(cno)
)


数据查询
select <all|distinct> 目标列 from 表名 distinct去重。
select * from 表明,查询全部表的全部列信息
查询满足条件的元组:用到where 子句
select * from 表名 where 查询条件
请添加图片描述
例如:查询男生学生的姓名
请添加图片描述


字符匹配:like
查询姓孙的学生信息
在这里插入图片描述

查询姓王,且名字为2位的学生的信息:
这里单引号里面,如果数据库为ASCII编码则需要俩个_,GBK编码只需要一个_。
![在这里插入图片描述](https://img-blog.csdnimg.cn/5656793c1535476ba743e939129b1d35.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAU1FuYW5hbmFuYQ==,size_20,color_FFFFFF,t_70,g_se,x_16


查询备注为空的学生信息:
在这里插入图片描述


AND表并且,OR表或者,可以用来连接多个条件。
排序:ORDER BY:按照某列属性的值对数据进行排序,默认是升序(ASC),ASC升序,DESC为降序。
按照总学分进行降序排列:
在这里插入图片描述

order by 和where 和group by 之间可以联合使用,
select * from 表名 where 条件 group by 列名 order by 列名。

在这里插入图片描述
分组:group by
将查询到的结果按照一列或者多列的值分组,值相等为一组。
查询课程号及选课人数。
在这里插入图片描述
嵌套查询:在查询中不能增加order by 语句
exists:带有exists谓词的子查询不返回任何数据,只产生逻辑真值ture和逻辑假值false
–查询所有选修了课程号10开头的学生的姓名

在这里插入图片描述


集合查询:
集合操作主要包括并操作union,交叫做intersect,差操作except


**数据更新:数据更新包括数据的插入,修改,删除
数据的插入:数据的插入通常有俩种形式,一种是插入元组,另一种是插入子查询结果。
1.insert into 表名 [插入的属性] values <插入对应属性列数值>;不写属性列默认为全部属性。
2.insert into <表名>[属性列]子查询
**
例子:将xsb中年龄大于18的插入到students表中
insert into xsb(name,age) select name,age from xsb where age>18;

数据修改:
update 表名 set<列名>=<表达式值>[where <条件>]
修改一个元组的值:
将姓名为程明的出生日期改为2000年01,01

在这里插入图片描述
例子:修改多个元组的值:将所有学生的成绩加5分
在这里插入图片描述
通过子查询进行数据的修改:
将所有男生的成绩全部置0

在这里插入图片描述
数据删除
delete from <表名> where <条件>。
删除多个元组的值
delete from <表名>删除表中的所有数据,清空表带子查询的删除语句。


视图操作:
视图:
1.可以用来简化用户的操作
2.让用户以多种角度看待同一数据
3.对重构数据库提供了一些逻辑独立性
4.能够对机密数据提供安全保护
5.更清晰的表达查询

创建视图:
create view <视图名>[<列名>] as<子查询>[with check option]
子查询可以是任意的select语句。
with check option 表示对视图进行更新操作的行满足视图定义的谓语条件(子查询的条件表达式)。

删除视图:drop view<视图名>[cascade],查询视图student((和表的操作类似)
select * from student where age>18
视图的更新和表的更新类似,增加,修改,删除,语法也相同,注:并不是所有的视图都可以更新。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Sql server 期末知识点复习 的相关文章

  • 将两个表合并为一个输出

    假设我有两张表 已知营业时间 ChargeNum CategoryID Month Hours 111111 1 2 1 09 10 111111 1 3 1 09 30 111111 1 4 1 09 50 222222 1 3 1 09
  • 获取在任何日期创建的表的列表?

    我遇到了这样的情况 我想查找我在 2012 年 9 月 14 日 2012 年 9 月 14 日 在 sql server 上创建的表 是否有任何查询会列出在此日期创建的这些表 SELECT FROM sys tables WHERE cr
  • Java、Oracle 中索引处缺少 IN 或 OUT 参数:: 1 错误

    您好 我使用 Netbeans 8 0 2 和 Oracle 11g Express Edition 在 JSF 2 2 中编写了一个图书馆管理系统 我有几个名为 书籍 借阅者 等的页面 以及数据库中一些名为相同名称的表 我的问题是这样的
  • Oracle SQL 函数中可以有 commit 语句吗

    在 SQL 函数中使用 COMMIT 语句是否可能 有意义 从技术上来说 答案是肯定的 你can请执行下列操作 create or replace function committest return number as begin upd
  • 将布尔参数传递给 SQL Server 存储过程

    我早些时候问过这个问题 我以为我找到了问题所在 但我没有 我在将布尔参数传递给存储过程时遇到问题 这是我的 C 代码 public bool upload false protected void showDate object sende
  • 插入记录后如何从SQL Server获取Identity值

    我在数据库中添加一条记录identity价值 我想在插入后获取身份值 我不想通过存储过程来做到这一点 这是我的代码 SQLString INSERT INTO myTable SQLString Cal1 Cal2 Cal3 Cal4 SQ
  • 更改mysql数据库表中的日期格式

    大家早上好 只是一个简单的问题 在我现有的 MySql 数据库中 我几乎没有包含日期 的列 目前这些是年 月 日格式 但现在我需要将其全部更改为年 月 日格式 我试过了select date format curdate d m Y 但它不
  • 从 call_log 中获取最大并发通话数

    我需要帮助在 MySQL 5 0 77 中编写一个查询 根据下面所示的数据 办公室一天的通话量 返回并发电话呼叫的峰值数量 我只是想知道一天中任何特定时间同时打电话的人数最多是多少 首先 这是 MySQL 表 CREATE TABLE ca
  • SQL Server 2008。允许远程连接吗?

    我在 Windows XP Pro 机器上安装了 SQL Server 2000 和 2008 我可以在本地连接到两个数据库实例 从另一个机器 Windows 7 机器 中 我可以连接到第一个机器上的 SQL 2000 实例 但无法使用本地
  • postgresql 不同的不工作

    我使用以下代码从数据库获取值 但是当我编写这段代码时 测试看看问题出在哪里 我注意到查询没有从数据库中获取不同的值 这是查询 select distinct ca id as id acc name as accName pIsu name
  • SQL Server使用in关键字传递字符串数组查询

    我认为 IN 子句不能接受具有多个值的绑定参数 Oracle 不能 需要几分钟 查询是 declare setting varchar max set setting Sales Entry Grid Cursor Customer Man
  • 如果 Oracle SQL 中存在视图,则删除视图[重复]

    这个问题在这里已经有答案了 我是 Oracle 数据库系统的新手 Oracle 12c 中以下 SQL 语句的等效项是什么 DROP VIEW IF EXIST
  • 如何创建没有循环关系的树形表?

    CREATE TABLE TREE node1 id UUID REFERENCES nodes object id NOT NULL node2 id UUID REFERENCES nodes object id NOT NULL CO
  • Microsoft SQL:CASE WHEN 与 ISNULL/NULLIF

    除了可读性之外 在防止 SQL 中的除以 0 错误时 使用 CASE WHEN 语句与 ISNULL NULLIF 相比还有什么显着的好处吗 CASE WHEN BeginningQuantity BAdjustedQuantity 0 T
  • Ruby ActiveRecord 和 sql 元组支持

    ActiveRecord 是否支持 where 子句中的元组 假设底层数据库支持 结果 where 子句看起来像这样 where name address in John 123 Main St I tried Person where n
  • 如何在 SQL Server 中不循环更新列?

    出于性能角度的考虑 我只需要删除循环并使用一些联接或其他解决方案来更新 Result 表中的数据并获得循环返回的相同结果 标量函数 CREATE FUNCTION MultiplyerScl a INT b INT RETURNS INT
  • SQL服务器超时

    我的应用程序是在经典 asp 上开发的 但也使用 asp net 因为我正在将应用程序迁移到 Net 上 它使用 SQL Server 作为数据库并托管在 Windows Server 2003 上 现在的问题是应用程序在很长一段时间内继续
  • 从 MS Access 调用存储过程会导致错误 3146

    当我使用下面所示的代码从 MS Access 前端调用 SQL Server 存储过程时 它停止运行并抛出运行时错误 3146 这个存储过程在 SQL Server 中工作正常 但是当我从 MS Access 运行时 它首先工作 但突然停止
  • 总和和不同不会改变结果?

    我是一个新手 试图在这里解决这个问题 到目前为止还没有运气 非常感谢任何帮助 Select Distinct AB agency no ab branch no AS AGENCY BRANCH count AB agency no ab
  • 多边形内的 SQL 地理点在 STIntersect 上不返回 true(但使用 Geometry 返回 true)

    我不想仅仅为了在 STIntersect 中返回 true 而将地理数据转换为几何图形 下面是 SQL 中的代码 DECLARE point GEOGRAPHY GEOGRAPHY Point 1 1 4326 DECLARE polygo

随机推荐

  • Unity 处理mono内存(堆内存)泄露问题

    先讲解一下mono特性 一个很重要的信息 mono内存从系统里面申请的内存不会返回给系统 mono内存不足的时候会预申请内存 内存大小不定有可能10m有可能5m 最近优化一个mono内存泄露问题 引起mono一直撑大多数都是内存泄露 要不就
  • ArrayBlockingQueue和LinkedBlockingQueue

    ArrayBlockingQueue ArrayBlockingQueue是一个用数组实现的有界阻塞队列 其是线程安全的 内部通过 互斥锁 保护竞争资源 此队列按照先进先出 FIFO 的原则对元素进行排序 队列的头部是在队列中存在时间最长的
  • el-tabs组件切换之前拦截函数异常踩坑记录

    背景 产品需求在离开当前tab之前要对页面填写信息进行校验 若没有任何改动则可以直接切换tab 若有改动 则需要在跳转之前进行拦截 提示用户 当前页面信息未保存 确定离开吗 确定或取消由用户选择 代码实现
  • 逆向工程核心原理——DLL注入——创建远程线程

    什么是DLL注入 dll注入是一种将Windows动态链接库注入到目标进程中的技术 具体的说 就是将dll文件加载到一个进程的虚拟地址空间中 对某个进程进行dll注入 也就意味着dll模块与该进程共用一个进程空间 则这个dll文件就有了操纵
  • 可变频率正弦信号发生器的FPGA实现(Quartus)

    一 说明 实现平台 Quartus17 1 MATLAB2021a和Modelsim SE 64 10 4 二 内容 1 产生一个完整周期的正弦波信号 并保存为 mif文件 2 设计一个ROM 将正弦波信号文件初始化如该ROM中 3 设计一
  • 内存分配---kmalloc

    kmalloc 内存分配引擎是一个功能强大的工具 下面我们来讲解一下这个函数 Kmalloc 函数分配内存时有几个特点 1 获取内存空间时不会对内存空间进行清零 也就是说 分配给它的区域仍然保持着原有的数据 2 它分配的区域在物理内存中也是
  • Ubuntu中火狐浏览器Firefox打不开网页

    浏览器地址栏输入 about config 搜索 general useragent override 无则新建 输入字符串 Mozilla 5 0 X11 Linux x86 64 AppleWebKit 537 36 KHTML lik
  • 2021-09-02防火墙和CDN、Ajax跨域

    欢迎大家一起来Hacking水友攻防实验室学习 渗透测试 代码审计 免杀逆向 实战分享 靶场靶机 求关注 CDN 内容分发网络 Content Delivery Network 简称CDN 是建立并覆盖在承载网之上 由分布在不同区域的边缘节
  • 如何查看mac系统是32位还是64位的操作系统

    一 点击工具栏左上角点击 苹果Logo 标志 关于本机 gt 更多信息 gt 系统报告 gt 左侧栏中 软件 二 打开终端 输入命令 uname a 回车 x86 64 表示系统为64位 i686 表示系统32位的 比如我的 三 在终端输入
  • js实现模糊搜索

    功能一 关键字搜索 总结 1 搜索出的结果 前台先要清空原有表格 tbody empty 2 后台返回的json格式字符串 js eval 专成对象var stus eval msg 在循环进行字符串拼接到表格上 tbody html st
  • Ubuntu上vsftpd安装与多用户目录配置

    vsftpd安装与多用户目录配置 文章配置使用Ubuntu进行配置 CentOS系统的配置也是大同小异 主要理解虚拟用户的加载方式和权限目录的配置 配置目标 在 home vsftpd 目录下有3个子目录分别为folder1 folder2
  • 二叉搜索树的建立和排序

    二叉搜索树的建立和排序 今天面了一家自研 有一道二叉搜索树的题目 但是自己做的不好 就是有几个学生和成绩 使用树来存储 左子树大于等于root 右节点小于root package org example public class Main
  • 《Apache MINA 2.0 用户指南》第二章:基础知识

    最近准备将Apache MINA 2 0 用户指南英文文档翻译给大家 但是我偶然一次百度 发现 Defonds 这位大牛已经翻译大部分文档 原文链接 http mina apache org mina project userguide c
  • LAN9252芯片控制资料

    一 整个ethercat项目开发流程 通过STM32相关学习板 理解EtherCAT协议栈和通信步骤 根据项目需求构建XML 该XML将会由TwinCAT2解析 将相关特STM32程序烧写 修改应用层协议的程序 STM32作为SPI主模式与
  • Faiss流程与原理分析

    1 Faiss简介 Faiss是Facebook AI团队开源的针对聚类和相似性搜索库 为稠密向量提供高效相似度搜索和聚类 支持十亿级别向量的搜索 是目前最为成熟的近似近邻搜索库 它包含多种搜索任意大小向量集 备注 向量集大小由RAM内存决
  • 华为机试题--坐标移动

    题目描述 开发一个坐标计算工具 A表示向左移动 D表示向右移动 W表示向上移动 S表示向下移动 从 0 0 点开始移动 从输入字符串里面读取一些坐标 并将最终输入结果输出到输出文件里面 输入 合法坐标为A 或者D或者W或者S 数字 两位以内
  • 机器学习——从0开始构建自己的GAN网络

    目录 一 前言 二 生成式对抗网络GAN 三 GAN的训练思路 四 数据集 Chinese MNIST 五 代码 python 1 文件展示 2 代码 一 数据预处理 3 代码 二 生成器的构建 4 代码 三 判别器的构建 5 代码 四 图
  • Python 模块手动制作发布压缩包_安装

    1 创建setup py from distutils core import setup setup name my msg version 1 0 description 发送信息和接受信息 long description hlx 完
  • 【CubeMX配置STM32驱动MPU6050】

    CubeMX配置STM32驱动MPU6050 包含DMP 并且在0 96寸OLED上显示 一 使用CubeMX进行相关配置 1 配置OLED的IIC接口 OLED的具体使用方法我就不细说了 我前面的文章里面有讲OLED的 如果有需要可以去看
  • Sql server 期末知识点复习

    数据库基础概念 提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 数据库复习知识 数据库基本概念 一 第一章概念知识复习 二 数据库创建 数据库及数据库对象 数据库基本概念 一 第一章概念知识复习 1 数据库 数据库 DB