学习mysql ver 1.0

今天学习下Mysql 数据库

Mysql 5.5.62 window版 下载 密码ruby

默认需要记住的:

  • DQL select(数据查询语言):查询
  • DML insert,update,delete(数据操作语言):增删改
  • DDL create,drop,alter(数据定义语言)创建(表),删除(字段),添加(字段)
  • TCL commitrollback(事务控制语言):事务提交,事务回滚
  • DCL grant revoke(数据控制语言):授权,撤销

开启数据库

net start mysql;

关闭数据库

net stop mysql;

看有多少库文件

show databases;

使用表

use 表名

看表的列名等数据

desc 表名

《单表查询》为主,以此表为查询数据(表名emp)

以这张表数据为准

1》查询表中数据

select * from emp;
select ename,job,mgr,hiredate,sal,comm,deptno from emp;

2.》在数据库当中‘’null’ 数据的对比不能使用“=”进行衡量 所以where 列名 = null ;无法成立,需要用 is 来代替

select * from emp where comm = null;无法成立
select * from emp where comm is null;

3.》
lower 转换小写
upper 转换大写

substr取子串(字段,起始下标,截取长度)
concat 字符串拼接
length 取长度
trim去除前后空白

1|select lower(ename) from emo;
2|select upper(ename)from emp;
3|select substr(ename,1,1) as ename from students;//起始下标从1开始
4|select concat(substr(ename,1,1),sub(ename,2,3))as newname from emp;
5|select ename from emp where length(ename) = 2;
6|select name from students where name = trim('     king');

4.》ifnull(字段,0)如果comm数据中有Null,数据相加就也会是Null的结果;
所以使用ifnull这个方法来做判断,comm这个字段下的字面量有Null就替换成0来所计算

select ename,(sal + ifnull(comm,0))*12 as yearsal from emp;

case…when…zhen…wen…zhen…else …end
(case 字段,when 条件 then 执行 when条件 then 执行 else 执行 end)


查询名字,工作,(匹配(job) 当job =manager 然后 工资显示为sal1.1
当job = salesman 然后 工资显示为sal
1.5 ,其他的正常显示,结束)

select ename,job,(case job when 'manager' then sal*1.1 when 'salesman' then sal*1.5 
else sal end) as newsal from emp;

分组查询

  1. count计数
  2. sum 求和
  3. avg 平均值
  4. max 最大值
  5. min 最小值

count(具体字段) ;表示统计该字段下所有不为NULL的元素的总数、
count():统计表当中的总行数,只有(只要有一行数据count 则++)
可以试下
select count(comm) from emp;
select count(
) from emp;

执行顺序(不可变,*****5颗星,group by 运用 *****5颗星)
1.from
2.where
3.group by
4.having
5.select
6.order by

在一条select 语句当中,如果有group by 语句的话,select 后面智能跟:参加分组的字段,以及分组函数,其他一律不能跟

1.获取每个部门的平均薪资 的数据
 select avg(sal) from emp group by deptno;
2.获取每个部门,每个工种的最高薪资 的数据
 select job,deptno,max(sal) from emp group by deptno,job;
3,获取每个部门 每个工种中 工资大于3000的数据
select job,deptno,max(sal) from emp where sal > 3000 group by deptno,job;
4.获取每个部门,每个工种 ,平均工资大于2500的数据
  select job,deptno,avg(sal) from emp group by deptno,job having avg(sal) > 2500;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值