SELECT 中的合并、交集与差集
合并 UNION
UNION 是将介绍的三种集合运算中最常用的运算,用于求两个 SELECT 语句结果的交集。
1{主 SELECT 语句} UNION {副 SELECT 语句};
需要注意的是,UNION 的使用中 (INTERSECT 和 EXCEPT 也一样) 要求且只要求两个 SELECT 语句输出的字段数相同,也就是说,如果两个 SELECT 语句返回的类型不同,依然可以使用 UNION。即使两个数据表毫无关系,只要字段数相同,都可以使用 UNION。
基本使用
示例输出12345678910SELECT starName AS name FROM StarsIn UNION SELECT name FROM MovieExec;-- 合并 StarsIn 和 MovieExec 中的人名1234567891011121314151617+-------------------+| name |+-------------------+| Harrison Ford | ...
SELECT 中的子查询与联结
子查询
SELECT 是查询语句,但 SQL 还支持 SELECT 的嵌套使用,这种使用称之为子查询。后面我将介绍子查询的三种应用:子查询作为筛选条件、子查询作为计算字段、使用子查询插入。需要注意的是,这些仅是子查询的常见应用,子查询不止可以用于这些场景。另外子查询尽管提供了很好的自由度,但很多时候效率低下,在可以使用下一章介绍的联结时尽量使用联结。
子查询作为筛选条件
可以将子查询作为筛选条件,这通常使用 IN 多值查找,但这要求子查询的返回必须只有一列。
1{SELECT 语句} WHERE {字段} IN ({SELECT 子查询})
HAVING 分组筛选同理。
示例输出123456789SELECT * FROM movies WHERE title IN ( SELECT movieTitle FROM StarsIn );-- 查找所有有明星出演的电影信息(所有明星出演作品都会在 StarsIn 中)12345678+---------------------+---- ...
SELECT 中的子句与运算
本文将详细介绍 SQL 中的四种子句 WHERE / ORDER BY / GROUP BY / HAVING,以及基本运算 / 特殊条件表达式 / 函数 / 聚集函数。
数据过滤 WHERE
基本格式
SELECT 语句可以使用 WHERE 进行数据过滤。格式为:
1{SELECT 语句} WHERE {条件表达式};
示例输出1SELECT * FROM MovieStar WHERE birthDATE >= "19700101";12345678+--------------+-------------+--------+------------+| name | address | gender | birthDate |+--------------+-------------+--------+------------+| Alec Baldwin | Baldwin Av. | M | 1977-06-07 || Kim Basinger | Baldwin Av. ...
对于后缀表达式的思考 - 栈
前往 算竞题解 分类 || 前往 算竞模板 分类
花絮 - 为什么写这篇题解今天是 23 年 10 月 7 日,数据结构课上讲栈,其中讲到了后缀表达式,但我惊奇的发现我竟然不会处理这个问题。
想起来这个问题我其实在去年 10 月遇到,那是刚刚大一开学,然后当时学了很久都没有学会,最后使用 python 的 eval 函数水过去了。之后 … 就把这件事忘了,现在回想起来,这个问题确实有很高深的东西。
听完老师讲完这节课,课后找了这道题,然后写了这篇题解。
后面我会讲到,后缀表达式实质上就是对树的后序遍历,而这棵树则是一棵笛卡尔树(一种索引满足二叉搜索树性质、值满足堆性质、唯一确定的树),但在代码实现中我们之所以看不到任何树的影子,是因为笛卡尔树的建树过程通常使用单调栈维护,而这棵笛卡尔树的后序遍历可以同时完成。这一个小小的栈,不仅是单调栈,还是笛卡尔树。
原题链接
洛谷 P1449 后缀表达式
洛谷 P1175 表达式的转换
简明题意
我们平常使用的算数表达式都是中缀表达式,而在计算机中对表达式求值都是先将其转换为后缀表达式,然后对后缀表达式只需从左往右求值即可。现在你需要编写程序模 ...
Sqlite 与 C/C++
建站提交历史文章,原文写作时间 2023 年 5 月 18 日前后。
Sqlite 与 C/C++
本篇介绍 Windows Sqlite 与 C/C++ 开发的连接方法。
本章节不教 SQL 语法。 如尚未学习 SQL 建议与 SQL 混合食用。
下载
前往 Sqlite 官网 SQLite Download Page 下载 Source Code C 语言源代码。
解压安装包到工程目录,得到 shell.c sqlite3.c sqlite3.h sqlite3ext.h,后面主要用到 sqlite3.c 和 sqlite3.h。
编译
将源文件拷贝到工程目录下的 include/sqlite 目录。
主代码导入头文件 #include "sqlite/sqlite3.h"
然后使用以下两种方法之一用命令行编译(使用其他编译工具其原理都是基于命令行方式的):
直接编译
1gcc main.c include\sqlite\sqlite3.c -o main.exe -I include # 注意 sqlite3.c 不能使用 g++ ...
SQL 语法入门 - 基础操作
建站提交历史文章,原文写作时间 2023 年 5 月 18 日前后。
SQL 语法
本篇介绍 SQL 通用语法,并这里以 MySQL 为例,首先注意 MySQL 不区分大小写,包括字符串不区分大小写。
其次 SQL 具有多版本语法,略有不同,请注意区分。
数据定义语句 DDL
其中包含一些如 SHOW 等 Mysql 语句。
123456789101112131415161718192021SHOW DATABASES; -- 显示所有数据库CREATE DATABASE {db}; -- 创建新的数据库USE {db}; -- 设置活动数据库DROP DATABASE {db}; -- 删除该数据库SHOW TABLES; -- 显示所有数据表CREATE TABLE {tb} ({field1} {type1} {addition1}, ...); -- 创建数据表-- e.g. CREATE TABLE student (id ...
MySQL 与 C/C++
建站提交历史文章,原文写作时间 2023 年 5 月 18 日前后。
Mysql 与 C/C++
本篇介绍 Windows Mysql 与 C/C++ 开发的连接方法。
本章节不教 SQL 语法。 如尚未学习 SQL 建议与 SQL 混合食用。
编译
将 Mysql 安装目录下的 include文件夹 拷贝到工程目录。
拷贝安装目录下的 lib\libmysql.dll、bin\libcrypto-1_1-x64.dll、bin\libssl-1_1-x64.dll 到工程根目录。
用命令行编译(使用其他编译工具其原理都是基于命令行方式的)
1g++ main.cpp -o main.exe -I include -L . -l mysql
dll 动态库必须位于工程根目录,不得重命名。(因为我不会其他方法)
接口
GET START
因为偷懒,这里只有 GET START ,其实关于 SQL 也就只有简单的询问和查询操作,仔细看相信大家都能看懂。
12345678910111213141516171819202122232425262728293031323 ...
MySQL 安装笔记
建站提交历史文章,原文写作时间 2023 年 5 月 18 日前后。
Mysql 安装笔记
本篇介绍 Windows Mysql 安装方法。
本章节中花括号 {} 表示要修改的内容,非确切内容。
Mysql 安装包下载:MySQL Community Downloads (注意记住安装目录)
配置环境变量:{安装目录}\bin
新建配置文件:{安装目录}\my.ini
1234[mysqld]basedir={安装目录}\ datadir={安装目录}\data\ port=3306
进入命令行 管理员模式 ,日常使用无需管理员模式。
123456789cd {安装目录}\binmysqld -install # 安装 Mysql 服务mysqld --initialize-insecure --user=root # 初始化数据文件,初始密码为空net start mysql # 启动 Mysql 服务mysql -u root -p # ...
Github + Hexo + Butterfly 建站笔记(七) - 解决一些遗留问题
关于我的建站过程中的若干问题,其中多数为用到的平台的一些 BUG 的应对之策:路径名大小写变换导致的不可访问问题;URL 变换导致的外站链接失效问题;为什么我的锚不起作用;关于 Butterfly 标签外挂 label 在行首的 BUG。
Git 学习笔记(七) - SSH 连接与 GPG 认证
回到文章目录
配置 SSH 连接
SSH 是 github 比较原始的连接方式,如今不配置 SSH 连接也会自动通过浏览器认证 github,同样也可以正常连接。该部分本属于 Git 学习笔记(六) - 远程仓库,因为如今不必要配置将其移动到了本章节。
切换到用户目录 使用命令行 创建 SSH密钥 。
12ssh-keygen -t rsa -C "jamhus_tao@qq.com" # 以邮箱生成密钥, 之后一直回车即可start .ssh # 打开目录
打开目录会看到两个文件 id_rsa 与 id_rsa.pub 。其中 id_rsa 是 私钥 ,不能公布给任何人;id_rsa.pub 是 公钥 ,可以公布。这里需要将 公钥 配置给 github。找到 settings-SSH and GPG keys-New SSH key。
配置 GPG 认证
为什么使用 GPG 认证之前我遇到过一个很尴尬的问题,在一个协作仓库中我进行若干次 push,但是记录在 contributors 中的只有我的最开始两次 ...