mysql 查询 表别名_MySQL-复杂查询及条件-起别名-多表查询-04

基本查询语句及方法

测试数据创建

如果在windows系统中,插入中文字符,select的结果为空白,可以将所有字符编码统一设置成gbk(或者参照我安装配置MySQL的博客,将所有字符编码设置为 utf8)

创建数据库与表

create database db1;

use db1;

create table emp(

id int not null unique auto_increment,

# 表内没有字段是primary key,innodb的机制,一个表没有primaryk key时会自动将 not null + unique的键自动升级为 primary key 主键

name varchar(20) not null,

sex enum('male','female') not null default 'male', # 大部分是男的

age int(3) unsigned not null default 28, # 这个3 只限制了显示宽度,并不影响存储

hire_date date not null,

post varchar(50),

post_comment varchar(100),

salary double(15,2),

office int, # 一个部门一间办公室,一个门牌号

depart_id int # 暂不建立外键关系

);

插入表记录数据

# 三个部门:教学,销售,运营

# 以下是教学部

insert into emp(name,sex,age,hire_date,post,salary,office,depart_id) values

('jason','male',18,'20170301','张江第一帅形象代言',7300.33,401,1),

('egon','male',78,'20150302','teacher',1000000.31,401,1),

('kevin','male',81,'20130305','teacher',8300,401,1),

('tank','male',73,'20140701','teacher',3500,401,1),

('owen','male',28,'20121101','teacher',2100,401,1),

('jerry','female',18,'20110211','teacher',9000,401,1),

('nick','male',18,'19000301','teacher',30000,401,1),

('sean','male',48,'20101111','teacher',10000,401,1),

# 以下是销售部门

('歪歪','female',48,'20150311','sale',3000.13,402,2),

('丫丫','female',38,'20101101','sale',2000.35,402,2),

('丁丁','female',18,'20110312','sale',1000.37,402,2),

('星星','female',18,'20160513','sale',3000.29,402,2),

('格格','female',28,'20170127','sale',4000.33,402,2),

# 以下是运营部门

('张野','male',28,'20160311','operation',10000.13,403,3),

('程咬金','male',18,'19970312','operation',20000,403,3),

('程咬银','female',18,'20130311','operation',19000,403,3),

('程咬铜','male',18,'20150411','operation',18000,403,3),

('程咬铁','female',18,'20140512','operation',17000,403,3);

数据展示

常见结果排版

select * from emp;

8d4ea2dad6f46d5cac607a51315a8634.png

另一种结果排版 \G

当表字段特别多的时候,结果的排版可能会出现混乱的现象,你可以在语句最后加 \G 来改变排版,方便查看

05c960b1870261e1b6b9bff33a550abd.png

比较差的展示结果,这种情况就非常适合用 \G 来看数据

c943040f2c577fb6ed15ccad64c77326.png

简单查询语句的书写与执行顺序

查询语句书写

查询出 emp 表中id 在 3~6 的员工详细信息

思路:从emp 表中,查 id 大于3 且 小于 6 的数据

b33708e1bb8484bfe4591284d1c0c0e3.gif

语句

select * from emp where id > 3 and id < 6;

这里仅为了演示书写顺序,不考虑其他写法

执行顺序

最先执行的是 from,来确定到底是哪张表

然后执行 where,根据条件筛选数据

最后执行 select,来拿筛选出来的数据中的(某些,select 后面跟的字段名)字段

科普-- 起别名

关键字 as

可以给表起别名

可以给查询出来的虚拟表(查询结果)起别名

可以给字段起别名

可以给函数的结果取别名(max、min 等)

写法

要起别名的对象 as 别名 或者 直接 要起别名的对象 别名

不过尽量还是用as ,不用as 可能语义不明确

给函数结果起别名

... max(hire_date) as max_date ...

给表起别名

select ... from emp as t1 ....

给查

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值