【学习笔记】大数据全栈成长计划-第二章:Mysql查询
【摘要】 第二章: 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)