mysql and mariadb are the most popular dialects
SQL - Wikiwand
We Can Do Better Than SQL
WWW SQL Designer
Database.Guide
PlanetScale - YouTube many SQL tricks
PlanetScale 🤝 YouTube — PlanetScale SQL course
The Magic of SQL - YouTube
Basic SQL queries - SQL programming for beginners - YouTube
you need to learn SQL RIGHT NOW!! (SQL Tutorial for Beginners) - YouTube
SQL basics and creating a simple database - SQL programming for beginners - YouTube
Intro to SQL: Querying and managing data | Khan Academy
Learn SQL | Codecademy
Using SQL for Lightweight Data Analysis | School of Data - Evidence is Power
SQL Tutorial
SQL Structure and Commands - MariaDB Knowledge Base
SQL Tutorial | Database Tutorial | Examples
SQL Tutorial - w3resource
MySQL Resources | resources for mysql and mariadb admins and developers who are squealing for help
A Visual Explanation of SQL Joins
me talking out loud » Blog Archive » “Getting” Joins
SQL Fundamentals from @iamtylerwclark on @eggheadio
SQL Riddles to Test Your Wits. Timestamps, dependent filters, and… | by Matt Sosna | Feb, 2023 | Towards Data Science
SQL Fiddle
Format SQL Server Queries Easily - Online SQL Formatter | Devart "Subquery" -> "Indent subquery"
Online SQL Formatter
MySQL :: MySQL Documentation
MySQL :: MySQL 5.7 Reference Manual :: 13 SQL Statement Syntax
Stop Writing SQL transactions THIS WAY! Dangerous Mistake you’re Making - YouTube There are 4 transaction isolation levels: READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE. Do a write first to actually lock the data (SERIALIZABLE). Or use BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE
.
harelba/q: q - Run SQL directly on CSV or TSV files
ORM (or not)
SQL vs ORMs vs Query Builders | Compare | Prisma's Data Guide
Why you should avoid ORMs (with examples in Node.js)
Low level: Database Driver
Middle Level: Query Builder
High Level: ORM
What ORMs have taught me: just learn SQL
DONT USE AN ORM | Prime Reacts - YouTube
The Only Database Abstraction You Need | Prime Reacts - YouTube
Raw SQL, SQL Query Builder, or ORM? - YouTube
Object-relational Mappers (ORMs) - Full Stack Python
Why should you use an ORM (Object Relational Mapper)? - HedgeDoc
Tips and Tricks
Stop using COUNT(id) to count rows - YouTube SELECT COUNT(*)
allows the optimizer to choose the best way to compute the value
Falling in Love with SQL Again. By harnessing the power of Common Table… | by Jeremy Dorn | Oct, 2021 | Towards Data Science creating temporary tables,
WITH
cte1 as (SELECT …),
cte2 as (SELECT …)
SELECT * FROM cte1 JOIN cte2
Indices
Easy database indexing strategies - YouTube
- functional indices
- generated columns
JOINs
left join, right join
inner join, outer join
You don't always need JOINs - YouTube
- old way: join and deduplication
- new way: nested query/sub query
SELECT * FROM user WHERE id IN (SELECT id FROM post WHERE views > 10000)
SELECT * FROM user WHERE EXISTS (SELECT id FROM post WHERE views > 10000 AND user.id = user_id)
exploiting the outside-in execution strategy
JSON support
You don't need NoSQL (use MySQL) - YouTube
- SQL databases supports JSON field
- Using EAV to mimic object
entity, attribute, value:[(1, "type", "cat"), (1, "size", "small"),(2, "type", "dog"), (1, "size", "large")]
- Convert EAV into JSON with
JSON_OBJECTAGG("col1", "col2") GROUP BY id
'col'->'$.keypath'
:JSON_EXTRACT()
'col'->>'$.keypath'
:JSON_UNQUOTE(JSON_EXTRACT())
- functional indices on JSON attribute
- generated columns, stored generated columns
- set JSON column invisible (from
SELECT *
)
SQL injection
SQL injection - Wikiwand
SQL injection techniques - Getting started with SQL injection - YouTube
Step-by-step SQL injection guide to bypassing basic login screen - Mastering SQL injection - YouTube
Web Security Academy - SQL Injection (Long Version) - YouTube
7 essential SQL Server security tips | InfoWorld
Preventing SQL Injection Attacks With Python – Real Python
sqlmap: automatic SQL injection and database takeover tool
Simple injection on username field: ANYNAME OR' 1=1 --
Clients/IDE
Alecaddd/sequeler: SQL Client built in Vala
DbGate | Open Source (no)SQL Database Client ❗!important
dbgate/dbgate: Database manager for MySQL, PostgreSQL, SQL Server, MongoDB, SQLite and others. Runs under Windows, Linux, Mac or as web application
Adminer - Database management in a single PHP file
adminer - Official Image | Docker Hub
DBeaver | Free Universal Database Tool
dbeaver/dbeaver: Free universal database tool and SQL client
Sqlectron - One single DB client for any relational DB 😴inactive
ohwgiles/sequeljoe: SQL administration GUI 😴inactive
tora-tool/tora: TOra is an open source SQL IDE for Oracle, MySQL and PostgreSQL dbs 😴inactive
Home · tora-tool/tora Wiki
RazorSQL - SQL Query Tool and SQL Editor for Mac, Windows, and Linux
BlocklySQL Demo: Generating SQL Code with Blocks
nicolaipoehner/blocklysql: The web-based visual programming editor with SQL blocks execute database queries. 😴inactive