SQL数据库防挂科

news2024/11/23 23:49:33

注:本篇文章的图片等内容来自B站UP主:编程张无忌

一、绪论

二、关系数据库

三、SQL上

1、模式的定义和删除

单纯定义一个模式:  create schema "S-T" authorizationg WANG

定义模式+ 表/视图/授权  任意一个来描述(创建一个table为例)

create schema "Learn" authorizationg xxx 

create talble user

(

        id int primary key,

        age int,

        name varchar(255)

);

 drop schema xxx  CASCADE/RESTRICT  cascade/restrict(是否强制删除子部分)

2、表的定义/删除/修改

alter table test

add email varchar(255);

3.8  alter table Student

add S_entrance DATE;

3.9  alter table Student 

alter column Sage int;

  3、索引的建立/删除/修改

 create unique/cluster index  Stu_sno_index on Student(Sno);

alter index SCno rename to SCSno;

drop index Stusname; 

四、SQL中

  1、查询所有/部分列

 

select * from Student;  等价于

selectSno,Sname,Ssex,Sage,Sdept from Student; 

2、起别名

 as后面可以起别名,且as可以省略

select id 标志,title 课程名字 from edu_course;

select id as 标志,title as 课程名字 from edu_course;

 3、结果去重

select title 课程名字 from edu_course;

select distinct title 课程名字 from edu_course;

4、查询结果加条件 

select title 课程名字 from edu_course where price>=2; 

select title 课程名字 from edu_course where price!=2;

select title 课程名字 from edu_course where price between 0 and 2; 

select 1 in (1,2);  select  3  in (1,2);

返回  bool  ,查询是否在集合中.

 select * from edu_course where title like '%速成';

 select * from edu_course where title like '_ysql速成';

 查询是否为空

select * from user where username is null;

多重条件查询

select * from user where id=3 and password=123;

5、聚集函数的使用 

 6、分组查询group by

select teacher_id from edu_course group by teacher_id having teacher_id =1;

(select t_id from ec group by t_id having t_id =1;)

分组查询不能用where,要使用having

7、连接

之前说过,两个表中的同名列id可以连接起来 

 单纯的连接两个表,即得到两个表的笛卡尔积

select * from edu_course ec,edu_course_description ecd (两个表的笛卡尔积)

select * from edu_course ec,edu_course_descrtion ecd where ec.id=ecd.id;(id相等的做笛卡尔积)

自身连接

select * from edu_course ec1,edu_course ec2 where ec1.id=ec2.id;

外连接 

假设左边的个数11大于右边10的。

左:左边有几个最终有几个11,其中右边没有的,但左边有(应该被舍弃的)的变为NULL

右:右边有几个最终有几个10,不用舍弃。

内连接:10

 左(外)连接

外连接条件不能用where,需要用on 

select * from edu_course ec left outer join edu_course_des..  ecd  on  ec.id=ecd.id;

右(外)连接

select * from edu_course ec right outer join edu_course_des..  ecd  on  ec.id=ecd.id;

内连接

select * from edu_course ec join edu_course_des.. ecd  on ec.id = ecd.id;

8、多表查询

 select * from edu_course ec,edu_course_description ecd,edu_chapter ech 

where ec.id=ecd.id  and  ec.id=ech.id;

9、嵌套查询

 select * from edu_course ec where teacher_id in

(select * from edu_course where teacher_id=10 or teacher_id=0);

10、带有any/all的子查询

 区别于  in+子查询

 select * from ec where price>ANY

(select price from ec where price<10);

11、带exists的子查询

select Sname from Student

where NOT EXISTS

        select * from Course where NOT EXISTS

        (

                select * from sc where Sno=Student.Sno  and Cno=Course.Cno

        )

12、集合查询

 

 union   intersect    except

五、SQL下

 insert into stu values (null,'qq',21,'m','lamp99');

update stu set name='kunkun',age=25,sex='secret'  where id = '坤坤' 

delete from stu whre  id=100;

视图

 

 create view is_stu

as

select * from Student where Sdept='IS';

 (with option是在写的时候,检查是否满足select条件,避免脏数据)

脏数据:不满足条件的,反而也被添加的表中了

删除

六、数据库安全性

七、数据库的完整性

目录

一、绪论

二、关系数据库

三、SQL上

1、模式的定义和删除

2、表的定义/删除/修改

  3、索引的建立/删除/修改

四、SQL中

  1、查询所有/部分列

2、起别名

 3、结果去重

4、查询结果加条件 

5、聚集函数的使用 

 6、分组查询group by

7、连接

8、多表查询

 

五、SQL下

六、数据库安全性

七、数据库的完整性


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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

22JS13——简单类型与复杂类型

文章目录 一、简单类型与复杂类型二、堆和栈三、简单类型的内存分配四、复杂类型的内存分配五、简单类型传参六、复杂类型传参 目标&#xff1a; 1、简单类型与复杂类型 2、堆和栈 3、简单类型的内存分配 4、复杂类型的内存分配 5、简单类型传参 6、复杂类型传参 一、简单类型与…

selenium爬虫运行慢如何解决?

Selenium作为一个强大的自动化工具&#xff0c;可用于编写爬虫程序&#xff0c;尽管Selenium在处理动态网页上非常强大&#xff0c;但对于静态网页爬简单数据提取&#xff0c;使用轻量级库或工具可能更加上所述&#xff0c;Selenium作为一个灵活可定动化工具&#xff0c;在需要…

如何正确使用DTM的Saga模式

DTM 简介 前面章节提及的MassTransit、dotnetcore/CAP都提供了分布式事务的处理能力&#xff0c;但也仅局限于Saga和本地消息表模式的实现。那有没有一个独立的分布式事务解决方案&#xff0c;涵盖多种分布式事务处理模式&#xff0c;如Saga、TCC、XA模式等。有&#xff0c;目…

真正的网工大佬,到底是什么样的?

大家好&#xff0c;我是许公子。 关于到底真正的网工大佬是什么样的&#xff0c;众说纷纭。 刚刚入行的小朋友&#xff0c;可能会觉得&#xff0c;是不是有HCIE的就算是网工大佬啊&#xff1f; 来几个老网工&#xff0c;评论区给他上一课哈哈。 就用这个点&#xff0c;跟你…

5年测试路,在字节终于爬到了半山腰,我不想被淘汰......

软件测试是一个付出就有回报的工作&#xff0c;可能很多人会说软件测试就是吃青春饭&#xff0c;然而其他工作又何尝不是&#xff1f;没有哪一家公司养尸位素餐之人&#xff0c;大龄员工有被辞退的&#xff0c;也有没被辞退的。干任何职业&#xff0c;抱着一劳永逸的心态&#…

MySQL----日志查询、备份与恢复

文章目录 一、MySQL日志管理二、MySQL 完全备份与恢复2.1备份的重要性2.2数据库备份的分类从物理与逻辑的角度从数据库的备份策略角度完全备份 三、MySQL 完全备份与恢复实验3.1物理冷备份与恢复3.2使用MySQL dump工具进行恢复备份恢复数据 3.3增量备份恢复 一、MySQL日志管理 …

LeetCod刷题笔记

目录 2739.总行驶距离 思路&#xff1a;模拟 代码 6890.找出分区值 思路&#xff1a;急转弯 代码: 1254.统计封闭岛屿的数目​编辑 思路&#xff1a;DFS 代码&#xff1a; 6447.给墙壁刷油漆 思路&#xff1a;动态规划 代码&#xff1a; 思路&#xff1a;状态DP 代码&…

Mac配置Android addr2line环境变量以及使用

1.首先进入终端 2.下面这个指令进入vim编辑器&#xff0c;就可以修改环境变量 vim ./.bash_profile3.按i进入insert模式 4.输入路径&#xff1a; arm32: export PATH${PATH}:/Users/xianquan/Library/Android/sdk/ndk/21.1.6352462/toolchains/arm-linux-androideabi-4.9/p…

Vue中如何进行自定义动画与动画效果设计

Vue中如何进行自定义动画与动画效果设计 在Vue中&#xff0c;动画效果是非常有用的&#xff0c;它可以使用户界面变得更加生动、有趣&#xff0c;从而提高用户体验。Vue提供了一套非常方便的动画系统&#xff0c;使得我们可以非常容易地实现动画效果。 在本文中&#xff0c;我…

6.19实训笔记

6.19实训笔记 6.19一、座右铭二、知识回顾2.1 Java集合体系2.2 工具类Utils 三、JavaIO流3.1 File类3.2 File类的使用3.2.1 File文件/文件夹类的创建3.2.2 File类的获取操作3.2.3 File类判断操作--boolean3.2.4 File类对文件/文件夹的增删改3.2.5 、File类的获取子文件夹以及子…

python+appium自动化测试-滑动到固定的位置停止

当前很多APP都存在滑动操作&#xff0c;但这些元素一般无法单独定位到&#xff0c;多为一个数组或列表&#xff0c;这边介绍了几种方法&#xff0c;使元素滑动到你想要的位置后停止。 一、scroll()方法 Appium 中webdriver提供scroll()方法来滚动页面&#xff0c;该方法只适用…

matplotlib---中文显示问题、字体库、图像结构、画布设置

1. 中文显示问题 解决方案一&#xff1a; 下载中文字体&#xff08;黑体&#xff0c;看准系统版本&#xff09; 步骤一&#xff1a;下载 SimHei 字体&#xff08;或者其他的支持中文显示的字体也行&#xff09; 步骤二&#xff1a;安装字体 linux下&#xff1a;拷贝字体到 usr…

三层架构综合实验

目录 拓扑结构&#xff1a; 要求&#xff1a; 确定广播域的个数 分配网段 配置Eth-Trunk 创建VLAN 配置STP生成树协议 修改根 边缘端口 SVI VRRP DHCP 路由部分 OSPF 缺省 汇总 NAT 拓扑结构&#xff1a; 要求&#xff1a; 1、内部IP地址基于172.16.0.0/16进行…

CABAC编解码原理分析

CABAC编解码原理分析 文章目录 CABAC编解码原理分析一、二进制算数编码二、CABAC编码三、CABAC编解码与普通的二元算术编码的区别四、 CABAC编解码中各个变量的计算&#xff1a;五、 一些其他问题&#xff1a;六、 总结&#xff1a;七、参考资料 一、二进制算数编码 cabac是一…

Nginx网络服务的配置

目录 一、Nginx概述 二、Nginx相对于Apache的优点 三、配置Nginx网络服务 1.编译安装和启用Nginx服务 2.修改Nginx主配置文件 一、Nginx概述 Nginx是一款高性能、轻量级Web服务软件。稳定性高&#xff0c;系统资源消耗低&#xff0c;对HTTP并发连接的处理能力高&#xff…

DNS 监控工具

域名系统 &#xff08;DNS&#xff09; 解析&#xff08;也称为 DNS 查找&#xff09;是在现代 IT 基础架构中建立连接和通信所需的基本组件之一。这是将人类可读的域或主机名与机器可读的 IP 地址映射的过程&#xff0c;使用户更容易访问组织的公共和专用网络上的主机。在最基…

SpringBoot 三级缓存解决循环依赖源码分析

文章目录 1. 不使用三级缓存可能存在的问题2. 源码分析2.1 对象实例的创建过程2.2 三级缓存的处理 3. 遗留问题 1. 不使用三级缓存可能存在的问题 在 SpringBoot 框架中&#xff0c;如果只存在两级缓存&#xff0c;那么当发生循环依赖的时候可能存在异常的对象创建流程如下图所…

如何解析 Impala 的 C++ 报错堆栈

生产环境用的都是release build&#xff0c;C代码产生的报错堆栈里没有函数名&#xff0c;很难像Java报错堆栈那样方便定位问题。下面是一个常见的启动报错&#xff0c;一般在CLASSPATH设置有误时发生&#xff1a; I0619 19:13:00.951988 5279 status.cc:129] Failed to find…

【全新升级版】R语言实战(第3版),超过30万学习者入手的R语言教程

在我刚入学那会儿初次接触R语言&#xff0c;看的第一本工具书就是《R语言实战》&#xff0c;收获良多&#xff0c;当时还只是第二版。最近和人民邮电出版社的好朋友交流发现&#xff0c;他告诉我上个月刚刚出版了《R语言实战 第三版》 &#xff0c;豆瓣评分9.2&#xff0c;被称…

Linux之生产者消费者模型(上)——单生产者单消费者

文章目录 前言一、生产者消费者模型1.生产消费2.生产消费关系321原则生产消费模型的特点 二、基于阻塞队列&#xff08;blockqueue&#xff09;的生产消费模型1.概念2.单生产单消费模型代码运行分析两种情况导致的现象生产者生产的慢&#xff0c;消费者消费的快生产者生产的快&…