Mysql 经典案例总结(学习之前需要有Mysql基础)01
Sql 经典案例 gb 4.2
** 1 检索记录
(1) 主要介绍 Sql的基本SELECT查询语句
使用 SELECT * from 表 查询数据 查询该表的每一列数据
* 代表所有的意思 也可以是 SELECT 列1,列2 from 表
(2) 筛选行 有一张表 只想查询满足条件的列的 内容
举例:查询学生 要求年龄大于18 的学生
select * from student where stuage >18
举例: 查询学生 学生姓 李的同学
SELECT * FROM student WHERE student.StudentName LIKE "李%"
总结:
where 语句可以根据where条件返回我们 想要的数据 像 = > < != => AND OR () 等等..
(3) 查询 满足多个查询条件的行
问题:返回一个满足多个条件的行
使用带有OR AND 的where语句
查询学生 学生的登入密码不为空 必须是男性 必须是北京户口 或者学生id = 1042
SELECT
*
FROM
student
WHERE
student.LoginPwd IS NOT NULL #学生登入密码不能为空
AND student.sex = 1 #必须是男生
AND Address LIKE "北京%" #必须是北京户口
OR StudentNo = 1042 #或者学生id = 1042
(4) 筛选列
问题:
查看特定的列(只查看学生的id name address)
SELECT StudentNo,StudentName,Address from student
总结:
这样可减少对数据库资源的浪费 不使用*号查询 只查询
特定的列 加快查询速度,避免了把时间浪费在检索不需要的数据上。
(5) 创建有意义的列名
问题:查询的过程中可能 可能会有比较长的 列名不利于表写 我们可以使用 as 关键字 来重新定义列名
SELECT
StudentNo AS '学号',
StudentName AS '姓名',
Address AS '住址'
FROM
student
总结:
as 关键字写在列名的后面 比如 SELECT StudentNo AS '学号' 当然as 也是可是省略不写的 当然 推荐写上方便阅读
as 后面是你要给这个列重新赋予的 名字 只有在执行该语句的时候才会这样显示 实际数据库是不会做修改的
不建议as 关键字后面跟的是中文 在做第三方数据库查询的时候 使用中文的列名会有问题! 初学者做练习是可以使用的!
(6)
在Where中引用别名
问题: 刚才已经创建了语句 在语句中已经起别名了 但是同样是一条语句 却没法用
就像这样 我明明已经起了 别名 但是我的where 中却无法使用别名
SELECT
StudentNo AS 'sno',
StudentName AS 'sname',
Address AS 'saddress'
FROM
student
WHERE
sname LIKE "李%"
解决
把查询查询包装成一个内嵌视图 这样就可以使用别名了
SELECT
*
FROM
( SELECT StudentNo AS 'sno', StudentName AS 'sname', Address AS 'saddress' FROM student ) as s
where sname LIKE "李%"
总结:
当然你可以只使用列表来查询 比如 StudentNo 的别名是 sno 你可以使用刚才内嵌视图的方式 使用别名 或者
直接使用 列名 StudentNo
为什么这样做会让别名可以使用??
where 语句 会比select 字句先执行 当where 语句执行的使用无法找到别名 所以不能使用
嵌套一个SELECT 语句之后 别名就会生效 在执行 where 语句 就可以使用了 面试的时候可能会问
(7)
如何串联多列的值?
问题 我想查询的时候 将查询的数据拼接起来 我该怎么办?
Mysql 使用 CONCAT关键字
SELECT
CONCAT( student.StudentName, '----', student.Address ) AS "地址信息"
FROM
student
(8) 在SELECT语句中使用条件逻辑
问题:
在SELECT语句中使用IF - ELSE 如果查询学生的时候 男生返回 'nan' 女生返回'女'
实现步骤: (查询学生的姓名和性别,在查询的过程中 会多一列 就是显示男女的一列 在END加上as 起个别名
在没有ELSE 的情况下 并且条件 不成立 该字段 会显示NULL!!
)
SELECT
StudentName AS 'name',# Student表中的姓名列
Sex AS 'sex',# Student表中的性别列
CASE
WHEN sex = 2 THEN
'女' #如果查询到的性别等于2 就会显示 女
WHEN sex = 1 THEN
'男' #如果查询的性别是1 就会显示 男
ELSE '人妖' #如果查询的都不是 就显示人妖
END AS '性别' #给这列起一个别名 查询的话会多显示一个列
FROM
Student #要从那个表查询数据
Mysql 经典案例总结(学习之前需要有Mysql基础)01的更多相关文章
- 【MySQL经典案例分析】 Waiting for table metadata lock
本文由云+社区发表 一. 问题是这样来的 2018年某个周末,接到连续数据库的告警,告警信息如下: 二. 苦逼的探索过程 1.总体的思路 看到too many connection的报错信息,基本 ...
- 【MySQL经典案例分析】关于数据行溢出由浅至深的探讨
本文由云+社区发表 一.从常见的报错说起 故事的开头我们先来看一个常见的sql报错信息: 相信对于这类报错大家一定遇到过很多次了,特别对于OMG这种已内容生产为主要工作核心的BG,在内容线的存 ...
- mysql 经典案例
MySQL多表联合查询是MySQL数据库的一种查询方式,下面就为您介绍MySQL多表联合查询的语法,供您参考学习之用. MySQL多表联合查询语法: SELECT * FROM 插入表 LEFT JO ...
- MySQL的InnoDB表如何设计主键索引-转自淘宝MySQL经典案例
创建a表 id主键 CREATE TABLE `a` (`id` bigint(20) NOT NULL AUTO_INCREMENT ,`message_id` int(11) NOT NULL,` ...
- mysql经典案例分析
问题: create table A ( id varchar(64) primary key, ver int, ...)在id,ver上有联合索引,10000条数据为什么select id fro ...
- MySQL事务控制语句(学习笔记)
MySQL事务控制语句(学习笔记) MySQL事务控制语句 在mysql命令行的默认下,事务都是自动提交的,sql语句提交后马上会执行commit操作.因此开启一个事务必须使用begi ...
- (1.3)学习笔记之mysql体系结构(C/S整体架构、内存结构、物理存储结构、逻辑结构)
目录 1.学习笔记之mysql体系结构(C/S架构) 2.mysql整体架构 3.存储引擎 4.sql语句处理--SQL层(内存层) 5.服务器内存结构 6.mysql如何使用磁盘空间 7.mysql ...
- MySQL进阶8 分页查询(limit) - 【SQL查询语法执行顺序及大致结构】- 子查询的3个经典案例
#进阶8 分页查询 /* 应用场景: 当要显示的数据,一页显示不全,需要分页提交sql请求 语法: select 查询列表 #7 from 表1 #执行顺序:#1 [join type join 表2 ...
- 数据库MySQL经典面试题之SQL语句
数据库MySQL经典面试题之SQL语句 1.需要数据库表1.学生表Student(SID,Sname,Sage,Ssex) --SID 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学 ...
随机推荐
- scope属性
scope属性 1.<bean>属性 2.作用:控制对象有效范围(单例.多例等) 3.<bean/> 标签对应的对象默认是单例的 3.1 无论获取多少次,都是同一个对象 4.s ...
- Linux+Apache+Mysql+PHP优化技巧
LAMP 平台由四个组件组成,呈分层结构.每一层都提供了整个软件栈的一个关键部分:Linux.Apache.MySQL.PHP. LAMP这个词的由来最早始于德国杂志“c't Magazine”,Mi ...
- java 后台 post请求 携带参数 远程操作 调用接口
package com.huayu.tizong.matchteam.util; import java.io.BufferedReader; import java.io.IOException; ...
- ACM-ICPC 2018 徐州赛区网络预赛 J Maze Designer(最大生成树,倍增lca)
https://nanti.jisuanke.com/t/31462 要求在一个矩形中任意选两个点都有唯一的通路,所以不会建多余的墙. 要求满足上述情况下,建墙的费用最小.理解题意后容易想到首先假设全 ...
- mysql order by 中文 排序
mysql order by 中文 排序 1. 在MySQL中,我们经常会对一个字段进行排序查询,但进行中文排序和查找的时候,对汉字的排序和查找结果往往都是错误的. 这种情况在MySQL的很多版本中都 ...
- identify.class.php<======>token加密方法
class Identify { static private $cert = "1111111"; static public function writeSecret($mob ...
- maven下的经常使用的几个元素以及依赖范围的一些知识
maven的pom.xml配置文件里面的project根节点下的dependencies可以包含一个或者多个dependency元素,以声明一个或者多个依赖,每个依赖都可以包含的元素: groupId ...
- Linq高级应用
Linq的应用为我们带来了很大的方便,提高了coding效率,最近看到了一个用linq写的数独游戏算法,让我看到了Linq写的是如此优雅,耳目一新的感觉,以前没有写过这样的代码,同时也感觉到原来Lin ...
- 第05章:MongoDB-CRUD操作--数据库
①显示现有的数据库 命令:show dbs 或者databases; ②显示当前的数据库 命令:db ③使用|创建数据库 命令:use 数据库名称 如果数据库不存在,则创建数据库,否则切换到指定数 ...
- 很实用的linux 上的svn安装和svnserver 的重启
虽然在windows上搭建SVN很简单,但是效能却不高,这当然是和linux相比了.然而在linux上搭建SVN却非常繁琐,所以今天这篇文章就来一步一步教您如何在Centos上搭建SVN 安装 #yu ...