MySql随笔记基础

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

 

    1. 原子性:

原子是自然界中最小的颗粒,具有不可再分的特性。事务中所有操作可以看做是一个原子,事务是不可再分的最小逻辑执行体,使用事务对数据进行修改的操作序列,要么全部执行,要么全部不执行。

    1. 一致性

一致性是指事务执行的结果必须使用数据库从一个一致性的状态,变到另一个一致性的状态。当数据库中只包含事按提交的结果时,数据库保持一致性状态。一致性是通过原子来保证的。

    1. 隔离性

隔离性是指各个事务之间互不干扰。

  1. 持久性

持久性事务一旦提交,对数据所做的任何改变,都会记录到永久存储器中。

 

 

视图:

视图的本质上就是一个查询语句,是一个虚拟表,你查看视图就是其实就是执行那条语句

 

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;

 

内容未完结......(持续更新)

 

posted @ 2023-03-27 14:14  萧熙  阅读(85)  评论(0编辑  收藏  举报