博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
学习数据库视频笔记1------附上视频地址:https://www.bilibili.com/video/BV1fx411X7BD
阅读量:3969 次
发布时间:2019-05-24

本文共 3367 字,大约阅读时间需要 11 分钟。

数据库笔记1

1、SQL、DB、DBMS的关系

DB:DataBase(数据库)在硬盘以文件的形式存在

SQL: 结构化查询语言,高级语言,编译后执行

DBMS: DataBase Manager System (数据库管理系统) Mysql,SQLservice,Oracle,DB2,Syba se

关系:DBMS来执行SQL语句进而操作DB数据

2.表、通用的SQL语句

表:数据库基本组单位

DQL (数据查询语言) :select语句

DML(数据操作语言) : insert、update、delete

DDL(数据定义语言) : create、alter、drop

TCL(事务控制语言): commit 提交事务、rollback 回滚事务

DCL(数据控制语言):grant 授权、revoke 撤销权限

查看数据库:show databases;

创建数据库:create database 数据库名;

查看表: show tables;

初始化数据:source sql文件的路径;

删除数据库:drop database 数据库名;

拓展:

查看使用的数据库: select database();

查看mysql 版本号:select version;

结束一条语句:\c

3、查询语句(DQL)

简单的省略…

条件查询:

…是数字:between… and… 是闭区间

…是字符:between… and …是左闭右开区间

空null:不是一个值,不能用等号判断: is null 和 is not null。

关键字in: in(100,200):是具体的数字,不是区间。

模糊查询like: % _

案例:名字中含有_: 使用转义字符:_ 来查询

升序: asc(默认)

降序:desc

顺序:

select 	字段						3from	表名						1where	条件						2order by	....				      4order by是最后执行的

4、分组函数

5大分组函数:count 、sum、avg、 max、min

分组函数:多行处理函数

分组函数在遇到null的时候:自动忽略null

分组函数不能直接跟在where条件后面:group by 是在where执行后才会执行

select		5	..			from		1	..where		2	..group by	3	..having		4    ..order by    6	..

count(*)和count(某个字段)的区别?

​ count(*):统计的是总的条数

​ count(某个字段):表示这个字段中国null的数据总数量

数据库中规定:有null参与的运算结构一定是null

案例:计算员工的年薪

mysql> select ename ,(sal+comm)*12 as '年薪'from emp;+--------+----------+| ename  | 年薪     |+--------+----------+| SMITH  |     NULL || ALLEN  | 22800.00 || WARD   | 21000.00 || JONES  |     NULL || MARTIN | 31800.00 || BLAKE  |     NULL || CLARK  |     NULL || SCOTT  |     NULL || KING   |     NULL || TURNER | 18000.00 || ADAMS  |     NULL || JAMES  |     NULL || FORD   |     NULL || MILLER |     NULL |+--------+----------+14 rows in set (0.00 sec)mysql> select ename ,(sal+ifnull(comm,0))*12 as '年薪'from emp;+--------+----------+| ename  | 年薪     |+--------+----------+| SMITH  |  9600.00 || ALLEN  | 22800.00 || WARD   | 21000.00 || JONES  | 35700.00 || MARTIN | 31800.00 || BLAKE  | 34200.00 || CLARK  | 29400.00 || SCOTT  | 36000.00 || KING   | 60000.00 || TURNER | 18000.00 || ADAMS  | 13200.00 || JAMES  | 11400.00 || FORD   | 36000.00 || MILLER | 15600.00 |+--------+----------+14 rows in set (0.00 sec)

if null 是空处理函数属于单处理函数

5、group by 和having

group by : 按照某个字段或者某些字段跟组

having : 是对分组之后的数据进行再次过滤

分组函数一把和group by 联合使用,

注意:当使用分组group by后,select后面只能跟分组函数和参与分组的字段

案例:每个工作岗位的平均薪资?

select	job,	avg(sal)from	empgroup by	job;

案例:找出每个部门的最大薪资,并且显示大于2900的数据

mysql> select max(sal),deptno from emp group by deptno;+----------+--------+| max(sal) | deptno |+----------+--------+|  3000.00 |     20 ||  2850.00 |     30 ||  5000.00 |     10 |+----------+--------+3 rows in set (0.00 sec)mysql> select max(sal),deptno from emp where sal>2900 group by deptno;+----------+--------+| max(sal) | deptno |+----------+--------+|  3000.00 |     20 ||  5000.00 |     10 |+----------+--------+2 rows in set (0.00 sec)

案例:找出每个部门的平均薪资,并且显示大于2900的数据

mysql> select avg(sal),deptno from emp group by deptno;+-------------+--------+| avg(sal)    | deptno |+-------------+--------+| 2175.000000 |     20 || 1566.666667 |     30 || 2916.666667 |     10 |+-------------+--------+3 rows in set (0.00 sec)mysql> select avg(sal),deptno from emp group by deptno having avg(sal)>2000;+-------------+--------+| avg(sal)    | deptno |+-------------+--------+| 2175.000000 |     20 || 2916.666667 |     10 |+-------------+--------+2 rows in set (0.00 sec)

总结:完整的SQL语句

select	..	5from 	..	1where	..	2group by 	..	3having	..	4order by	..	6

转载地址:http://afcki.baihongyu.com/

你可能感兴趣的文章
SQL - SQL Server 性能优化之SQL语句总结
查看>>
Docker - docker-compose常用命令
查看>>
SQL - SQL Server判断字符串中是否有中文
查看>>
SQL - SQL Server查询近7天的连续日期
查看>>
SQL - SQL Server中如何取年、月、日 -DATEPART函数
查看>>
SQL - SQL Server 一列或多列重复数据的查询,删除
查看>>
NET - .NET Core WebAPI + Vue + Axios 导出Excel / CSV
查看>>
NET - NET Core quartz.net 时间表达式----- Cron表达式详解
查看>>
NET - .NET Core 之 Abp Audit-Logging
查看>>
NET - .NET Core 之 Abp 整合 Quartz
查看>>
Spring - Nacos 配置实时更新原理分析
查看>>
依赖注入
查看>>
android 各式各样progress 进度条大全
查看>>
开发Google眼镜的app
查看>>
Android base-adapter-helper 源码分析与扩展
查看>>
Android 4.4从图库选择图片,获取图片路径并裁剪
查看>>
Android Fragment 你应该知道的一切
查看>>
使用AudioManager调节播放器音量的开发实例
查看>>
安卓开发者必备的42个链接
查看>>
Eclipse下Ant自动打包,混淆和签名
查看>>