数据库第三章(SQL)

目录

1.SQL语言

索引


1.SQL语言

sql语言是个非过程性语言

sql的特点

1.综合统一,把增删查改都统一了起来

2.高度非过程化,不关心过程

3.面向集合的操作方式

sql基本语法

drop是删除表

delete是删除表的某个元组  

安全方面:grant授权   revoke收回权力

基本表

存储文件

视图view:是个虚表,是从一个表中或者多个表中导入出来的表,并不存真正的数据 ,修改视图就相当于修改基本表

索引index:是为了加快查询速度的 

模式

定义模式

create schema "s-t" authorization wang;

 删除模式
drop schema s-t cascade/restrcit          

cascade连坐删除

restrict 限制删除,先把子孙的表都删完

基本表

 create table studnet(Sno int,primary key ,Sname varchar(50) UNIQUE);

如何建立外键约束? 

 create table studnet(Sno int,primary key ,Sname varchar(50) UNIQUE,Grade int

       foreign key(Grade) references SC(Grade)                 );

修改表结构,注意是Mysql

给表加个字段Sage

alter table Student add column  Sage int;

改变表的字段类型

alter table Student modify column Sage varchar(20);

删除表

当表被引用的时候不能普通删除,只能级联删除。引用包括,不能有视图,不能有触发器,不能有存储过程或函数。


索引

索引的创建和删除

CREATE INDEX index_name
ON table_name (column1, column2, ...)
 

create unique index SuoYin on Student(Sno,....);

修改索引的名字

alter index SuoYin rename to sy;

数据字典:数据字典是DBMS中的系统表,它记录了数据库中的所有定义信息

查询语句

distinct  独一无二的

在SQL中它是去重

条件查询

in (A,B,C)

like模糊匹配 通配符%和_  %标识任意[0,∞]长度  _标识[1,1]长度 

查询排序

order by  grade desc/asc

desc 下降 descend

asc上升 ascend

聚合函数

 聚合函数通常和group by协助 进行分组 

先根据Cno分组 在count数每个Cno里的Sno的个数(也就是学生个数) 

select Cno ,count(Sno) from sc group by Cno;

关键词 每个,各个

如果在对分组的进行条件筛选用having

selct Cno ,count(Sno) from sc group by Cno having Count(Sno)>30

 group by 用having来筛选不用where

多表连接

多表查询如果直接用

select * from Student,SC直接笛卡尔积的话会产生许多无效数据。需要用where筛选

select * from Student,SC where Student.Sno=SC.sno但是这样的话得到的表的字段有一个学号是重复的 

就需要改一下 把select* 改为 

结果

嵌套查询

查询选秀了2号课程的学生的姓名

分析:只根据2号课程从SC表查不出来姓名 需要联合Student表和SC表

select Sname from Student where Sno in ( select Sno from SC where Cno=2);

存在exists

这个比较难理解 需要转好几圈,建议看视频学

集合查询

并集Union

交集 intersect

差集 except

数据插入/更新

insert into Student (key,...)values (value,....)  键值对要对应上

更新

update Student set sage=80 where sno='123456';

update student set sage=sage+1;

删除元组

delete from student where sname='zhangsan'

视图

视图是个虚表 ,它真正的数据还是在基本表上的 

create view ShiTu Student  as  

select column1,column2 from student Where .....;

eg:

CREATE VIEW view_students AS
SELECT name, age
FROM students
WHERE age >= 18;

with check option 防止用户乱操作 

并不是所有视图都能够更新,只有包含主键的行列子集视图才能更新

删除视图

drop view view_name cascade

视图的作用

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

EXCEL函数笔记1(数学函数、文本函数、日期函数)

数学函数 取整:INT(number) 取余:MOD(number,除数) 四舍五入:ROUND(number,保留几位小数) 取绝对值:ABS(number) 根号处理:SQRT(number) 0到1随机数:RAND(&am…

【机器学习】十大算法之一 “朴素贝叶斯”

作者主页:爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typeblog个…

【LeetCode】每日一题 -- 1171. 从链表中删去总和值为零的连续节点 -- Java Version

题目链接:https://leetcode.cn/problems/remove-zero-sum-consecutive-nodes-from-linked-list/ 1. 题解(1171. 从链表中删去总和值为零的连续节点) 2021年字节二面真题 1.1 暴力解法:穷举 时间复杂度 O(n2),空间复杂…

【论文】attention is all you need

重点在第三节 attention is all you need摘要1. 绪论2. 背景3. 模型架构3.1 编码器和解码器堆叠 3.2 注意力3.2.1 缩放点积注意力(Scaled Dot-Product Attention)3.2.2 多头注意力机制3.2.3 模型中注意力的应用 3.3 职位感知前馈网络(Positio…

前端中间件Midway的使用

一、 关于midway1. 解决什么痛点2. 期望达到什么效果 二、创建应用并使用1. 创建midway应用2. 认识Midway2.1 目录结构2.2 Controller2.3 路由2.4 获取请求参数2.5 Web中间件2.6 组件使用2.7 服务(service) 三、写到最后 一、 关于midway Midway 是阿里巴巴 - 淘宝前端架构团队…

基于深度学习的高精度安全背心检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于深度学习的高精度安全背心检测识别系统可用于日常生活中或野外来检测与定位安全背心目标,利用深度学习算法可实现图片、视频、摄像头等方式的安全背心目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5…

微服务: 01-rabbitmq的应用场景及安装(docker)

目录 1. rabbitmq前言简介: 1.1 RabbitMQ的几个重要作用: -> 1.1.1 解耦: -> 1.1.2 异步通信: -> 1.1.3 流量削峰: -> 1.1.4 消息传递的可靠性和持久性: 2. rabbitmq的安装(docker版) -> 2.1 …

SpringMVC 学习整理

文章目录 一、SpringMVC 简介1.1 什么是MVC1.2 什么是Spring MVC1.3 Spring MVC的特点 二、SpringMVC 快速入门三、RequestMapping注解说明四、SpringMVC获取请求参数4.1 通过ServletAPI获取请求参数4.2 通过控制器方法的形参获取请求参数4.3 通过RequestParam接收请求参数4.4 …

Rust语言从入门到入坑——(2)Rust在windows上搭建开发环境

文章目录 0 引入1、搭建 Visual Studio Code 开发环境1.1、安装 Rust 编译工具1.2 、VS Code安装 2、官网在线3、总结4、引用 0 引入 开始搭建一个适合在windows上运行的Rust环境。 Rust支持的程序语言很多:可详见官网介绍 1、搭建 Visual Studio Code 开发环境 …

[架构之路-211]- 需求- 软架构前的需求理解:ADMEMS标准化、有序化、结构化、层次化需求矩阵 =》需求框架

目录 前言: 一、什么是ADMES: 首先,需求是分层次的: 其次,需求是有结构的,有维度的 再次,不同层次需求、不同维度需求之间可以相互转化(难点、经验积累) 最终,标准…

【雕爷学编程】Arduino动手做(114)---US-015高分辨超声波模块

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…

Floyd 判圈算法(Floyd Cycle Detection Algorithm)

Floyd 判圈算法(Floyd Cycle Detection Algorithm) 前言 Floyd判圈算法属于对指针操作的算法,它一般需要且仅需要两个指针,通过设定不同的指针移动速度,来判定链表或有限状态机中是否存在环。人为规定移动较快的指针称为快速指针(fast poin…

给初级测试工程师的一些避坑建议

我遇到的大多数开发人员都不怎么热衷于测试。有些会去做测试,但大多数都不测试,不愿意测试,或者勉而为之。我喜欢测试,并且比起编写新的代码,愉快地花更多的时间在测试中。我认为,正是因为专注于测试&#…

【Turfjs的java版本JTS】前面讲了Turfjs可以实现几何计算,空间计算的功能,如果后端要做这项功能也有类似的类库,JTS

JTS Java Topology Suite 几何计算: 1. 前端js就用这个 Turfjs的类库。参考网站: 计算两线段相交点 | Turf.js中文网 2. 后端java语言就可以用 JTS这个类库,参考网站: JTS参考网站: 1. https://github.com/locatio…

Windows11 安装 CUDA/cuDNN+Pytorch

一、准备工作: 查看torch版本:进入python交互环境: >>>import torch >>>torch.__version__ 查看cuda版本:CMD窗口 nvcc --version 如果版本不一致,需要卸载再重装。 二、安装 Windows 安装 CU…

unity制作愤怒的小鸟

文章目录 一、 介绍SpringJoint2D 、line renderer制作发射绳基类bird脚本的基础功能给bird添加飞行拖尾效果pig类游戏胜利的小星星烟花界面摄像机跟随移动游戏失败的界面多种小鸟的制作:黄鸟、绿鸟、黑鸟地图选择关卡选择数据保存制作多个关卡场景异步加载游戏全局…

go 调试利器之pprof指标分析

文章目录 概要一、指标类型1.1、堆栈指标1.2、CPU指标分析1.3、http-pprof 二、go tool pprof2.1、可视化2.2、CPU火焰图 概要 Go语言原生支持对于程序运行时重要指标或特征进行分析。pprof是其中一种重要的工具,其不仅可以分析程序运行时的错误(内存泄…

绕过激活锁 ,拯救一台旧手机iphone

一台旧的iphone忘了apple id账号和密码了,导致锁住了 某宝上解锁要花50, 不是舍不得花钱,作为一个搞技术的,实在觉得花钱有点丢人 经过一番探索 最终确定了有用的流程 并贴出来 亲测可用 最终实现了趟再床上就可以打卡 1、 刷机 …

【软件测试】性能测试服务端—排查指标问题(详细)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 软件性能测试的目…

node安装后的全局环境变量配置

安装node时,位置最好不要装在c盘,这里,我在D盘下创建了文件夹"node",安装地址选择在该文件夹下 一直next,直到安装结束,打开"node"文件夹,安装完后,里面的配置…