- webstorm报错TypeError: this.cliEngine is not a constructor
Blue_Color
点击Details在控制台会显示报错的位置TypeError:this.cliEngineisnotaconstructoratESLintPlugin.invokeESLint(/Applications/RubyMine.app/Contents/plugins/JavaScriptLanguage/languageService/eslint/bin/eslint-plugin.js:97:
- 一招改掉孩子磨蹭的坏习惯
路姐说
https://shop43404796.youzan.com/wscvis/knowledge/index?p=contentshow&alias=2xctkvk0tdnk4&kdt_id=43212628&reft=1572314576745_1572320684212&spm=f.80650183_uc.43212628_fake43212628&sf=wx_menu#/contentsho
- 欠自己良多,不欠你分毫
George加油吧
前言用我的手牵着你向前走不愿再让你低头原来若即若离不受你的左右这爱情来的不是时候因为我狂恋你才不愿意放手你却执意一人等候爱情徒有虚名向左走向右走缓过了不寻常的节奏来自@沈以诚《狂恋你(Cover:EveryLittleThing)》你我都在这座城市我是水瓶座,一个无药可救的星座。水瓶大概都是,从相遇到离开,我欠自己良多,不欠你分毫。水瓶给人第一感觉就是冷漠,可是当你真正与他相处时,你会发现水瓶是那
- QT chart案例
quaer
QTqtswift开发语言
examples-zoomlinechart.qdocZoomLineExample|QtCharts5.15.2Qt5.15QtChartsZoomLineExampleQtCharts|CommercialorGPLv3ContentsRunningtheExampleCustomizingZoomingEffectsZoomLineExample$$$zoomlinechart-briefT
- 第4章 MyBatis的关联映射和缓存机制
小猪宝宝哦
mybatis缓存java
目录/Contents第4章MyBatis的关联映射和缓存机制学习目标了解数据表之间的三种关联关系了解对象之间的三种关系熟悉关联关系中的嵌套查询和嵌套结果掌握一对一关联映射掌握一对多关联映射掌握多对多关联映射熟悉Mybatis的缓存机制学习内容1关联映射概述1.1关联映射关系1.1.1一对一关系1.1.2一对多关系1.1.3多对多关系1.2Java对象如何描述事物之间的关系1.3Java对象关联映
- .NetCore+vue3上传图片 Multipart body length limit 16384 exceeded.
鱼是一只鱼啊
Vue后端.netcore图片上传vue3el-upload
实现目标。点击图片上传头像效果图前端部分图片上传关键代码更换头像上传js部分import{ref,reactive,onMounted}from"vue";import{uploadAvatar}from"../../api/auth";import{ElMessage}from"element-plus";exportdefault{setup(){constfit=ref("cover");c
- iOS同时适配iPad横屏和iPhone竖屏
may_he
IOS开发ipadiphoneios屏幕方向
iPad横屏、iPhone竖屏1、启动页LaunchImage新建一个ImageSet,并且命名为LaunchImage(或者其他的名字),准备iPad横屏、iPhone竖屏的启动页,然后在Finder中打开LaunchImage.imageset找到Contents.json,然后修改内容{"images":[{"filename":"iPhone.png","idiom":"iphone","
- 【Jeecg-uniapp】【HBuilderX】【Sass】-安装
goodmao
Jeecg-Uni-AppJeecgJeecg-uniappHBuilderXsassnpm
【Jeecg-uniapp】【HBuilderX】【Sass】-安装在项目中,使用了sass,所以,需要安装对应的库。在macOS中:1.下载compile-node-sass的压缩包2.解压缩3.拷贝到文件夹/Applications/HBuilderX.app/Contents/HBuilderX/plugins/compile-node-sass注意:文件夹名称改成:compile-node
- 【浏览器插件】理解浏览器扩展开发:为什么 `content script` 里的 `window` 与页面的 `window` 不同以及解决方案
帅比九日
踩过的坑服务器运维
理解浏览器扩展开发:为什么contentscript里的window与页面的window不同以及解决方案浏览器扩展开发为开发者提供了强大的工具,使得我们可以扩展和增强网页的功能。然而,在开发过程中,尤其是当涉及到与网页内容进行交互时,我们可能会发现contentscript里的window对象与页面的window对象有所不同。这篇博客将探讨这个现象的原因,并介绍一种解决方案来弥合这个区别。为什么c
- 二进制流Url的get传输图片
别动我的love
PHP
“只有亲眼看到的才相信“这句话导致了各种资讯漫天的的同时各种图片也是满天飞。那么问题来了,如果你是请求别人服务器上的图片改怎么办呢下面我们来学习一下Cur,的get传输二进制流图片数据1、采集到值,写入字符串、编码$url="C:\Users\lenovo\Pictures\aaa.JPG";//我们图片的路径$img=file_get_contents($url);//采集过这个图片(是二进制流
- php文件操作
零下两度
phpphp开发语言
一、文件读取的5种方法1,file_get_contents:将整个文件读入一个字符串file_get_contents(string$filename,bool$use_include_path=false,?resource$context=null,int$offset=0,?int$length=null):string|false可以读取本地的文件也可以用来打开一个网络地址实现简单的网页
- 异步运行时IO问题分析
达坦科技DatenLord
java网络服务器
TableofContents1.Xline运行时性能问题2.异步运行时和阻塞操作3.Runtime调度问题4.性能测试4.1测试结果分析5.如何正确实现?6.何时能够在Runtime上阻塞7.总结在异步运行时上进行编程经常是很困难的,在本篇文章中,我们主要会通过Xline开发中的几个例子,讨论Rust的异步运行时中有关于IO的问题,以及在代码实现中如何正确使用Tokioruntime以实现最佳性
- 遥感多模态基础大模型汇总-实时更新
遥感-GIS
#遥感#图像处理深度学习#大模型#遥感大模型
本文内容来自下面链接,考虑到很多同学登录不了,故在此平台进行分享。遥感基础大模型TableofContentsModelsRemoteSensingVisionFoundationModels遥感视觉基础模型RemoteSensingVision-LanguageFoundationModels遥感视觉语言基础模型RemoteSensingGenerativeFoundationModels遥感生
- mac在终端中使用vscode打开文件或者文件夹
菲林可乐
vscodeide编辑器
在Mac上使用VisualStudioCode(VSCode)打开指定文件夹,你可以通过以下步骤操作:1.创建软连接1.找到VSCode的安装位置。在Finder中,导航到/Applications/VisualStudioCode.app2.进入VSCode的内容文件夹:使用终端命令cd/Applications/VisualStudioCode.app/Contents进入VSCode的内容文
- hadoop常用地址
静听山水
Sparkhadoop
java:"/opt/homebrew/Cellar/openjdk/22.0.1/libexec/openjdk.jdk/Contents/Home"hadoop:1】sbin:/opt/homebrew/sbin2】home:/opt/homebrew/Cellar/hadoop/3.4.02】log:/opt/homebrew/Cellar/hadoop/3.4.0/libexec/logs
- 4.3 python 编辑单元格
luckyflyyy
PYTHON办公自动化核心模块pythonexcel开发语言数据分析
4.3.1clear_contents()函数和clear()函数–清楚单元格的内容和格式表达式.clear_contents()Range对象的clear_contects()函数用于清除单元格的内容,但不会清除单元格的格式设置表达式.clear()Range对象的clear()用于清楚单元格的内容和格式设置。#清除指定单元格区域的内容和格式importxlwingsasxwapp=xw.App
- background-size
子却
规定背景图像的尺寸background-image:url("xxx");background-size:100px200px;其它属性background-size:cover;把背景图像扩展至足够大,以使背景图像完全覆盖背景区域;注:背景图像的某些部分也许无法显示在背景定位区域中。background-size:containe;把图像图像扩展至最大尺寸,以使其宽度和高度完全适应内容区域
- 《雏菊》cover筷子兄弟《父亲》
向北__
总是向你索取却不曾说谢谢你总是向你问候却不曾说我爱你直到长大以后才懂得你不容易直到离开以后才终于放松自己每次离开总是装做轻松的样子每次想你总是装作轻松的样子微笑着说回去吧转身泪湿眼底微笑着告诉自己我应该忘了你多想和从前一样牵你温暖手掌多想和从前一样远远地望着你可是你不在我身旁托清风捎去安康可是我决定要离去就把它当做秘密时光时光慢些吧不要再让你变老了时光时光散去吧不愿再随你的轨迹我愿用我一切换你岁月
- VirtualBox 安装增强功能报错:Unable to insert the virtual optical disk /Applications/VirtualBox.app/Conten...
MistyL
VirtualBox中很多功能需要安装增强功能,在使用过程,安装增强功能会报下面的错误:Unabletoinsertthevirtualopticaldisk/Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.isointothemachineVirtualUbuntu.Wouldyouliketotrytoforceins
- 使用OC加载图片的两种方式及其区别
BoolBear
iosios
在iOS中加载图片的方式有多种,通过OC的方式主要有imageName:和imageWithContentsOfFile:两种。这两种方式如何使用,以及他们之间的区别是什么呢?下面通过两个小示例来详细讲解。一、imageNamed:和imageWithContentsOfFile:的使用 1、imageNamed: 新建一个工程,将准备好的图片拖入项目中Assets.xcassets文件夹中,
- 【juce::translation】juce实现翻译文件生成器,多国语言显示
shuai_258
juce前端数据库c++
translationFileBuilder(翻译文件生成器)1.1构造函数LocalisedStrings::LocalisedStrings(constString&fileContents,boolignoreCaseOfKeys)从翻译文件的文本创建一组翻译。当您创建其中一个映射时,您可以调用setCurrentMappings()以使其成为系统正在使用的映射集。LocalisedStri
- 如何查看Squid的DNS缓存
pcj_888
squidsquid
使用squidclientmgr:ipcache命令查看Squid的DNS缓存记录如果squid端口不是3128,需要指定端口号,squidclient-p{port}mgr:ipcache#squidclientmgr:ipcache...IPCacheStatistics:...IPCacheContents:HostnameFlglstrefTTLN(b)www.trendmicro.com
- Linux 打包/压缩/解压命令集合
netkiller-
运维手札linuxwindows网络
package/compressanddecompress4.5.1.tar—TheGNUversionofthetararchivingutilitytarexamplestartar-cvffoo.tarfoo/tarcontentsoffolderfooinfoo.tartar-xvffoo.tarextractfoo.targunziptar-zcvffoo.tarfoo/tarconte
- PHP一句话木马免杀方式汇总
A 八方
php开发语言安全web安全网络
目录PHP一句话木马免杀学习一句话木马的变形1.相同功能函数替换2.使用变量3.使用字符串拼接、大小写混淆、字符串逆序组合4.自定义函数5.回调函数6.str_replace函数7.base64_decode函数(编码绕过)8.parse_str函数9.preg_replace函数10."."操作符11.file_put_contents函数12.通过PHP的动态函数PHP一句话木马免杀学习简单了
- Xcode 14.3 Run、Build、Archive 报错
齐云霄霄
由于手机升级了iOS16.4,想要真机调试,Xcode也要升级到14.3,于是就升级了一下,结果各种报错。Run、Build报错Filenotfound:/Users/johnson/Downloads/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphon
- Java | 实现一个 ORM 真的很简单
双鬼带单
实现一个ORM到底多简单TableofContents实现一个ORM到底多简单原理ORM实现1.通过注解来将JavaBean和数据库字段关联2.反射工具类3.简单的model示例4.注解解析5.数据库操作6.结合反射实现查询操作使用动态代理实现@Query@Select类似功能1.动态代理2.注解3.表设计4.model5.repository7.大体流程8.代理使用9.将生成代理放入Spring
- python 面试指南
墨痕_777
python
TableofContentsPython语言特性1Python的函数参数传递2Python中的元类(metaclass)3@staticmethod和@classmethod4类变量和实例变量5Python自省6字典推导式7Python中单下划线和双下划线8字符串格式化:%和.format9迭代器和生成器10*argsand**kwargs11面向切面编程AOP和装饰器12鸭子类型13Pytho
- 和长辈的教育方式冲突怎么办?
路姐说
https://shop43404796.youzan.com/wscvis/knowledge/index?p=contentshow&alias=2xht7hnz20b0k&kdt_id=43212628&reft=1572314576745_1572317316583&spm=f.80650183_uc.43212628_fake43212628&sf=wx_menu#/contentsho
- Mac 配置环境变量和处理路径中空格
lsq126yx
macospython开发语言
在终端中设置临时环境变量,使用export命令可以在当前的终端会话中设置临时环境变量。例如,要设置JAVA_HOME环境变量,可以执行以下命令:exportJAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home这样在当前终端会话中,JAVA_HOME环境变量就被设置为指定的路径了。在用户目录下设置永久环境
- PHP 伪协议详解
诗雅颂
php协议伪协议
PHP伪协议是一种特殊的URL格式,用于访问PHP内置的各种资源,如文件、变量、函数等。它们以php://开头,后面跟着不同的协议标识符和参数。下面是一些常见的PHP伪协议及其用法的详解:php://input:用于访问请求的原始数据。通常在处理POST请求时使用它。$data=file_get_contents('php://input');php://output:用于输出数据到标准输出(浏览
- Spring4.1新特性——综述
jinnianshilongnian
spring 4.1
目录
Spring4.1新特性——综述
Spring4.1新特性——Spring核心部分及其他
Spring4.1新特性——Spring缓存框架增强
Spring4.1新特性——异步调用和事件机制的异常处理
Spring4.1新特性——数据库集成测试脚本初始化
Spring4.1新特性——Spring MVC增强
Spring4.1新特性——页面自动化测试框架Spring MVC T
- Schema与数据类型优化
annan211
数据结构mysql
目前商城的数据库设计真是一塌糊涂,表堆叠让人不忍直视,无脑的架构师,说了也不听。
在数据库设计之初,就应该仔细揣摩可能会有哪些查询,有没有更复杂的查询,而不是仅仅突出
很表面的业务需求,这样做会让你的数据库性能成倍提高,当然,丑陋的架构师是不会这样去考虑问题的。
选择优化的数据类型
1 更小的通常更好
更小的数据类型通常更快,因为他们占用更少的磁盘、内存和cpu缓存,
- 第一节 HTML概要学习
chenke
htmlWebcss
第一节 HTML概要学习
1. 什么是HTML
HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,它规定了自己的语法规则,用来表示比“文本”更丰富的意义,比如图片,表格,链接等。浏览器(IE,FireFox等)软件知道HTML语言的语法,可以用来查看HTML文档。目前互联网上的绝大部分网页都是使用HTML编写的。
打开记事本 输入一下内
- MyEclipse里部分习惯的更改
Array_06
eclipse
继续补充中----------------------
1.更改自己合适快捷键windows-->prefences-->java-->editor-->Content Assist-->
Activation triggers for java的右侧“.”就可以改变常用的快捷键
选中 Text
- 近一个月的面试总结
cugfy
面试
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/46753275
前言
打算换个工作,近一个月面试了不少的公司,下面将一些面试经验和思考分享给大家。另外校招也快要开始了,为在校的学生提供一些经验供参考,希望都能找到满意的工作。 
- HTML5一个小迷宫游戏
357029540
html5
通过《HTML5游戏开发》摘抄了一个小迷宫游戏,感觉还不错,可以画画,写字,把摘抄的代码放上来分享下,喜欢的同学可以拿来玩玩!
<html>
<head>
<title>创建运行迷宫</title>
<script type="text/javascript"
- 10步教你上传githib数据
张亚雄
git
官方的教学还有其他博客里教的都是给懂的人说得,对已我们这样对我大菜鸟只能这么来锻炼,下面先不玩什么深奥的,先暂时用着10步干净利索。等玩顺溜了再用其他的方法。
操作过程(查看本目录下有哪些文件NO.1)ls
(跳转到子目录NO.2)cd+空格+目录
(继续NO.3)ls
(匹配到子目录NO.4)cd+ 目录首写字母+tab键+(首写字母“直到你所用文件根就不再按TAB键了”)
(查看文件
- MongoDB常用操作命令大全
adminjun
mongodb操作命令
成功启动MongoDB后,再打开一个命令行窗口输入mongo,就可以进行数据库的一些操作。输入help可以看到基本操作命令,只是MongoDB没有创建数据库的命令,但有类似的命令 如:如果你想创建一个“myTest”的数据库,先运行use myTest命令,之后就做一些操作(如:db.createCollection('user')),这样就可以创建一个名叫“myTest”的数据库。
一
- bat调用jar包并传入多个参数
aijuans
下面的主程序是通过eclipse写的:
1.在Main函数接收bat文件传递的参数(String[] args)
如: String ip =args[0]; String user=args[1]; &nbs
- Java中对类的主动引用和被动引用
ayaoxinchao
java主动引用对类的引用被动引用类初始化
在Java代码中,有些类看上去初始化了,但其实没有。例如定义一定长度某一类型的数组,看上去数组中所有的元素已经被初始化,实际上一个都没有。对于类的初始化,虚拟机规范严格规定了只有对该类进行主动引用时,才会触发。而除此之外的所有引用方式称之为对类的被动引用,不会触发类的初始化。虚拟机规范严格地规定了有且仅有四种情况是对类的主动引用,即必须立即对类进行初始化。四种情况如下:1.遇到ne
- 导出数据库 提示 outfile disabled
BigBird2012
mysql
在windows控制台下,登陆mysql,备份数据库:
mysql>mysqldump -u root -p test test > D:\test.sql
使用命令 mysqldump 格式如下: mysqldump -u root -p *** DBNAME > E:\\test.sql。
注意:执行该命令的时候不要进入mysql的控制台再使用,这样会报
- Javascript 中的 && 和 ||
bijian1013
JavaScript&&||
准备两个对象用于下面的讨论
var alice = {
name: "alice",
toString: function () {
return this.name;
}
}
var smith = {
name: "smith",
- [Zookeeper学习笔记之四]Zookeeper Client Library会话重建
bit1129
zookeeper
为了说明问题,先来看个简单的示例代码:
package com.tom.zookeeper.book;
import com.tom.Host;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.ZooKeeper;
import org.apache.zookeeper.Wat
- 【Scala十一】Scala核心五:case模式匹配
bit1129
scala
package spark.examples.scala.grammars.caseclasses
object CaseClass_Test00 {
def simpleMatch(arg: Any) = arg match {
case v: Int => "This is an Int"
case v: (Int, String)
- 运维的一些面试题
yuxianhua
linux
1、Linux挂载Winodws共享文件夹
mount -t cifs //1.1.1.254/ok /var/tmp/share/ -o username=administrator,password=yourpass
或
mount -t cifs -o username=xxx,password=xxxx //1.1.1.1/a /win
- Java lang包-Boolean
BrokenDreams
boolean
Boolean类是Java中基本类型boolean的包装类。这个类比较简单,直接看源代码吧。
public final class Boolean implements java.io.Serializable,
- 读《研磨设计模式》-代码笔记-命令模式-Command
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
/**
* GOF 在《设计模式》一书中阐述命令模式的意图:“将一个请求封装
- matlab下GPU编程笔记
cherishLC
matlab
不多说,直接上代码
gpuDevice % 查看系统中的gpu,,其中的DeviceSupported会给出matlab支持的GPU个数。
g=gpuDevice(1); %会清空 GPU 1中的所有数据,,将GPU1 设为当前GPU
reset(g) %也可以清空GPU中数据。
a=1;
a=gpuArray(a); %将a从CPU移到GPU中
onGP
- SVN安装过程
crabdave
SVN
SVN安装过程
subversion-1.6.12
./configure --prefix=/usr/local/subversion --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr --with-openssl=/
- sql 行列转换
daizj
sql行列转换行转列列转行
行转列的思想是通过case when 来实现
列转行的思想是通过union all 来实现
下面具体例子:
假设有张学生成绩表(tb)如下:
Name Subject Result
张三 语文 74
张三 数学 83
张三 物理 93
李四 语文 74
李四 数学 84
李四 物理 94
*/
/*
想变成
姓名 &
- MySQL--主从配置
dcj3sjt126com
mysql
linux下的mysql主从配置: 说明:由于MySQL不同版本之间的(二进制日志)binlog格式可能会不一样,因此最好的搭配组合是Master的MySQL版本和Slave的版本相同或者更低, Master的版本肯定不能高于Slave版本。(版本向下兼容)
mysql1 : 192.168.100.1 //master mysq
- 关于yii 数据库添加新字段之后model类的修改
dcj3sjt126com
Model
rules:
array('新字段','safe','on'=>'search')
1、array('新字段', 'safe')//这个如果是要用户输入的话,要加一下,
2、array('新字段', 'numerical'),//如果是数字的话
3、array('新字段', 'length', 'max'=>100),//如果是文本
1、2、3适当的最少要加一条,新字段才会被
- sublime text3 中文乱码解决
dyy_gusi
Sublime Text
sublime text3中文乱码解决
原因:缺少转换为UTF-8的插件
目的:安装ConvertToUTF8插件包
第一步:安装能自动安装插件的插件,百度“Codecs33”,然后按照步骤可以得到以下一段代码:
import urllib.request,os,hashlib; h = 'eb2297e1a458f27d836c04bb0cbaf282' + 'd0e7a30980927
- 概念了解:CGI,FastCGI,PHP-CGI与PHP-FPM
geeksun
PHP
CGI
CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。
CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php,perl,tcl等。 FastCGI
FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不
- Git push 报错 "error: failed to push some refs to " 解决
hongtoushizi
git
Git push 报错 "error: failed to push some refs to " .
此问题出现的原因是:由于远程仓库中代码版本与本地不一致冲突导致的。
由于我在第一次git pull --rebase 代码后,准备push的时候,有别人往线上又提交了代码。所以出现此问题。
解决方案:
1: git pull
2:
- 第四章 Lua模块开发
jinnianshilongnian
nginxlua
在实际开发中,不可能把所有代码写到一个大而全的lua文件中,需要进行分模块开发;而且模块化是高性能Lua应用的关键。使用require第一次导入模块后,所有Nginx 进程全局共享模块的数据和代码,每个Worker进程需要时会得到此模块的一个副本(Copy-On-Write),即模块可以认为是每Worker进程共享而不是每Nginx Server共享;另外注意之前我们使用init_by_lua中初
- java.lang.reflect.Proxy
liyonghui160com
1.简介
Proxy 提供用于创建动态代理类和实例的静态方法
(1)动态代理类的属性
代理类是公共的、最终的,而不是抽象的
未指定代理类的非限定名称。但是,以字符串 "$Proxy" 开头的类名空间应该为代理类保留
代理类扩展 java.lang.reflect.Proxy
代理类会按同一顺序准确地实现其创建时指定的接口
- Java中getResourceAsStream的用法
pda158
java
1.Java中的getResourceAsStream有以下几种: 1. Class.getResourceAsStream(String path) : path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取。其只是通过path构造一个绝对路径,最终还是由ClassLoader获取资源。 2. Class.getClassLoader.get
- spring 包官方下载地址(非maven)
sinnk
spring
SPRING官方网站改版后,建议都是通过 Maven和Gradle下载,对不使用Maven和Gradle开发项目的,下载就非常麻烦,下给出Spring Framework jar官方直接下载路径:
http://repo.springsource.org/libs-release-local/org/springframework/spring/
s
- Oracle学习笔记(7) 开发PLSQL子程序和包
vipbooks
oraclesql编程
哈哈,清明节放假回去了一下,真是太好了,回家的感觉真好啊!现在又开始出差之旅了,又好久没有来了,今天继续Oracle的学习!
这是第七章的学习笔记,学习完第六章的动态SQL之后,开始要学习子程序和包的使用了……,希望大家能多给俺一些支持啊!
编程时使用的工具是PLSQL