工作时发现自己手写SQL能力很低,特此再来学习一遍SQL

SQL语法

①常用的数据库本身的操作

# 显示数据库列表
show databases;# 使用某个数据库
use twbpm_dev;# 创建一个数据库
create database db_test;# 删除一个数据库
drop database if exists db_test;# 显示数据库中所有的表
show tables;# 查看MySQL的版本
select version();
show variables like 'version';

②创建操作 

# 创建表
create table testTable(id int(19) not null primary key ,name varchar(50) not null ,address varchar(100),phone char(11)
);
create table 新表 as select * from 旧表# 创建索引
create index i_testIndex on testTable(name);# 创建视图
create view v_testView as select * from testTable;

③新增操作 

# 插入数据
insert into testTable value (10000001,"张三","湖南省长沙市xxxxxxxx",12345678643);
insert into testTable values (10000001,"张三","湖南省长沙市xxxxxxxx",12345678643),(10000002,"李四","广东省深圳市xxxxxxxx",12345456789);# 查询结果当新增
insert into testTable select * from testTable01;# 批量插入大量数据
LOAD DATA INFILE '/path/to/data.txt'     //读取文件
INTO TABLE testTable                     //选择目标表
FIELDS TERMINATED BY ','                 //指定文件中字段分隔符
ENCLOSED BY '“'                          //在“”中的字符都会被当做一个列数据
LINES TERMINATED BY '\n'                 //指定行分隔符
IGNORE 1 LINES                           //忽略第1行的数据
(column_list);                           //要插入的列,可以不写默认为全部列

 为什么LOAD DATA比逐行INSERT效率要高?

④更新、删除操作

# 更新
update testTable set name = 'mike' where id = '11110011';
update testTable set name = 'amy';    //如果不加条件会把所有的数据的name行更新为amy# 删除表数据
delete from testTable;                //如果不加条件会把所有的数据都删除(索引、表结构不会变)# 删除索引
drop index if exists i_testIndex on testTable;# 删除表本身
drop table if exists testTable;# 删除视图
drop view if exists vivw_name;

⑤排序操作

# 排序
select * from testTable 
order by id , phone desc;   //先按照id升序排序,如果id相同的则按照phone降序排序

 ⑥修改操作

# 添加一个新的列
alter table testTable
add new_column varchar(255);# 删除一个列
alter table testTable
drop column column_name;# 修改列数据类型
alter table testTable
alter column new_column char(11);

 ⑦Limit、In、Union

# limit
select * from testTable limit 3;   //一个参数的时候是返回数据的前3行
select * from testTable limit 2(pageNum),3(pageSize);//两个参数的时候是分页,pageNum页码,pageSize页大小# in
select * from testTable where id in (value1,value2.....、也可以接子查询、列表、集合)# union   //union的两边必须要是相同的列
SELECT column1, column2, ...FROM table1
UNION                                           //union会去重
SELECT column1, column2, ...FROM table2;
# union all
SELECT column1, column2, ...FROM table1
UNION ALL                                       //union all会保留所有的数据
SELECT column1, column2, ...FROM table2;

⑧连接操作

⑨XML文件中的标签

<!--select标签-->   作用:与mapper接口对应,并且指定返回数据类型
<select id="selectByPrimaryKey"  resultType="com.exzample.bean.User">select ....
</select> <!--if标签-->       作用:test进行判断,如果条件满足,则会把标签内的sql语句拼到最终查询语句中
<select id="selectByPrimaryKey"  resultType="com.exzample.bean.User">select * from product<if test="name!=null">where name like concat('%',#{name},'%')</if> 
</select> <!--where标签-->     作用:当where标签中没有一个if标签成立时,where会被去掉
<select id="listProduct" resultType="com.exzample.bean.User">select * from product<where><if test="name!=null">and name like concat('%',#{name},'%')</if>        <if test="price!=null and price!=0">and price > #{price}</if></where>     
</select><!--foreach标签-->    作用:循环遍历集合(item:单个元素 collection:集合名字 separator:分隔符 index:元素的索引)
<select id="listProduct" resultType="com.exzample.bean.User">select * from productwhere id in<foreach item="code" collection="itemCodes" separator="," open="(" close=")" index="index">#{item}</foreach>
</select><!--sql标签 、include标签-->    作用:定义sql片段,并且引用拼接sql片段
<sql id="sqlTerm">order_id,cid,address,create_date
</sql>
<select id="listProduct" resultType="com.exzample.bean.User">select <include refid="sqlTerm" />from ordertable where order_id = #{orderId}
</select>

⑩写SQL时应该注意到的点 

# null不能直接与数值型进行比较
select name from Customer where referee_id != 2 or referee_id is null;

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为Ensp模拟器配置RIP路由协议

目录 RIP路由详解&#xff1a;另一种视角解读 1. RIP简介&#xff1a;轻松理解基础概念 2. RIP的核心机制&#xff1a;距离向量的魅力 3. RIP的实用与局限 RIP配置实验 实验图 ​编辑 PC的ip配置 RIP配置步骤 测试 结语&#xff1a;RIP的今天与明天 RIP路由详解&…

控制器ThinkPHP6

五、控制器中对数组值的返回 在做接口服务时&#xff0c;很多时候回使用数组作为返回值&#xff0c;那么数组如何返回成 json呢&#xff1f; 在 tp6 中返回json 很简单&#xff0c;直接使用 json 进行返回即可&#xff0c;例如&#xff1a; public function index(){$resarra…

SAFETY LAYERS IN ALIGNED LARGE LANGUAGEMODELS: THE KEY TO LLM SECURITY

目录 概要 背景 大语言模型对齐 对齐大语言模型中的过度拒绝 微调攻击 研究设置 问题定义 对齐的大语言模型 大语言模型的提示模板 安全层的存在和定位 安全层的存在性 1.从余弦相似度说明 2.从向量之间角度差异说明 3.与预训练LLM对比说明 安全层的定位 1.推理…

营销手段的变革:开源 AI 智能名片与 S2B2C 商城小程序在新趋势下的机遇与挑战

摘要&#xff1a;本文探讨了在当今营销环境变化下&#xff0c;企业必须改变传统营销手段的必要性。分析了大环境造就的主流趋势对企业的要求&#xff0c;以及传统营销方式如邮件直投的局限性。着重阐述了移动营销的重要性&#xff0c;并进一步研究开源 AI 智能名片和 S2B2C 商城…

【SpringBoot】公共字段自动填充

问题引入 JavaEE开发的时候&#xff0c;新增字段&#xff0c;修改字段大都会涉及到创建时间(createTime)&#xff0c;更改时间(updateTime)&#xff0c;创建人(craeteUser)&#xff0c;更改人(updateUser)&#xff0c;如果每次都要自己去setter()&#xff0c;会比较麻烦&#…

网络安全练习之 ctfshow_web

文章目录 VIP题目限免&#xff08;即&#xff1a;信息泄露题&#xff09;源码泄露前台JS绕过协议头信息泄露robots后台泄露phps源码泄露源码压缩包泄露版本控制泄露源码(git)版本控制泄露源码2(svn)vim临时文件泄露cookie泄露域名txt记录泄露敏感信息公布内部技术文档泄露编辑器…

Git_2024/11/16

文章目录 前言Git是什么核心概念工作流程常见术语解读Git的优势 Git与SVN对比SVNGit总结 Git配置流程及指令环境配置获取Git仓库本地初始化远程克隆 工作目录、暂存区、版本库文件的两种状态本地仓库操作远程仓库操作Git分支Git标签IntelliJ IDEA使用Git回滚代码 GitHub配置流程…

游戏引擎学习第八天

视频参考: https://www.bilibili.com/video/BV1ouUPYAErK/ 理解下面的代码 关于虚函数 代码分解 结构体 foo 的定义&#xff1a; struct foo {int32 X;int64 Y;virtual void Bar(int c); };foo 结构体有两个成员变量&#xff1a;X&#xff08;int32 类型&#xff09;和 Y&…

蓝桥杯-洛谷刷题-day3(C++)

目录 1.忽略回车的字符串输入 i.getline() ii.逐个字符的识别再输入 2.获取绝对值abs() 3.做题时的误区 4.多个变量的某一个到达判断条件 i.max() 5.[NOIP2016 提高组] 玩具谜题 i.代码 6.逻辑上的圆圈 i.有限个数n的数组 7.数组的定义 i.动态数组 1.忽略回车的字符串输…

不用来回切换,一个界面管理多个微信

你是不是也有多个微信号需要管理&#xff1f; 是不是也觉得频繁切换账号很麻烦&#xff1f; 是不是也想提升多账号管理的效率&#xff1f; 在工作中&#xff0c;好的辅助工具&#xff0c;能让我们的效率加倍增长&#xff01; 今天&#xff0c; 就给大家分享一个多微管理工具…

Word_小问题解决_1

1.第二页是空白的&#xff0c;但是删不掉 将鼠标弄到第二页最开始的地方打开段落设置行距为固定值0.7磅 2.表格中有文字进入了表格中怎么办 打开段落&#xff0c;将缩进改为0即可

LLM - 计算 多模态大语言模型 的参数量(Qwen2-VL、Llama-3.1) 教程

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/143749468 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 影响 (…

GEE下载ERA5-Land气象数据(1950-至今,降水、温度)

GEE下载ERA5-Land气象数据&#xff08;1950-至今&#xff0c;降水、温度&#xff09; ERA5-Land是一个高分辨率的陆地再分析数据集,相比ERA5数据集具有更高的空间分辨率。它是通过重新运行ECMWF ERA5气候再分析系统的陆地分量生成的。 空间分辨率特点&#xff1a; 网格间距…

动态规划-完全背包问题——518.零钱兑换II

1.题目解析 建议先看 322.零钱兑换可以 更加轻松的理解本题 题目来源 518.零钱兑换——力扣 测试用例 2.算法原理 1.状态表示 本题要求返回所有情况&#xff0c;所以dp值就代表所有的方法数&#xff0c;即 dp[i][j]&#xff1a;在[1,i]个硬币中选择不同面值的硬币&#xff0c…

推荐15个2024最新精选wordpress模板

以下是推荐的15个2024年最新精选WordPress模板&#xff0c;轻量级且SEO优化良好&#xff0c;适合需要高性能网站的用户。中文wordpress模板适合搭建企业官网使用。英文wordpress模板&#xff0c;适合B2C网站搭建&#xff0c;功能强大且兼容性好&#xff0c;是许多专业外贸网站的…

使用Java绘制图片边框,解决微信小程序map组件中marker与label层级关系问题,label增加外边框后显示不能置与marker上面

今天上线的时候发现系统不同显示好像不一样&#xff0c;苹果手机打开的时候是正常的&#xff0c;但是一旦用安卓手机打开就会出现label不置顶的情况。尝试了很多种办法&#xff0c;也在官方查看了map相关的文档&#xff0c;发现并没有给label设置zIndex的属性&#xff0c;只看到…

微信小程序 https://thirdwx.qlogo.cn 不在以下 downloadFile 合法域名列表中

授权登录后&#xff0c;拿到用户头像进行加载&#xff0c;但报错提示&#xff1a; https://thirdwx.qlogo.cn 不在以下 downloadFile 合法域名列表中 解决方法一&#xff08;未完全解决&#xff0c;临时处理&#xff09;&#xff1a;在微信开发者工具将不校验...勾上就可以访问…

【HAProxy09】企业级反向代理HAProxy高级功能之压缩功能与后端服务器健康性监测

HAProxy 高级功能 介绍 HAProxy 高级配置及实用案例 压缩功能 对响应给客户端的报文进行压缩&#xff0c;以节省网络带宽&#xff0c;但是会占用部分CPU性能 建议在后端服务器开启压缩功能&#xff0c;而非在HAProxy上开启压缩 注意&#xff1a;默认Ubuntu的包安装nginx开…

zabbix7.0实操指南:基于麒麟V10操作系统部署zabbix7.0

在当今信息技术飞速发展的时代&#xff0c;企业对于IT基础设施的监控管理需求日益增长。为了确保系统的稳定性和高效性&#xff0c;我们需要一个强大的监控工具来实时监控各种硬件和软件资源的状态。Zabbix作为一个开源的企业级监控解决方案&#xff0c;因其强大的功能和灵活的…

Android笔记(三十七):封装一个RecyclerView Item曝光工具——用于埋点上报

背景 项目中首页列表页需要统计每个item的曝光情况&#xff0c;给产品运营提供数据报表分析用户行为&#xff0c;于是封装了一个通用的列表Item曝光工具&#xff0c;方便曝光埋点上报 源码分析 核心就是监听RecyclerView的滚动&#xff0c;在滚动状态为SCROLL_STATE_IDLE的时…