MySQL_05

05 mysql之DDL DDL 是 SQL 的一部分,用于定义和管理数据库的结构(模式)。包含了create、drop、alter、truncate; 阅读详情

表增加列,修改列,删除列

增加列:增加的列默认是在表的最后一列,可以用after来声明新列在哪列后面,如果要放在第一列,加first即可

alter table tb add name varchar(10) not null after id;  (列声明)

alter table tb add name varchar(10) not null first;

修改列

alter table tb change name newname varchar(20) not null;

删除列

alter table tb drop name;

 

视图

由查询结果形成的一张虚拟表

结构:create view 视图名 as select语句

create view gui as select goods_id,goods_name ,shop_price from goods where shop_price>3000;

select * from gui;

show tables;

desc gui;

 

视图的作用:

1,  简化查询。

2,  可以进行权限控制(把表的权限封闭,开放相应的视图权限,视图里只包含部分列部分数据)。

3,  大数据分表时可以用到(表的行数超过200万时,存取速度变慢,方法1:可以把表拆成多张表来存放;方法2: 把4张表形成一张视图)

create view new as select * from t1 union select * from t2....

 

删除视图:drop view 视图名

 

修改视图:alter view as select ...

 

视图与表的关系:

1,视图是表的查询结果,跟随表的数据改变而改变

2,视图增删改也会影响表,但视图并不总是能增删改(视图的数据与表的数据一一对应时,可以修改)(对于视图insert还应注意,视图必须包含所有表中没有默认值的列)

 

字符集

创建数据库或表时可以指定字符集 charset utf8;

create database/table name .. charset utf8;

查看表或数据库的默认编码show create table/database name;

1,设置客户端发送过去的字符编码:set character_set_client=gbk;

2,设置转换器将转换成的编码:set character_set_connection=gbk;

3,设置服务器返回的编码:set character_set_results=gbk;

1,2,3的步骤简写为:set names gbk;

 

乱码:

1,  client声明与事实不符

2,  results与客户端页面编码不符

 

丢失数据:

转换器和服务器的字符集比Client字符集小时,将丢失数据

 

校对集

概念:对字符集的排序规则

show collation;

show character set;

show collation like ‘utf8%’;

 

触发器trigger

触发器是一类特殊的事务 ,可以监视某种数据操作(insert/update/delete),

并触发相关操作(insert/update/delete)

 

触发器创建语法 之4要素: 监视地点(table),监视事件insert/update/delete,触发时间after/before,触发事件insert/update/delete

 

创建触发器的语法

create trigger 触发器名称

after/befor (触发时间)

insert/update/delete (监视事件)

on  表名 (监视地址)

for each row

begin

sql1;

..

sqlN;

end;

(为防止MySQL遇到分号结束语句,需取消分号的结束权,使用delimiter + 新符号)

 

在触发器中引用行的值

对于insert,新增的行用new表示,行中的每一列的值,用 new.列名 表示

对于delete,被删除的行用old表示,行中的列用old.列名 引用

对于update,修改前的数据用old表示,修改后的数据用new来引用,用new/old.列名引用列

 

触发器里after和before的区别

after先完成数据的增删改,再触发,触发中的语句晚于增删改,无法影响前面的增删改

before先完成触发,再增删改,触发的语句先于监视的增删改发生,可以判断、修改即将发生的操作

 

查看所有触发器:show triggers;

 

删除触发器:drop trigger triggerName

 

例:

create table g (id int,name varchar(10),num int)charset utf8;

create table o (oid int,gid int,much int)charset utf8;

insert into g values(1,'猪',22),(2,'羊',19),(3,'狗',12),(4,'猫',8);

select * from g;

insert into o values (1,2,3);

select * from o;

update g set num=num-3 where id=2;

select * from g;

#以下这句取消分号作为结束符,而改用$

delimiter $

#监视地点o表

#监视操作insert

#触发操作update

#触发时间after

create trigger tg1

after insert on o

for each row

begin

update g set num=num-3 where id=2;

end$

delimiter ;

insert into o values (2,2,3);

select * from g;

show triggers;

drop trigger tg1;

delimiter $

#添加订单,库存减少

create trigger tg2

after insert on o

for each row

begin

update g set num=num-new.much where id = new.gid;

end$

delimiter ;

truncate o;

insert into o values (1,4,1);

select * from g;

 

#删除订单,库存增加

#监视地点 o表

#监视事件 delete

#触发事件 update

#触发时间 after

delimiter $

create trigger tg3

after delete on o

for each row

begin

update g set num=num+old.much where id = old.gid;

end$

delete from o where oid=1 $

select * from g $

 

#修改订单,库存更新

#监视地点 o表

#监视事件 update

#触发事件 update

#触发时间 after

delimiter $

create trigger tg4

after update on o

for each row

begin

update g set num = num + old.much – new.much where id=old.gid;

end$

insert into o values (1,1,3)$

update o set much=5 where oid=1$

select * from g$

 

#对于所下订单进行判断,如果订单的数量大于5,就认为是恶意订单,并强制把所订的商品数量改成5

#监视地点 o

#监视事件 insert

#触发事件 update

#触发时间 before

drop trigger tg2 $

create trigger tg5

before insert on o

for each row

begin

       if new.much > 5 then

              set new.much = 5;

       end if;

       update g set num=num-new.much where id = new.gid;

end$

 

存储引擎

数据库对数据的存储方式和管理方式

show engines;

事务

一组相互关联的sql操作

使用Innodb存储引擎

事务的ACID特性:

1.          原子性(Atomicity):原子意为最小的粒子,或者说不能再分的事物。

数据库事务的不可再分的原则即为原子性。 组成事务的所有查询必须:

要么全部执行,要么全部取消。

2.          一致性(Consistency):指数据的规则,在事务前/后应保持一致

3.          隔离性(Isolation):简单点说,某个事务的操作对其他事务不可见的.

4.          持久性(Durability):当事务完成后,其影响应该保留下来,不能撤消

 

开启事务:start transaction

执行sql操作

提交/回滚:commit/rollback(注意某些隐式提交)

 

 

备份与恢复

系统运行中,分增量备份和整体备份(相互配合使用)

备份单独库下面的所有表的方法(不导出库)

mysqldump -uuname -ppasswd dbname > /dir/filename

例:mysqldump –uroot –p112599 php > d://a.sql

备份某一库下面的几个表的方法

mysqldump -uuname -ppasswd dbname table1 table2.. tableN  > /dir/filename

例:mysqldump -uroot -p112599 php user stu > d://a.sql

备份多个库的方法

mysqldump -uname -ppasswd -B db1 db2 > /dir/filename

备份所有库的方法

mysqldump -uname -ppasswd -A > /dir/filename

 

恢复:

1:在命令行操作

mysql -uuname -ppasswd [databaseName]< /dir/filename

2:登陆mysql后source操作

mysql> use dbname;

mysql> source  /dir/filename;

 

索引

给数据加的目录

索引的作用:加快了查询速度(select )。缺点:降低了增,删,改的速度(update/delete/insert),增大了表的文件大小(索引文件甚至可能比数据文件还大)

索引的使用原则:不过度索引。索引条件列(where后面最频繁的条件比较适宜索引),索引散列值,过于集中的值不要索引,例如:给性别"男","女"加索引,意义不大

索引类型:普通索引  (index),主键索引  (primary key),唯一索引  (unique),全文索引  (fulltext)

 

索引的创建语法

方法1:

建表时直接声明索引:

create table tableName (

列1 列类型 列属性,

....

列N 列类型 列属性,

#主键索引:不能重复,但唯一索引不一定是主键,一张表只能有一个主键(可能是组合主键),但是可以用一个或多个唯一索引

#普通索引仅加快查询速度

#唯一索引不能重复

#全文索引

primary key (列名),

index  [索引名] (列名),

unique [索引名] (列名),

fulltext [索引名] (列名)

)engine xxxxx  charset xxxx

方法2:

通过修改表建立索引

alter table add index (列名);

alter table add unique (列名);

alter table add primary key(列名);

alter table add fulltext (列名);

索引产生的文件以.MYI为后缀,数据文件以.MYD为后缀

 

索引的删除:

删除主键:

alter table 表名drop primary key

删除其他索引:

alter table 表名 drop index 索引名

注:索引名一般是列名,如果不是,可通过show index from tableName查看索引

 

全文索引

全文索引在mysql的默认情况下,对于中文意义不大

使用方法:match(全文索引名) against (‘keyword’)

普通查询(速度慢)

 

利用全文索引查询

 

查看匹配度

 

停止词:全文索引不针对非常频繁的词作索引

 

《MySQL实战指南》12-05:实践案例 -- 阅读详情

相关推荐

SQLyog Enterprise v8.05:高级MySQL数据库管理工具

SQLyog Enterprise v8.05提供了直观且用户友好的界面设计,使得数据库的管理和操作变得简单高效。它集成了诸如数据浏览、编辑、查询、备份与恢复等多种功能,旨在提升数据库管理的生产效率。用户可以快速找到他们需要的工具,以完成从基本到高级的各种数据库任务。SQLyog为用户提供了一套灵活的界面布局设置,允许用户根据个人习惯和工作需要来调整界面。对于熟练的数据库管理员(DBA)而言,能够迅速地访问常用的工具和功能是至关重要的。

weixin_42466723的博客 1011

MySQL基础05

MySQL基础05

qq_34574883的博客 370

05 MySQL 安装

MySQL 是常用的业务数据库,这里不再过多解释。直接安装,作为大数据需要同步的业务数据源。

qq_41758289的博客 473

Mysql整理笔记05

Mysql整理笔记05

xlshi1996的博客 114

小白学电路之cadance搭建buffer电路

Buffer(缓冲器)是一种放大器或驱动电路,主要用于隔离输入和输出,以防止负载对前级电路造成干扰或影响。本文作者在电路方面是小白水平,目前正在学习,有不足之处欢迎指正。3.创建新的cellview,对此buffer进行仿真验证。2.创建buffer的symbol。电路中的V2的详细参数。

weixin_58051657的博客 1983

STM32H7 FOC控制时序优化与PWM中点更新策略

在永磁同步电机(PMSM)的磁场定向控制(FOC)系统中,控制时序精度是决定电流环带宽、观测器收敛性与动态响应能力的基础要素。其核心在于理解PWM生成、ADC采样与控制计算三者之间的硬件级时间耦合关系——尤其在中心对齐模式下,标准更新机制引入的半周期延迟会破坏电压-电流瞬时映射,导致滑模观测器失配与高频相位滞后。通过将PWM更新事件绑定至重复计数器(RCR)清零点,可实现控制指令在开关周期中点生效,使等效电压矢量中心与计算时刻严格对齐。该策略显著提升系统确定性,为20 kHz以上高频电流环提供物理支撑,并广

flink9streamer的博客 857

mysql安装遇到的问题,拒绝访问05

mysql安装遇到的问题,允许net start mysql拒绝访问05 遇到的问题 解决方法 是用管理员方式启动的cmd,但还是拒绝访问,看了这个帖子后解决,是配置文件的符号弄错了(叹气) https://blog.youkuaiyun.com/qq_38157534/article/details/108852903 配置的斜杠正确符号是“/” 改了后发现还是不行,是因为以前下过的mysql没删干净,改个路径即可。 打开注册表编辑器 目录地址左上角,将数据改成自己解压的mysql在的地址,记得要加后面的mysql

a1561532803的博客 1289

动态表单设计

自定一表单数据结构。内容展示如有必要行转列。前端根据题目类型自定义组件后端跟俊题目类型用策略模式校验各种类型这样有统计功能的简单动态问卷就可以了展示时可能某些场景需要行转列。大概估摸使用的话有可能kmic_form_data_detail表的记录数比较大,后期再考虑数据或者表迁移或拆分。

zquwei的博客 3451

mysql 05_MySQL 05

事务基本概念事务: Transaction事务是由一个或多个sql语句构成的逻辑单元, 是一个整体的概念作用: 使得一系列sql语句要么全部完成, 要目全部不完成, 保证了数据库的完整性四大特性(ACID)原子性 (Atomicity): 事务是最小执行单位, 不可再分, 既一个事务中的所有操作, 要么全部完成, 要么全部不完成一致性 (Consistency): 事务开始之前和结束之后, 数据库...

weixin_42116604的博客 101

PCB设计实践(三十二)PCB设计遇到大电流时的设计技巧

本文系统阐述10A至数百安培PCB设计的六大关键技术。载流能力优化强调铜厚选择(2-4oz)、线宽计算及并联结构;热管理提出散热孔阵列、铜基板嵌入等方案;布局策略包括功率分区和低阻抗路径设计;材料工艺推荐铝基板、陶瓷基板等高效解决方案;安全设计涵盖电气隔离与保护电路;验证环节需结合热仿真与实测。典型150A电机驱动板案例显示,通过4oz铝基板、散热孔阵列等设计,可实现温升≤45℃的稳定运行。核心在于铜厚线宽协同、主动散热及严格验证。

致力于硬件设计、人工智能知识及技术的分享,不断鞭策自己成长,共同进步! 4228

Voicebox本地部署:模型下载与离线模式实战指南

在本地语音处理场景中,模型下载失败和离线运行需求是开发者最常遇到的两大难题。理解语音工具的本地推理原理,关键在于掌握模型文件与程序逻辑的分离管理:模型独立下载,程序负责推理,输出留在本机。这种架构带来显著的技术价值——数据不出本地、不依赖公网、批量任务不中断。无论是语音识别转写、语音合成,还是集成到自动化脚本中,本地离线模式都能在隐私敏感或网络不稳定环境下稳定运行。对开发者而言,先解决模型文件的完整获取,再验证离线启动流程,就能绕过“无法下载模型”的常见坑。本文从环境准备、模型放置、服务启动到接口调用,提供

weixin_29048309的博客 305

mysql---练习题05

chen_zan_yu_的博客 166

Odoo 入门 | 什么是 Odoo?

Odoo是一套全球开源的ERP/CRM系统,最初的名字为TinyERP,08年5月之后称之为OpenERP,之后又改为Odoo。

洛阳泰山的博客 6207

05 docker 安装mysql

一、打开dockerHub网站搜索镜像 hub.docker.com sudo docker pull mysql:5.7 sudo docker images 二、创建实例 docker run -p 3306:3306 --name mysql8 \ -v /mydata/mysql/log:/var/log/mysql \ -v /mydata/mysql/data:/var/lib/mysql \ -v /mydata/mysql/conf:/etc/mysql \ -e MYSQL_ROOT_

promiseful的博客 187

python实现序列比对之Needleman-wunsch算法 (附完整源码)

python实现序列比对之Needleman-wunsch算法 (附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 459

MFC C++ 中开发 PLC 通信客户端

OPC UA | 工业标准化通信 | `open62541`(开源OPC UA库)或 `UA-.NET` 封装 | 跨平台、安全可靠,支持复杂数据类型 |- 连接句柄(`modbus_t*`/`UA_Client*`/`TS7Client*`)不可跨线程共享,需为每个线程创建独立连接。Modbus 是工业常用协议,分 **RTU**(串口)和 **TCP**(以太网)两种模式,以下以 Modbus TCP 为例。s=Tag`),复杂类型需解析扩展对象。

寒寒豆豆软件公司的博客 136

mysql05

Day04回顾 1、外键(foreign key)   1、使用规则     1、数据类型要一致     2、主表字段必须为KEY的一种 :主键(PRI)   2、语法格式     constraint 外键名 foreign key(从表字段)      references 主表(主表字段)     on delete 级联动作     on update 级联动作;   3、级联动作    ...

qq_24137739的博客 201

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

05-Linux部署MySQL

Linux部署MySQL,其中包括:CentOS7.9安装MySQL5.7/MySQL8.0.36,Ubuntu系统上安装MySQL5.7/MySQL8.0.36,以及使用Xshell连接Ubuntu,Navicat连接Linux上的MySQL。

qq_59621600的博客 2314

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

05_MySQL

第一章 数据库概述 1.1 数据库概述 DBMS:数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,例如建立、使用和维护数据库。 DB:数据库(Database) SQL:结构化查询语言,(Structure Query Language),专门用来操作/访问数据库的通用语言。 MySQL:其中的一款关系型数据库管理系统 以下是2019年DB-...

依韵的博客 839

狂神说MySQL05:MySQL函数

狂神说MySQL系列连载课程,通俗易懂,基于MySQL5.7.19版本,欢迎各位狂粉转发关注学习。禁止随意转载,转载记住贴出B站视频链接及公众号链接!上课视频同步文档MySQL函数常用函...

狂神说 6153

Mysql 集群搭建 05

Mycat是开源的、活跃的、基于Java语言编写的MySQL数据库中间件。可以像使用mysql一样来使用 mycat,对于开发人员来说根本感觉不到mycat的存在。开发人员只需要连接MyCat即可,而具体底层用到几台数据库,每一台数据库服务器里面存储了什么数据,都无需关心。具体的分库分表的策略,只需要在MyCat中配置即可。

程序员进阶之路 1041

05 MySQL 之 存储过程

存储过程 文章目录存储过程1. 存储过程2. 使用存储过程2.1 执行存储过程2.2 创建存储过程2.3 删除存储过程2.4 使用参数2.5 检查存储过程 1. 存储过程 概念: 为以后的使用而保存的一条或多条 MySQL 语句的集合。 2. 使用存储过程 2.1 执行存储过程 MySQL 称存储过程的执行为调用,因此 MySQL 执行存储过程的语句为 CALL。CALL 接受存储过程的名字以及需要传递给它的任意参数。 CALL procedure(@param1, @param2, @param3

朱古力的博客 221

Mysql | 尚硅谷 | 第05章_排序与分页

使用 ORDER BY 子句排序ASC(ascend): 升序DESC(descend):降序ORDER BY 子句在SELECT语句的结尾。

m0_74795952的博客 1009

mysql05:mysql的视图、索引

mysql的视图、索引一、视图二、索引 一、视图 1、什么是视图 1):视图是一种虚拟的表,是从数据库中一个或者多个表导出来的的表; 2):数据库中存放了视图的定义,而并没有存放视图的数据,这些数据还是保存在原来的表中,也可以理解为视图保存的是查询的语句 3):使用视图查询数据时,会从原来的表中取出对应的数据 2、视图的作用 1)、使操作简便化; 2)、增加数据的安全性,轻易接触不到表的原数据; 3)、提高表的逻辑独立性。 3、基本语法 create view 视图名 as select 语句; 二、索引

qq_45555170的博客 216

05.MySQL基础

文章目录MySQL 数据库第一节 数据库简介1.1 简介1.2 常见数据库管理系统1.3 MySQL安装和卸载2.1 概述2.2 SQL语句分类2.3 DDL操作数据库2.4 DDL操作表2.5 DML操作(重要)2.6客户端工具第三节 DQL数据查询(重点)3.1 简单查询3.2 条件查询3.3 模糊查询3.4 字段控制查询3.5 排序3.6 聚合函数3.7 分组查询3.7.1 分组查询3.7....

松松的博客 1058
上一篇: MySQL_04
下一篇: 找回本机MySQL密码的方法
focusjava
博客等级 码龄14年 127粉丝 528原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值