导图社区 数据库
这是一篇关于数据库的思维导图,select 列名1,列名2,列名3... from 表名;查询雇员表的入职时间,部门编号,奖金例select hiredate,deptno,comm from emp。
编辑于2022-03-20 16:02:10数据库
什么是数据库
Datebase(数据库): 按照数据结构来组织、存储和管理数据的仓库 (存储数据的仓库)
用来管理数据库的软件系统
MySQL
Oracle
SQL Server等
什么是MySQL
MySQL是一个开源的关系型数据库管理系统
由瑞典MySQL AB公司开发,后来被Oracle收购,所以目前属于Oracle公司
MySQL分类
社区版 community
企业版 enterprise
MySQL特点
体积小
速度快
成本低
开放源码
官网 https://www.mysql.com
连接mysql
mysql -u用户名
mysql -p密码
例 mysql -uroot mysql -proot
安装了mysql以后,默认会有一个管理员:root
查看数据列表
show databases; -------查看当前数据库中的所有数据
create datebase 数据库名 charset utf8; -------创建一个数据库
例:create datebase yeah charest utf8; --------创建一个yeah库
use 数据库名; --------切换数据库(;可不加)
例:use yeah;
select database(); ------显示当前操作的数据库
select user(); -------显示当前的用户
show tables; -------查看当前数据库中的所有表名
导入数据
以.sql结尾的文件是数据库的脚本文件
使用root用户登录,切换到yeah数据库,然后执行以下命令
source (.sql结尾的文件路径)
1.拖动.sql文件进来
导入数据后可以重新查看数据库
2.show tables; ----查看当前数据库中的所有表名
SQL简介
SQL: Structured Query Language 结构化查询语言,用来对数据库进行查询、更新和管理的一种特殊语言
DML Data Manipulation Language 数据操作语言
用于检索或更新数据库
inser
delete
update
select 增删改查
DDL Date Danfinition Language 数据定义语言
用于定于数据的结构
create
alter
drop等
DCL Date Contor Language 数据控制语言
用于定于数据库的权限
grant
revoke
表结构
desc 表名; ------查看表结构
例:desc emp雇员表; -------查看emp雇员表结构
select * from 表名; -----查看表中的所有数据
例:select * from emp雇员表; -------查看emp雇员表中的所有数据
查询操作
语法
select 列名1,列名2,列名3... from 表名;
查询雇员表的入职时间,部门编号,奖金 例 select hiredate,deptno,comm from emp;
select 列名1 别名1,列名2 别名2,列名3 别名3...from 表名;
例 select hiredate 入职时间,deptno 部门编号,comm 奖金 from emp;
select * from 表名; ------- * 代表所有、全部
查询emp雇员表的所有列 例 select * from emp;
用法
concat() 字符串连接
编号为7369的雇员,姓名为smith,职位为CLERK 例 select concat('编号为',empno,'的雇员,姓名为',ename,',职位为'job) from emp;
+-*/ 四则运算
查询雇员的年薪 例 select ename sal*12 from emp;
查询雇员一年的年薪(奖金加工资) select ename 姓名 (sal+comm)*12 年薪 from emp; 例 select ename 姓名 (sal+ifnull(comm,0))*12 年薪 from emp;
奖金包含Null,myqsl中null不语任何值进行运算,结果都为null -------ifnull(comm,0) 如果有Null把Null当成0计算
distinct 去除重复列
查询所有职位 select job 职位 from emp; 例 select distinct job 职位 from emp;
限定查询
语法
select 列名1 别名1,列名2 别名2... from emp where 条件;
比较运算符
>、<、>=、<=、!=、<> -----!=、<> 都是不等于的意思
查询工资大于1200的雇员信息 例 select * from emp where sal>1200;
查询雇员的编号不是7963的雇员信息 例 select * from emp where ename!=7963; select * from emp where ename<>7963;
查询姓名是smith的雇员编号、姓名、工资、入职时间 例 select empno 雇员编号,ename 姓名,sal 工资,hiredate 入职时间 from emp where ename=smith;
null和not null
查询每月可以有可能获得奖金的员工信息 例 select * from emp where comm is not null=0
判断石否是null时,使用的是 is ,不能使用比较运算符
and
查询基本工资大于1000,同时奖金不为null的员工的姓名、工资和奖金 例 select ename 员工的姓名,sal 工资,comm 奖金 from emp where sal>1000 and comm is not null;
or
查询从事销售工作,或者工资大于等于2000的雇员信息 例 select * from emp where job='salesman' or sal>=2000;
not
查询从事非销售工作,并且工资不小于1500的雇员编号、姓名、职位、工资、入职时间
例1 select empno 雇员编号,ename 姓名,job 职位,sal 工资,hiredate 入职时间 from emp where job!='salesman' and sal>=1500;
例2 select empno 雇员编号,ename 姓名,job 职位,sal 工资,hiredate 入职时间 from emp where not job='salesman' and not sal<1500;
between and
查询工资大于等于1500,但是小于3000的雇员信息 例 select * from emp where sal between 1500 and 3000;
between and 包含临界值 ------between 小值 and 大值;
in 和 not in
查询编号不是7968、7900、7963的雇员信息 例 select * from emp where deptno not in (7968,7900,7963);
查询姓名为sith、allen、king的雇员编号、入职时间 例 select deptno,hiredate from emp where ename in('simth','allen','king');
like
用来进行模糊查询,需要配合通配符一起使用
% 可以匹配任意长度字符
查询雇员姓名以S开头的雇员信息 例1 select * from emp where ename like 'S%';
查询雇员姓名中包含M的雇员信息 例2 select * from emp where ename like '%M%';
_ 可以匹配单个字符
查询从事销售工作,并且姓名长度为4个字符的雇员信息 例 select * from emp where job='salesman' and ename like '____';
注意:日期 职位 姓名都需要加 “ ”
注意:MySQL中不区分大小写,而Oracle区分大小写