[牛客数据库SQL实战] 准备篇
资源准备
MySQL提供的示例数据库
- Employees
员工样本数据库提供了分布在六个独立表中的大量数据库(约160Mb)的组合,总共包含400万条记录。
它支持多种存储引擎类型(InnoDB,MyISAM,Maria...)。
数据库结构显示
- Sakila
MySQL官方提供的一个模拟DVD租赁信息管理的数据库
数据库结构显示
工具准备
数据库管理工具和 SQL 客户端 DBeaver
下载页面: https://dbeaver.io/download/
技术准备
常用的SQL语法
显示当前数据库列表
> show databases;
显示当前表格列表
> show tables;
切换当前活动数据库
> use [database_name];
显示表格详情/描述
> desc [table_name];
查看表格内容(*全部/某些属性)
> select [*/feature_name] from [table_name];
条件查询 where
> select [features_name] from [table_name] where [features_name] = ?;
排序 使用order by子句
desc 降序 asc 升序
> select [features_name] from [table_name] order by [features_names] [desc/asc];
限制输出
LIMIT m,n : 表示从第m+1条开始,取n条数据;
LIMIT n : 表示从第0条开始,取n条数据,是limit(0,n)的缩写。
> select [features_name] from [table_name] limit m, n;
去重查询 distinct
> select distinct [features_name] from [table_name];
分组条件查询 group by ... having
> select [feature_name] from [table_name] group by [feature_name] having [expr];
> WHERE语句在GROUP BY语句之前;SQL会在分组之前计算WHERE语句。
> HAVING语句在GROUP BY语句之后;SQL会在分组之后计算HAVING语句。
两表合并 join - left join - right join
> select [*/feature_names] from [table_name_A] as a left join [table_name_B] as b on a.[feature_name]=b.[feature_name];
资源查询
MySQL 菜鸟教程: https://www.runoob.com/mysql/mysql-tutorial.html
个人运行环境
操作系统:Linux Deepin 15.9.2桌面版
MySQL版本:5.7.21-1 (Debian)
DBeaver版本:6.1.2 社区版
实战地址
牛客网 数据库SQL实战
https://www.nowcoder.com/ta/sql?page=0