SQL高级知识点
MySQL基础
 1、安装
    1)设置编码
    2)设置密码
 2、配置文件:my.ini、my.cnf
    1)设置端口号
      port=3306
    2)设置编码
     default-character-set=utf8character-set-server=utf8
    3)存储引擎 
  default-storage-engine=INNODB
    4)最大连接数
     max_connections=100
    注意:重启mysql服务
 3、登陆mysql数据库
   mysql -h 主机地址 -u 用户名 -p密码mysql -u 用户名 -p密码mysql -u 用户名 -p
    问题:"mysql"不是系统内部或外部命令....
    解决:将mysql的bin目录配置到系统的path环境变量中
          变量名:Path
          变量值:adsfasdfasd;D:\mysql\bin
 4、设置客户端窗口的编码
   set names gbk;
 5、查看mysql编码
show variables like 'character%';
 6、查看现存的所有库
show databases;
 7、进入库(使用库)
use 库名;
 8、查看现存的所有表
show tables;
 9、查看表结构
desc 表名;
 10、建库
create database 库名;
create database 库名 character set=utf8;
 11、删除库
    drop database 库名;
 12、建表
    create table 表名(字段名  数据类型  约束,字段名  数据类型  约束,字段名  数据类型  约束);
 13、数据类型
    int  float  char  varchar  text   timestamp  enum
 14、约束
    primary keyforeign keynot nullnulluniquedefaultauto_increment
 15、修改表结构
     1)修改表名
   alter table 表名 rename to 新表名;
     2)添加字段
     alter table 表名 add column 字段名 数据类型 约束;alter table 表名 add 字段名 数据类型 约束;
     3)删除字段
      alter table 表名 drop column 字段名;alter table 表名 drop 字段名;
     4)修改字段
alter table 表名 change 原字段名 新字段名 数据类型 约束;
 16、删除表
    drop table 表名;
 17、添加记录
    insert into 表名(字段...)values(值...);
 18、修改记录
    update 表名 set 字段=值,字段=值...;update 表名 set 字段=值,字段=值... where 条件;
 19、删除记录
    delete from 表名;delete from 表名 where 条件;
 20、清空表
    delete from 表名;     不恢复id  慢   可恢复   支持事务truncate table 表名;  恢复id    快   不恢复   不支持事务
 21、普通查询
    select * from 表名;select 字段,字段... from 表名;
 22、条件查询
select * from 表名 where 条件;
 23、排序
    select * from 表名 order by 字段;#升序select * from 表名 order by 字段 desc;#降序select * from 表名 where 条件 order by 字段;
 24、分组
select * from 表名 group by 字段;
 25、聚合查询
    select count(*) from 表名 where 条件;select sum(字段) from 表名 where 条件;select avg(字段) from 表名 where 条件;select max(字段) from 表名 where 条件;select min(字段) from 表名 where 条件;
 26、分页查询
    select * from 表名 limit 起始值,条数;select * from 表名 where 条件 order by 字段 limit 起始值,条数;
 27、模糊查询
 select * from 表名 where 字段 like '%_内容';
     通配符
     %:任意长度的任意字符
     _:任意一个字符
     1)查询所有姓张的学生
      select * from 学生表 where 姓名 like '张%';
     2)查询所有姓张的学生,但名字必须是两个字
    select * from 学生表 where 姓名 like '张_';
     3)查询所有学生,但姓名中必须有"小"字
  select * from 学生表 where 姓名 like '%小%';多表查询
 子查询(嵌套查询)
 1)子查询出现where中,充当条件
  select * from 表名 where 字段 in (select语句);
 2)子查询出现在*中,充当字段
 select 字段,字段,(select语句) from 表名;例子:子查询出现在where中,充当条件
 1、查询"国际新闻"下的所有新闻
   select * from newsArticleswhere typeId in (select typeId from newsTypes where typeName='国际新闻');
 2、删除typeId=3的所有分类
   delete from reviews where articleId in (select articleId from newsArticles where typeId=3);delete from newsArticles where typeId=3;delete from newsTypes where typeId=3;例子:子查询出现在*位置,充当字段
 歌手表:userId、userName、age....
 演唱会表:id、userId、name、时间、地点...
 查询结果:userId、userName、age...演唱会的次数
selectuserId,userName,(select count(*) from 演唱会表 where 演.userId=歌.userId)from 歌手表;
 ---------------
select typeId,typeName,(select count(*) from newsArticles a where a.typeId=b.typeId) as newsCountfrom newsTypes b;内连接:将多张表的结果集,合为一个结果集(合并字段)
select * from 表1 inner join 表2 on 关联的字段相等;
select * from 表1,表2,表3... where 关联的字段相等;
 外连接:将多张表的结果集,合为一个结果集(合并字段)
 1、左外连接:以左表为主、右表为副
  select * from 表1 left outer join 表2 on 关联的字段相等;
 2、右外连接:以右表为主、左表为副
   select * from 表1 right outer join 表2 on 关联的字段相等;多表查询
 1、子查询:显示的只是一张表中的数据(被动)
 2、内连接:合并字段
 3、外连接:不用
 -----------------------------------------------------------
 MySQL高级
 1、视图
 2、触发器
 3、存储过程
 4、T-SQL编程
 5、索引
 6、存储引擎
 7、事务
 8、备份与还原
 -----------------------------------------------------------
 视图View:简化查询语句
创建视图
create view 视图名
as
select语句;create view myview
as
select articleId,typeName,title,content from newsArticles a,newsTypes b where a.typeId=b.typeId;
 修改视图
alter view 视图名
as
select语句;
 查看视图
 1、查看当前库中现存的表
   show tables;
 2、information_schema库->views表
select table_schema,table_name from information_schema.views;
 使用视图:把视图当表用
select * from 视图名 where 条件 order by 字段 limit 起始值,条数;
select * from myview;
select articleId,typeName,title from myview;建议:只对视图执行查询操作
 删除视图
 1、删除视图所在的库
drop database 库名;
 2、删除视图
drop view 视图名;
 视图知识点
 1、作用
 2、创建、修改、查看、使用、删除
 视图注意:
 1、视图中只能存放select查询语句
 2、建议只对视图执行查询操作
 视图的使用场合
 一个复杂的查询语句经常使用
 -----------------------------------------------------------
 触发器Trigger:数据库中的事件
作用:当用户对表进行增、删、改操作的同时,是否要执行其他操作
触发器的执行时间
 before:当用户对表进行增、删、改之前,先调用触发器,后执行增、删、改操作
 after:当用户对表进行增、删、改之前,先执行增、删、改操作,后调用触发器
触发器的类型
 insert:当对表进行insert操作时,系统将自动调用触发器
 update:当对表进行update操作时,系统将自动调用触发器
 delete:当对表进行delete操作时,系统将自动调用触发器
修改mysql语句的定界符
delimiter 符号
 创建触发器
delimiter //
drop trigger if exists 触发器名//
create trigger 触发器名
before|after  insert|update|delete
on 表名
for each row
beginsql语句;sql语句;sql语句;
end//
delimiter ;
 删除触发器
 1、删除触发器所在的库
 2、删除触发器所施加的表
 3、删除触发器
   drop trigger 触发器名;
 查看触发器:information_schema库->triggers表
select * from information_schema.triggers;
select trigger_schema,trigger_name from information_schema.triggers;
 例子:修改bbsInfo表中的记录,触发器自动向userInfo添加一条记录
delimiter //
drop trigger if exists updateBbs//
create trigger updateBbs
after update
on bbsInfo
for each row
begininsert into userInfo(userName,password,age)values('tom','111',30);
end//
delimiter ;update bbsInfo set clickTimes=100 where bbsId=3;例子:统计表功能
create table bumen
(bmId   int    auto_increment primary key,bmName  varchar(20) not null
);
create table employee
(empId  int   auto_increment primary key,userName varchar(20) not null,tel  varchar(20) not null
);
create table tongji
(bmCount int default 0,#记录部门总数empCount int default 0#记录员工总数
);
insert into tongji values(0,0);
 部门表添加记录的触发器
delimiter //
drop trigger if exists addBm//
create trigger addBm
after insert
on bumen
for each row
beginupdate tongji set bmCount=bmCount+1;
end//
delimiter ;部门表删除记录的触发器
delimiter //
drop trigger if exists delBm//
create trigger delBm
after delete
on bumen
for each row
beginupdate tongji set bmCount=bmCount-1;
end//
delimiter ;insert into bumen(bmName)values('开发部');
insert into bumen(bmName)values('测试部');
insert into bumen(bmName)values('市场部');
delete from bumen where bmId=3;
 触发器知识点
 1、作用
 2、创建、查看、删除
 触发器注意
 1、一个触发器最多只能有一个类型
 2、一个触发器只能监听一张表的操作
 3、触发器由系统自动来调用
 4、触发器没有参数、没有返回值
 ----------------------------------------------------------
 存储过程Procedure:自定义函数
特点:
 1、一次编写,多次调用
 2、有参数
 3、有返回值
创建存储过程
delimiter //
drop procedure if exists 存储过程名//
create procedure 存储过程名()
beginsql语句;sql语句;sql语句;
end//
 调用存储过程
call 存储过程名(值,值...);
 删除存储过程
 1、删除存储过程所在的库
 2、删除存储过程
 drop procedure 存储过程名;
 查看存储过程:mysql库->proc表
select * from mysql.proc;
select db,name from mysql.proc;
 例子一:查询bbsInfo表的记录
delimiter //
drop procedure if exists getBbsInfo//
create procedure getBbsInfo()
beginselect * from bbsInfo;
end//
delimiter ;call getBbsInfo();例子二:查询bbsInfo表的记录,但传bbsId参数
delimiter //
drop procedure if exists hello//
create procedure hello(id int)
beginselect * from bbsInfo where bbsId=id;
end//
delimiter ;call hello(7);
 例子:删除指定的新闻分类  typeId=3
delimiter //
drop procedure if exists delType//
create procedure delType(tid int)
begindelete from reviews where articleId in (select articleId from newsArticles where typeId=tid);delete from newsArticles where typeId=tid;delete from newsTypes where typeId=tid;
end//
delimiter ;call delType(4);存储过程知识点
 1、介绍、作用
 2、创建、调用、删除、查看
 3、参数
 存储过程注意
 1、一次编写,多次调用
 2、有参数、有返回值
 3、必须通过用户显式的来调用
 存储过程的使用场合
 实现网站上的一个功能,必须要执行多个sql语句
 存储过程与触发器的区别?
 1、存储过程是由用户来调用,触发器是由系统自动调用
 2、存储过程有参数有返回值,触发器没有参数也没有返回值
 ------------------------------------------------------------
 总结:
 1、多表查询语句
 2、视图View
 3、触发器Trigger
 4、存储过程Procedure
相关文章:
SQL高级知识点
MySQL基础 1、安装 1)设置编码 2)设置密码 2、配置文件:my.ini、my.cnf 1)设置端口号 port3306 2)设置编码 default-character-setutf8character-set-serverutf8 3)存储引擎 default-storage-engineINNODB 4)最大连接数 max_connections100 注意&…...
 
【安全】原型链污染 - Code-Breaking 2018 Thejs
目录 准备工作 环境搭建 加载项目 复现 代码审计 payload 总结 准备工作 环境搭建 Nodejs BurpSuite 加载项目 项目链接 ① 下载好了cmd切进去 ② 安装这个项目 可以检查一下 ③运行并监听 可以看到已经在3000端口启动了 复现 代码审计 const fs require(fs) cons…...
【架构】探索计算机处理器的世界:ARM和x86架构解析及指令集
目录 导语ARM架构x86架构AMD公司对比与应用不同架构处理器的指令集结语 导语 计算机处理器是数字化时代的核心引擎,而在众多处理器架构中,ARM和x86是备受关注的三个。本文将带您深入探索这三个架构,介绍它们的特点、公司背景以及应用领域。让…...
 
SpringBoot权限认证
SpringBoot的安全 常用框架:Shrio,SpringSecurity 两个功能: Authentication 认证Authorization 授权 权限: 功能权限访问权限菜单权限 原来用拦截器、过滤器来做,代码较多。现在用框架。 SpringSecurity 只要引入就可以使…...
 
OpenGL-入门-BMP像素图glReadPixels
glReadPixels函数用于从帧缓冲区中读取像素数据。它可以用来获取屏幕上特定位置的像素颜色值或者获取一块区域内的像素数据。下面是该函数的基本语法: void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *da…...
 
同源策略以及SpringBoot的常见跨域配置
先说明一个坑。在跨域的情况下,浏览器针对复杂请求,会发起预检OPTIONS请求。如果服务端对OPTIONS进行拦截,并返回非200的http状态码。浏览器一律提示为cors error。 一、了解跨域 1.1 同源策略 浏览器的同源策略(Same-Origin Po…...
 
基于jeecg-boot的flowable流程跳转功能实现
更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码: https://gitee.com/nbacheng/nbcio-boot 前端代码:https://gitee.com/nbacheng/nbcio-vue.git 在线演示(包括H5) : http://122.227.135.243:9888 今天我…...
react图片预加载
道阻且长,行而不辍,未来可期 图片预加载的原理:new一个image对象,用这个对象加载图片,等这个对象将这个图片请求完后,再将这个图片放入原本应该放置的位置 代码如下: import React, { useEffe…...
数据库管理
SQL语言分类: DDL:数据定义语言,用于创建数据库对象,如库、表、索引等 DML:数据操纵语言,用于对表中的数据进行管理 DQL:数据查询语言,用于从数据表中查找符合条件的数据记录 DCL&am…...
【2023年11月第四版教材】《第8章-整合管理》(第3部分)
《第8章-整合管理》(第3部分) 9 监控项目工作9.1 监控项目工作★★★9.2 数据分析9.4 决策9.5 工作绩效报告 10 实施整体变更控制10.1 实施整体变更控制★★★ (18上36)10.2 变更请求★★★10.3变更控制工具★★★10.4 数据分析10…...
 
初阶数据结构(三)链表
💓博主csdn个人主页:小小unicorn💓 ⏩专栏分类:c 🚚代码仓库:小小unicorn的学习足迹🚚 🌹🌹🌹关注我带你学习编程知识 前面我们讲的线性表的顺序存储结构。它…...
 
Python小知识 - 八大排序算法
八大排序算法 排序算法是计算机科学中非常重要的一个研究领域。排序算法可以分为内部排序和外部排序,内部排序是数据记录在计算机内部,而外部排序是数据记录在计算机外部,这里我们主要讨论内部排序。 内部排序中的算法大致可以归纳为四类&…...
安卓动态申请权限
我们在使用一些官方app时,刚下载进去之后经常会弹出各种各样的权限获取请求,今天简单学习了下,希望不会误人子弟哈哈哈哈。 一、将需要用到的权限添加到Manifest清单里 <uses-permission android:name"android.permission.WRITE_EXT…...
 
关于亚马逊云科技云技能孵化营学习心得
1、活动介绍 本活动主要是面向想要全面了解亚马逊云科技 (Amazon Web Services) 云的个人,而不受特定技术角色的限制。内容包括亚马逊云科技云概念、亚马逊云科技服务、安全性、架构、定价和支持等等,此外还可以参加亚马逊的认证考试。 2、学习过程 该…...
计算机安全学习笔记(III):强制访问控制 - MAC
基本概念 强制访问控制是一种高级访问控制机制,旨在通过强制执行事先定义的安全策略,实现资源和信息的严格保护。与自主访问控制(Discretionary Access Control,DAC)不同,MAC 的控制权不由用户自身决定&am…...
java判断ip是否为指定网段
具体网络知识原理请看这个博文 /**** param address servletRequest.getRemoteAddr();* param host servletRequest.getRemoteHost();* return* Description 检验IP是否符合安全限定*/private boolean ipIsInNet(String address, String host){Set<String> iPset allow…...
 
如何通过人工智能和自动化提高供应链弹性?
全球供应链中的数字化转型已经引起了广泛关注,尽管在过去的十年中,这一话题被广泛讨论,但许多公司仍然对如何实现这一不明确的目标感到困惑。人们普遍认识到这种转变的重要性,而新冠疫情及其带来的巨大影响也为行业向数字化转型方…...
 
【Apollo学习笔记】——规划模块TASK之PATH_REUSE_DECIDER
文章目录 前言PATH_REUSE_DECIDER功能简介PATH_REUSE_DECIDER相关配置PATH_REUSE_DECIDER总体流程PATH_REUSE_DECIDER相关子函数IsCollisionFreeTrimHistoryPathIsIgnoredBlockingObstacle和GetBlockingObstacleS Else参考 前言 在Apollo星火计划学习笔记——Apollo路径规划算…...
 
框架分析(6)-Ruby on Rails
框架分析(6)-Ruby on Rails 专栏介绍Ruby on Rails核心概念以及组件讲解MVC架构模式约定优于配置强大的ORM支持自动化测试丰富的插件生态系统RESTful路由安全性总结 优缺点优点快速开发简单易学MVC架构强大的ORM支持大量的插件和Gem支持 缺点性能问题学习…...
 
LLMs NLP模型评估Model evaluation ROUGE and BLEU SCORE
在整个课程中,你看到过类似模型在这个任务上表现良好,或者这个微调模型在性能上相对于基础模型有显著提升等陈述。 这些陈述是什么意思?如何形式化你的微调模型在你起初的预训练模型上的性能改进?让我们探讨一些由大型语言模型开…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。  - 个性化梦境…...
 
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
 
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...
 
CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...
PAN/FPN
import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...
Oracle11g安装包
Oracle 11g安装包 适用于windows系统,64位 下载路径 oracle 11g 安装包...
 
DeepSeek源码深度解析 × 华为仓颉语言编程精粹——从MoE架构到全场景开发生态
前言 在人工智能技术飞速发展的今天,深度学习与大模型技术已成为推动行业变革的核心驱动力,而高效、灵活的开发工具与编程语言则为技术创新提供了重要支撑。本书以两大前沿技术领域为核心,系统性地呈现了两部深度技术著作的精华:…...
 
从物理机到云原生:全面解析计算虚拟化技术的演进与应用
前言:我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM(Java Virtual Machine)让"一次编写,到处运行"成为可能。这个软件层面的虚拟化让我着迷,但直到后来接触VMware和Doc…...
