MySQL数据库 05 基础查询

视频参考自:P18 - P27

https://www.bilibili.com/video/BV1xW411u7ax

配套的SQL脚本:https://shimo.im/docs/XxPk6wg8CqqrdhTv/read

基础查询介绍:

-- 基础查询
/*
语法:
SELECT 查询列表 FROM 表名; 查询列表可以是:表中的字段、常量值、表达式、函数。
查询的结果是一个虚拟的表格
*/ # 查询表的单个字段:员工表的姓名字段
SELECT last_name FROM employees; # 查询表的多个字段:员工的全名和邮箱
SELECT first_name,last_name,email FROM employees;
# 可以随意编写查询的字段顺序
SELECT first_name,email,last_name FROM employees; # 查询employees表的所有字段
# 如果手残总是打错字,可以直接双击字段或者表、库,
# SQLyog会直接在光标位置生成对应的字段名称
SELECT `employee_id`,`first_name`,`last_name`,`email`,`phone_number`,`job_id`,`salary`,`commission_pct`,`manager_id`,`department_id`,`hiredate` FROM employees; # 太长了一行看不见,可以先用鼠标框选SQL语句,按【F12】调整格式
SELECT
`employee_id`,
`first_name`,
`last_name`,
`email`,
`phone_number`,
`job_id`,
`salary`,
`commission_pct`,
`manager_id`,
`department_id`,
`hiredate`
FROM
employees; # 点着也费劲,直接上通配符 * 处理,* 表示所有的字段
SELECT * FROM `employees`; -- 查询的注意事项:
# SQLyog会自动切换库的位置
# 所以在执行查询语句之前,最好先执行 USE 语句选定要查询的库【好习惯】 # [`]不是单引号,是叫【着重号】,用于修饰字段名称,区分SQL的关键字,消除歧义 # 不要写完直接点执行,框选确定的SQL语句点执行

SELECT  与 常量、表达式、函数

-- 常量值的查询

# 数值型常量
SELECT 100;
# 字符型常量【MySQL 不区分字符和字符串】,要注意的是字符串或字符必须以''修饰
SELECT '阿伟输了'; -- 表达式的查询
SELECT 150 * 23;
SELECT 150 % 23; -- 函数的查询
SELECT version(); # MySQL版本查询

别名的用法 Alias

-- 别名设置 Alias
# 1、提高字段的可读性
# 2、如果字段过长可以使用别名来进行缩写
# 3、字段同名可采取别名来区分 # 第一种别名方式 使用AS关键字
SELECT VERSION() AS MySQL版本; SELECT `last_name` AS 姓,`first_name` AS 名 FROM `employees`; # 第二种别名方式 AS关键字省略掉
SELECT VERSION() MySQL版本; SELECT `last_name` 姓,`first_name` 名 FROM `employees`; # 特殊情况 out put 具有特殊含义 此SQL语句报错无法执行
SELECT `salary` AS OUT put FROM `employees`; # 解决方式: 加上引号[单双皆可]修饰为一个字段,防止SQL歧义
SELECT `salary` AS "out put" FROM `employees`;

去重的简单使用

-- 去除重复 DISTINCT
# 案例:查询员工表的所有部门编号
SELECT DISTINCT `department_id` FROM `employees`; # DISTINCT 关键字: 用来对查询的字段进行重复去除,放在字段的前面,类似形容词

MySQL 加号的正确用法:

-- +号的作用

# 拼接员工的姓 和 员工的名
SELECT `last_name` + `first_name` AS '员工姓名' FROM `employees`; # 查询结果都是0... # MySQL的+ 功能:只做运算符,不能像Java一样去拼接字符串
/*
SELECT 100 + 90; 两个操作数,都是数值,做加法运算
SELECT '123' + 90; 一个字符串,一个数值,MySQL会先把字符串转换数字,如果转换成功,继续加法运算
SELECT 'john' + 90; 像这样的转换失败,字符型数值转换为0 继续做加法运算
SELECT null + 10; 只要其中一个操作数为null,这个结果就是null
*/

CONCAT函数 拼接字符串的简单使用

-- 使用CONCAT();函数处理字符串拼接
SELECT CONCAT("我","爱 学","Java"); # 别名优化下字段
SELECT CONCAT("我","爱 学","Java") AS title; # 解决上面的案例问题
SELECT `last_name`,`first_name`,CONCAT(`last_name`,'.',`first_name`) AS '员工姓名' FROM `employees`;

案例练习:

# 下列语句是否执行成功? 可以√
SELECT `last_name`,`job_id`,`salary` AS sal
FROM `employees`; SELECT * FROM `employees`; # 找出SQL语句的错误 【引号修饰问题】
SELECT `employee_id`,`last_name`,`salary` * 12 AS ”annual salary“
FROM `employees`; # 显示表departments的结构,并查询所有数据
DESC `departments`;
SELECT * FROM `departments`; # 显示员工表的全部job_id 不可重复
SELECT DISTINCT `job_id` FROM`employees`; # 显示员工表的全部列,各个列之间逗号分割,列头显示out_put
SELECT CONCAT(
`employee_id` ,
', ',
`first_name`,
', ',
`last_name`,
', ',
`email`,
', ',
`phone_number`,
', ',
`job_id`,
', ',
`salary`,
', ',
IFNULL(`commission_pct`,0), # 设置该字段如果是null值,使用0替换
', ',
`manager_id`,
', ',
`department_id`,
', ',
`hiredate`
)
AS 'out put'
FROM `employees`;

快速检索的神SQL:

select * from `information_schema`.`TABLES` where LOWER(TABLE_NAME) = 'tm_labour_set_part'

用于查询某个表所在库的位置

【DataBase】MySQL 05 基础查询的更多相关文章

  1. mysql基础查询语法

    一.mysql查询的五种子句 where子句(条件查询):按照“条件表达式”指定的条件进行查询. group by子句(分组):按照“属性名”指定的字段进行分组.group by子句通常和count( ...

  2. sql 基础练习 计算7天各个时间点的总和 group by order mysql一次查询多个表

    SQL 基础练习 -- 创建数据库 CREATE DATABASE school CHARACTER SET UTF8; -- 使用数据库 USE school; -- id: 学生的id -- na ...

  3. mysql基础查询

    #进阶1:基础查询/*语法:select:查询列表 from 表名; 类似于:System.out.println(打印的东西); 特点:1.查询列表可以是:表中的字段.常量值.表达式.函数2.查询的 ...

  4. SEC5 - MySQL 查询语句--------------进阶1:基础查询

    # 进阶1:基础查询 /* 语法: select 查询列表 from 表名: 特点: 1.查询列表可以是:表中的字段.常量值.表达式.表达式.函数 2.查询的结果是一个虚拟的表格 如何执行:执行谁,请 ...

  5. Mysql学习笔记(002)-基础查询

    基础查询 # 进阶1:基础查询 /* 语法: select 查询列表 from 表名: 类似于:system.out.println(打印东西); 特点: 1.查询列表可以是:表中的字段,常量值,表达 ...

  6. mysql基础--查询

    1.mysql查询的五种子句: where子句(条件查询):按照“条件表达式”指定的条件进行查询. group by子句(分组):按照“属性名”指定的字段进行分组.group by子句通常和count ...

  7. mysql中的基础查询 练习

    #进阶1:基础查询 /* 语法: select 查询列表 from 表名; 类似于:System.out.println(打印东西); 特点: 1.查询列表可以是:表中的字段.常量值.表达式.函数 2 ...

  8. MySQL——基础查询与条件查询

    基础查询 /* 语法: select 查询列表 from 表名; 类似于:System.out.println(打印东西); 1.查询列表可以是:表中的字段.常量值.表达式.函数 2.查询的结果是一个 ...

  9. Mysql数据库基础第二章:(十)联合查询

    Mysql数据库基础系列 软件下载地址 提取码:7v7u 数据下载地址 提取码:e6p9 mysql数据库基础第一章:(一)数据库基本概念 mysql数据库基础第一章:(二)mysql环境搭建 mys ...

  10. Mysql数据库基础第二章:(九)分页查询

    Mysql数据库基础系列 软件下载地址 提取码:7v7u 数据下载地址 提取码:e6p9 mysql数据库基础第一章:(一)数据库基本概念 mysql数据库基础第一章:(二)mysql环境搭建 mys ...

随机推荐

  1. (八十七)c#Winform自定义控件-朝上的瓶子

    官网 http://www.hzhcontrols.com/ 前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kw ...

  2. vuex做购物车功能

    先创建一个cart组件 <template> <div> <ListItem></ListItem> </div> </templat ...

  3. LeetCode 297. Serialize and Deserialize Binary Tree 二叉树的序列化与反序列化(C++/Java)

    题目: Serialization is the process of converting a data structure or object into a sequence of bits so ...

  4. Prometheus 聚合查询的两个方案

    问题背景 多个 Prometheus 集群或者多个 VictoriaMetrics 集群,在 Grafana 和夜莺里通常需要创建多个不同的数据源,这也就意味着,数据没法聚合查询,比如统一做一下 su ...

  5. 升级babel7后,直接引用element-ui中没有暴露出来的组件image-viewer.vue导致的打包错误

    问题 & 解决方案 升级babel7后,原先代码中像这样直接引用element-ui组件的地方,出现了报错 Module parse failed: Unexpected token (1:0 ...

  6. npm 发布自己的组件库

    npm 发布组件库步骤 第一步:注册 npm 账号 第二步:编写自己的组件库 第三部:编写 package.json 可以通过命令生成 npm init { "name": &qu ...

  7. windows rabbitmq安装

    windows rabbitmq安装1.环境变量,关键是rabbitmq_server需要与erlang版本对应,否则无法使用. rabbitmq下载页https://github.com/rabbi ...

  8. ansible v2.9.9离线安装脚本

    链接:https://pan.baidu.com/s/18uxyWWyJ39i1mJJ1hb8zww?pwd=QWSC 提取码:QWSC

  9. 在Linux驱动中使用proc子系统

    在Linux驱动中使用proc子系统 背景 proc文件系统是个简单有用的东东:驱动创建一个proc虚拟文件,应用层通过读写该文件,即可实现与内核的交互. 本文适用于3.10以后的内核,v3.10以前 ...

  10. 基于Mock.js,使用C#生成模拟数据

    获取某前端框架, 使用 Mock.js 生成模拟数据, 想要对api进行改造,并且保留原始数据,需要使用C# 重写后端api 的数据 模拟的内容: Random.guid() uuid: '@uuid ...