1.DB:database(数据库,在硬盘上以文件出现)
DBMS:database manage system(数据库管理系统,常见的有MySQL,Oracle,db2)
sql:结构化查询语言,是一门标准通用语言,标准的sql适用于数据产品
sql属于高级语言,在执行时内部先会进行编译,然后再执行sql,sql的编译由dbms完成
DBMA负责执行sql语句,通过执行sql语句来操作DB当中数据
2.什么是表:
table是数据库的基本组成单元,所有的数据都以表格的形式组织,目的是可读性强。
一个表包括行和列:行被称为数据/记录
列被称为字段
每一个字段包括的属性:字段名,数据类型,相关的约束
学号(int)姓名(varchar) 年龄
110 张三 20
120 李四 21
3.学习MySQL还是得学通用的sql语句
DQL:查询语句,凡是select语句都是DQL
DML:对表当中数据进行增删改insert delete update
DDL:create drop alter 对表结构的增删改
TCL:事物控制语言,commit提交事务,rollback回滚事务
DCL:数据控制语言:grant授权,revoke撤销权限
4.导入数据
第一步:登录mysql
dos
第二步:查看有哪些数据库
show databases;(这个不是sql语句,属于MySQL的命令)
第三步:创建属于自己的数据库
create database bjpowernode
第四步:使用bjpowernode: use bjpowernode
第五步:查看当前使用的数据库中有哪些表
show table;
第六步:初始化数据
在存放MySQL的文件夹中找到resources里面的bjpowernode.sql
打开dos命令行输入source+把文件拖过来,完成初始化
5.bjpowernode.sql以sql结尾马,这样的文件被称为脚本
当一个文件的扩展名是sql,并且文件中编写了大量的sql语句,我们称之为该文件为sql脚本
可以直接使用source命令执行sql脚本
sql脚本中的数据量太大,无法打开,请使用source命令完成初始化
-
常用命令
MySQL中SELECT命令类似于其他编程语言里的print或者write,你可以用它来显示一个字符串、数字、数学表达式的结果等等。如何使用MySQL中SELECT命令的特殊功能?
1.显示MYSQL的版本 mysql> select version(); +-----------------------+ | version() | +-----------------------+ | 6.0.4-alpha-community | +-----------------------+ 1 row in set (0.02 sec)
2.查看当前是那个数据库
mysql>select database()
7.查看创建表的语句
show create table emp
(怎么查看创建这张表的语句)
8.
简单的查询
1.简单的查询语句(DQL)
语法格式:
select 字段名1,字段名2,字段名3。。。。form 表名
1.任何一条sql语句以;结尾
2.sql语句不区分大小写
例如 查询员工年薪
![image-20220127094027686](C:\Users\86150\AppData\Roaming\Typora\typora-user-images\image-20220127094027686.png)
怎么给查询结果的列重命名
select ename ,sal * 12 as yearsal from emp
标准sql语句要求字符串用单引号括起来。
2.条件查询
语法格式
select
字段,字段
from
表名
where
and和or和in的问题
and和or联合起来使用,找出薪资大于1000的并且编号20或者30的员工
select ename,sal,deptno from emp where sal >1000 and deptno=20 or deptno =30
这里执行可以看出,or的优先级高于and,所以正确的语句可以这样写
select ename,sal,deptno from emp where sal >1000 and (deptno=20 or deptno =30)
in等同于or
select ename,sal,deptno from emp where sal in(1000,5000);
in后面跟的不是区间,是两个值
not in :不在这几个值中
like模糊查询
支持% _匹配
找出名字中有o的
%代表任意多个字符,_代表任意一个字符
select ename from emp where ename like ‘_A%’
排序(升序,降序)
select ename,sal from emp order by sal;//默认升序
select ename,sal from emp order by sal asc;//升序
select ename,sal from emp order by sal desc;//降序
按照工资降序排列,当工资相同时按照名字的升序排列;
select ename,sal from emp order by sal desc,ename asc;
越靠前的字段越起到主导作用,只有前面的字段无法排序时候,才会启用后面的字段
分组函数
count 计数
sum求和
avg平均值
max最大值
min最小值
所有的分组函数都是对某一组的数据进行操作的
对sal求和,对工资求和
select sum(sal) from emp;
count所有和count具体某个字段的区间
select ename,sal from emp where sal>avg(sal)
分组函数不可直接使用在where语句中
count(*):不是统计某一个字段数据的个数,而是统计总记录条数
count(comm):表示统计comm字段中不为null的数据总数量
group by和having
group by:按照某个字段或者某些字段进行分组
having:having是对每个分组之后的数据进行再次过滤
找出 每个工作岗位的最高薪资
select max(sal)from emp group by job;
group by是在where之后才执行的
当一条sql语句没有group by的话,整张表数据会自成一组
select
。。
from
。。
where
。。
group by
。。
having
。。
order by
。。