mysql自学案例_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 #要从那个表查询数据

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值