XAMPP使用 shell 命令
每个数据库对应 一个子文件夹
mysql 进入mySQL的命令
-uroot userroot 登录用户 -uroot
-p password 登录密码 -p123
show databases 显示数据库
use databaseName 使用哪个数据库
show tables 显示数据表
alter --更改数据库或数据表的结构
-- 插入数据先 插入实体表的数据 再插入关系表数据
-- 删除数据 先删除关系表的数据 再删除实体表数据
聚集函数:
查询:
表的设计,会影响到数据的查询
where 查询 最终 返回的是 布尔值
from 相当于循环语句
*
select 相当于输出语句 能够输出一个表达式
as 可以给 列名取别名
条件运算符:
>, <, >=, <=, =, != 或 <>
and, or, not
between 在...之间
is, in, like, exists, some, any,all
表达式:
是由 变量、常量、运算符、函数等组成的公式
查询的 select 的基本语法格式:
select * from 表名 where 表达式
ground by 分组
having 分组后按条件查询
筛选
order by
having:
having 子句 和where子句的区别:
所有where的子句都适用于having代替,having 非常类似于 where。where过滤指定行,having过滤分组
分组和排序:
GROUP BY 和 ORDER BY group by 和 order by
子查询:
SQL 还允许创建子查询(subquery),即嵌套在其他查询中的查询。
注意:子查询和性能
事务:
事务 指一个操作序列,该操作序列中的多个操作要么都做,要么都不做
事务的特性:
原子性(Atomcity)
一致性(Consistency)
隔离性(Isolation)
持久性(Durability)
简称:ACID
- 原子性:
原子是自然界中最小的颗粒,具有不可再分的特性。事务中所有操作可以看做是一个原子,事务是不可再分的最小逻辑执行体,使用事务对数据进行修改的操作序列,要么全部执行,要么全部不执行。
- 一致性
一致性是指事务执行的结果必须使用数据库从一个一致性的状态,变到另一个一致性的状态。当数据库中只包含事按提交的结果时,数据库保持一致性状态。一致性是通过原子来保证的。
- 隔离性
隔离性是指各个事务之间互不干扰。
- 持久性
持久性事务一旦提交,对数据所做的任何改变,都会记录到永久存储器中。
视图:
视图的本质上就是一个查询语句,是一个虚拟表,你查看视图就是其实就是执行那条语句
Sql语句展示:
创建视图:
create or replace view 表名
as
select 列名,列名
from 表名
where 条件
with check option;
-- or replace 如果有就替换
-- 视图的使用
-- 创建视图 -- create or replace 创建 或者 替换(存在表时)
create or replace view view1
as
select empno,ename,job,deptno
from emp;
select * from view1;
-- 带条件的视图
create or replace view view2
as
select empno,ename,job,deptno
from emp
where deptno = 30;
select * from view2;
-- 在视图中插入数据 会将数据插入在实体表中
insert into view2 (empno,ename,job,deptno) values(8888,'zhangsan','cleak',30);
insert into view2 values(8888,'zhangsan','cleak',30);
-- 插入数据会出现 不想要的结果 可以加上 with check option 带有查询选项 和查询的条件一致才能插入 可以避免不必要的麻烦 建议加上
create or replace view view2
as
select empno,ename,job,deptno
from emp
where deptno = 30
with check option;
select * from view2;
-- 创建或替换多表视图
create or replace view view3
as
select e.empno, e.ename,e.job,d.deptno,d.dname
from emp e,dept d
where d.deptno = 20 or d.deptno = 30;
select * from view3;
存储过程:
作用
-- 存储过程
-- 定义一个没有返回值的存储过程
-- concat('%',name,'%') 拼接函数 禁止直接使用 '%'+ a +'%'
select * from emp where ename like '%a%';
create procedure demopro1(name varchar(10))
begin
if name is null or name = "" then
select * from emp;
else
select * from emp where ename like concat('%',name,'%');
end if;
end;
-- 执行存储过程(函数)
call demopro1(null);
call demopro1('a');
call demopro1('n');
-- 删除存储过程(函数)
drop procedure demopro1;
内容未完结......(持续更新)