【学习笔记】大数据全栈成长计划-第二章:Mysql查询

举报
真爱无敌 发表于 2021/01/12 09:07:34 2021/01/12
【摘要】  第二章: Mysql查询1.mysql的常见命令及语法规范#查看当前所有的数据库show databases;#打开指定的库use test;#查看当前库的所有表show tables;#查看其它库的所有表show tables from mysql(库名);select database();#创建表create table stuinfo(  id int,  name varchar...

 

第二章: Mysql查询

1.mysql的常见命令及语法规范

#查看当前所有的数据库
show databases;
#打开指定的库
use test;
#查看当前库的所有表
show tables;
#查看其它库的所有表
show tables from mysql(库名);
select database();
#创建表
create table stuinfo(
  id int,
  name varchar(20)
)
#查看表结构
desc stuinfo;
#查询表数据
select * from stuinfo;
#插入数据
insert into stuinfo(id,name) values(1,'John');
#更新数据
update stuinfo set name='lilei' where id =1;
#删除数据
delete from stuinfo where id=1;

语法规范:
1)不区分大小写,单建议关键字大写,表名、列名小写
2)每条命令最好用分号结尾
3)每条命令根据需要,可以进行缩进或换行
4)注释
    单行注释:#注释文字
    单行注释: --注释文字
    多行注释: /*  注释文字   */

2)Mysql的DQL和DML和DDL语言
DQL:基础查询、条件查询、排序查询、常见函数、分组函数、分组查询、连接查询、子查询、分页查询、union联合查询
DML:插入语句、修改语句、删除语句
DDL:库和表的管理、常见数据类型、常见约束
TCL:事务和事务处理

2.mysql查询:

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

# 1.查询表中的单个字段
select last_name from employees;
# 2.查询表中的多个字段
select last_name, salary, email from employees;
# 3.查询表中的所有字段
select 所有字段名 from employees;
select * from employees;
# 4.查询常量
select 100;
select 'john';
# 5.查询表达式
select 100%98
# 6.查询函数
select version();
# 7.起别名
#方式一:使用as
select 100%98 as 结果;
select last_name as 姓, first_name as 名 from employees;
#方式二:使用空格
select last_name 姓, first_name 名 from employees;
# 8.去重
select distinct department_id from employees;
# 9.+号的作用
/*  mysql中的+号仅仅有一个功能:运算符
 select 100+90;  两个操作数都为数值型,则做加法运算
 select '123' + 90; 其中一方为字符型,视图将字符型数值转换成数值型,如果成功,则继续做加法运算
 select 'john' + 90; 如果转换失败,则将字符型数值转成0;
 select null + 10; 只要其中一方为null,则结果肯定为null;
*/
select last_name+first_name as 姓名 from employees;
# 10.concat连接
select concat('a','b','c') as 结果;

--条件查询
/* 语法:
select 查询列表 from 表名 where 筛选条件;
分类:
1、按条件表达式筛选      条件运算符:>  <  =  !=  <>  >=  <=
2、按逻辑表达式筛选      逻辑运算符:&&  ||  !  and   or   not    (作用:用于连接条件表达式)
3、模糊查询   like   between  and   in   is null
*/

# 1.按条件表达式筛选
select * from employees where salary > 12000;
select last_name, department_id from employees where department_id != 90;

# 2.按逻辑表达式酾浚
select last_name, salary, commission_pct  from employees where salary >= 10000 and salary <= 20000;

# 3.模糊查询like
select * from employees where last_name like '%a%';
select last_name, salary from employees where last_name like '__n_l%';
select last_name, salary from employees where last_name like '_$_%' escape '$';

# 4.模糊查询between and
select * from employees where employee_id >=100 and employee_id<=120;
select * from employees where employee_id between 100 and 120;

# 5.模糊查询in
select last_name, job_id from employees where job_id in ('IT_PROT', 'AD_VP', 'AD_PRES');

# 6.模糊查询is null
select last_name, commission_pct from employees where commission_pct is not null;
select last_name, commission_pct from employees where commission_pct is null;

# 7.模糊查询 安全等于<=>
select last_name, commission_pct from employees where commission_pct <=>NULL; //查询没有奖金的员工名和奖金率
select last_name, salary from employees where salary <=>12000; //查询工资为12000的员工信息

--排序查询
/* 语法:
select 查询列表 from 表名【 where 筛选条件】 order by 排序列表 【asc | desc】;
例:
select * from employees order by salary desc;
#按年薪高低显示员工信息和年薪
select *, salary * 12 * (1 + IFNULL(commission_pct, 0)) 年薪  from employees order by 年薪  DESC;

特点:
1)ASC代表升序,DESC代表降序,如果不写,默认是升序
2)order by子句中可以支持单个字段、多个字段、表达式、函数、别名
3)order by 子句一般是放在查询语句的最后面,limit子句除外
*/

 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。