栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据

诶呀~数据库2

大数据 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

诶呀~数据库2

一、条件查询

1、distinct去重

select distinct 列名 from 表名;

where用来引导判断条件

select * from 表名where id=?

select * from 表名 where 1=1;等式成立,条件永远成立,会把所有的东西都查询出来。

2、as可以修改列名----select name as empname from emp; 也可以省略as

3、length长度,一个中文是3个字符长度

4、limit:SELECt * FROM emp LIMIT 2;展示前面两天数据。

SELECt * FROM emp LIMIT 1,2;---从第二条展示两条数据。

5、order by---排序,默认是升序

格式是: select * from 表名 order by 查询的字段。

SELECt * FROM emp ORDER BY sal;按照薪资排序有小到大

降序排序 在后面加desc----SELECt * FROM emp ORDER BY sal DESC;薪资由大到小进行排序。

6、year(date--参数):查询那年以后的人员信息

SELECt * FROM emp WHERe YEAR(birthday) >1995;表示查询1995年以后出生的人员信息。

7、统计案例---统计emp中的年薪

select name,sal,bonus,sal*13+ifnull(bonus,0)*13 '年薪' from emp;

二、聚合函数

常见的有:count(),sum(),avg(),max(),min()

1、COUNT( 列名|* ):统计结果集中某一列或记录行的行数。--括号里可以写*也可以写列名。

假如说统计的行数里有null值是不会被统计进去的。

count(*):低效查询---都是查询所有

count(1):高效查询都是查询所有

2、SUM( 列 ):统计结果集中某一列所有值的和--多行函数会剔除null值,所以相加不会出现null。

3、avg()求平均数,max(),min()最大最小值

4、group by:表示分组查询

语法:SELECt 列 | * FROM 表名 [WHERe子句] GROUP BY 列;

SELECt job,AVG(sal+IFNULL(bonus,0)) '平均薪资' FROM emp GROUP BY job;---根据job分组求平均薪资。

统计每个部门的人数:SELECt job,COUNT(job) FROM emp GROUP BY job;

练习每年每年入职的人数,统计每个部门的最高薪

SELECt NAME,YEAR(birthday),COUNT(1) FROM emp GROUP BY YEAR(birthday);查询同年的出生日期相同的人数。

SELECt job,MAX(sal) FROM emp GROUP BY job;查询每个部门最高薪资。

5、having:分组后进行数据过滤。

语法:select job,max(sal) from emp group by job having max(sal)>4000;分组查询每个部门最高薪资后过滤最高薪资大于4000的部门有那些。

where里不能用别名,另外也不能出现聚合函数!!比having高效!!!~~

#having和where能互换吗?效率谁高?

不能互换,where是在查询前做条件限制,having是在查询后做数据筛选,查询前做限制的话,返回的值会少些,而在查询后的结果集上做限制的话,之前的查询结果可能会很多,这样就会影响性能,所以,一般是用where,having是在where不方便或者不能使用的情况下才使用

三、事务

概述:进行业务时,保证多条业务要么全成功,要么全失败。

四大特性:

原子性:表示多条SQL,看作一个原子,密不可分,要么全成功,要么全失败

隔离性:数据库为保证性能也支持高并发,但是有安全隐患,保证多个操作之间是隔离的

持久性:对数据库进行的操作是持久影响的。

一致性:保证数据在多个系统中是一致的。

隔离级别: 从上至下,安全性越来越好,但是性能越来越差
1, 读未提交: 性能最好,但是安全性最差
2, 读已提交: 性能较差,安全性较高,Oracle数据库的默认隔离级别
3, 可重复读: 性能较差,安全性较高,MySQL数据库的默认隔离级别
4, 串行化: 性能太差

自动管理事务步骤

开启事务:start transaction;

结束事务; commit(提交事务),rollback(回滚事务)

约束----

1、默认约束:default---设置好默认值。

2、检查约束:check--录入不合法数据时无法保存,check(age<10)

3、外键约束:foreign key----将两个表之间关联起来,格式时foreign key(表1的特性属性值)    references  表2(要关联表1的特性属性值)

foreign key(dept_id) references dept(id)

特点:子表中的主键值 必须取自于主表,否则保存不下来的呀。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/278149.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号