
Mysql
文章平均质量分 57
Mysql数据库的基本使用
长不大的大灰狼
这个作者很懒,什么都没留下…
展开
-
Linux永久修改Mysql最大连接数
Linux永久修改Mysql最大连接数1、查找Mysql安装目录2、查看配置文件位置3、配置4、重启服务5、查看连接数6、连接数没有发生变更解决方案1、查找Mysql安装目录which mysql/user/bin/mysql // mysql的安装目录2、查看配置文件位置/usr/bin/mysql --verbose --help | grep -A 1 'Default optio原创 2022-04-16 09:48:45 · 3195 阅读 · 1 评论 -
Mysql:修改字符集和排序规则
Mysql:修改字符集和排序规则一、数据库二、数据表三、表字段一、数据库— 修改数据库字符集和排序规则alter database xc character set utf8 collate utf8_general_ci;— 查看数据库的字符集select * from information_schema.schemata where schema_name = 'db_name';二、数据表— 修改表默认的字符集alter table table_name character原创 2022-02-24 21:50:03 · 4477 阅读 · 0 评论 -
复合索引的底层数据结构——最左原则
复合索引的底层数据结构复合索引一定是一颗B+树这是一张表格,col1 是主建,col2和col3 是普通字段。主索引 对应的 B+树 结构是这样的:对col3 建立一个单列索引:如果对 col3 和 col2 建立 联合索引,那么 B+ 树会是一个什么样子的呢?首先可以肯定的是,肯定只有一棵树,又因为 最左原则的存在:先根据col3 排序,在根据 col2 排序。建索引语句 CREATE INDEX IDX_XXX ON TABLE(COL3, COL2);为了更好的理解,在例子中转载 2020-07-24 10:31:48 · 3786 阅读 · 4 评论 -
数据表:多对多关系的理解
学生与课程是多对多关系,即一条学生记录对应多条课程信息,而这些课程信息,不能用一个字段解决。所以需要建立一个中间关系表,来描述学生和课程之间的多对多关系。但是,当在学生表中增加一个课程id字段时,就相当于建立了一个冗余的中间关系表,而这个关系表和课程表就是一个多对一的关系。这种做法在实际代码中经常会用到。...原创 2022-02-10 16:12:26 · 902 阅读 · 0 评论 -
Mysql存储过程、触发器、事件调度器使用入门
Mysql存储过程、触发器、事件调度器使用入门一、存储过程的简单使用二、存储过程中的变量三、变量的作用域四、存储过程参数五、逻辑控制语句1、条件语句2、循环语句3、case分支六、游标七、自定义函数八、触发器九、事件存储过程(Stored Procedure)是一种在数据库中存储复杂程序的数据库对象。为了完成特定功能的SQL语句集,经过编译创建并保存在数据库中。一、存储过程的简单使用创建存储过程create procedure test()begin select * from users原创 2022-01-18 22:17:52 · 866 阅读 · 0 评论 -
数据库设计的三大范式
数据库设计的三大范式1、表中的每个字段都是原子的,即每个字段不可再分。字段是否可以再分表:【联系人】(姓名,性别,电话) 如果在实际场景中,一个联系人有家庭电话和公司电话,那么这种表结构设计就没有达到 1NF。要符合 1NF 我们只需把列(电话)拆分,即:【联系人】(姓名,性别,家庭电话,公司电话)。1NF 很好辨别,但是 2NF 和 3NF 就容易搞混淆。其它举例:2、有主键,每个字段应该是和主键有完整的依赖关系(没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分)表是否可以原创 2021-02-23 09:45:58 · 216 阅读 · 0 评论 -
分页查询优化方案总结
分页查询优化方案总结一、 常用分页查询(1)未用索引(2)使用索引二、 分页查询优化1 最大id查询法2 between and3 limit id4 延迟关联5 分表查询6 索引7 缓存函数、扫描记录过多等都会影响查询的速度,如果提高sql语句的查询速度是至关重要的。一、 常用分页查询(1)未用索引对于小数据量的表,我们经常采用(select * from table limit x,y)的形式来完成分页查询。例如:select * from areas limit 0,20; (第一页)se转载 2020-11-08 19:29:37 · 4994 阅读 · 1 评论 -
LRU算法——缓存算法
LRU(最近最久未用算法)LRU算法主要用于缓存算法,在节省资源的情况下提高数据访问效率筛选热点数据:对不断访问的数据进行筛选淘汰,剩下的数据就为热点数据;相对而言,释放最近未被访问数据占用的空间也是采用LRU算法。 1 LRU的实现——链表使用一个链表保存缓存数据(1)新数据插入到链表头部;(2)每当缓存命中(即缓存数据被访问),则将数据移到链表头部;(3)当链表满的时候,将链表尾部的数据丢弃。链表实现的优缺点:当存在热点数据时,LRU的效率很好,但偶发性的、周期性的批量操作会原创 2020-09-02 08:33:47 · 729 阅读 · 0 评论 -
Mysql联表查询(学生表、教师表、成绩表、课程表)
文章目录1 建库语句2 建表语句3 插入测试数据4 常见查询问题1 建库语句create database if not exists studentinfor character set utf8mb4;2 建表语句(1) 学生表(student)create table student( s_id int, sname varchar(20), sage int, sgender varchar(8))(2) 课程表(course)create table course(原创 2020-08-30 21:05:02 · 9087 阅读 · 0 评论 -
Redis——简介
Redis简单了解Redis本质上是一个Key-Value类型的内存数据库,很像memcached(分布式的高速缓存系统),不过数据可以持久化,而且支持的数据类型很丰富,有字符串,链表,集合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务器。Redisd的整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10原创 2020-07-25 18:02:16 · 119 阅读 · 0 评论 -
事务的四种隔离级别
事务的四种隔离级别第一种隔离级别:Read uncommitted(读未提交)一个事务在写数据时,不允许另外一个事务进行写操作,但允许读操作。这样避免了更新丢失,却可能出现脏读,也就是说事务B读取到了事务A未提交的数据。解决了更新丢失,但还是可能会出现脏读.第二种隔离级别:Read committed(读提交)若有事务对数据进行更新操作时,读操作事务要等待这个更新操作事务提交后才能读取数据,可以解决脏读问题。但会出现一个事务范围内两个相同的查询却返回了不同数据,这就是不可重复读。解决了更新丢失和原创 2020-08-17 22:19:27 · 5424 阅读 · 0 评论 -
InnoDB和MyISAM的区别
1 InnoDB和MyISAM的区别(1)InnoDB 支持事务,MyISAM 不支持事务。(2)InnoDB 支持外键,而 MyISAM 不支持。对一个包含外键的 InnoDB 表转为 MYISAM 会失败;(3)InnoDB 是聚集索引(叶子节点存数据),MyISAM 是非聚集索引(叶子节点存指针)。聚簇索引的文件存放在主键索引的叶子节点上,因此 InnoDB 必须要有主键,通过主键索引效率很高。但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据。因此,主键不应该过大,因为主键太大,转载 2020-08-13 21:01:47 · 331 阅读 · 0 评论 -
关系型和非关系型数据库——简介
关系型和非关系型数据库1 关系型数据库:Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL(1)关系型数据库的特性关系型数据库,是指采用了关系模型来组织数据的数据库;关系型数据库的最大特点就是事务的一致性;简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。(2)关系型数据库的优点容易理解:二维表结构是非常贴近逻辑世界一个概念,关系模型相对网状、层次等其他模型来说更容易理解;转载 2020-07-26 11:00:01 · 487 阅读 · 0 评论 -
Mysql常用优化技巧
Mysql常用优化技巧导致SQL执行慢的原因:硬件问题:如网络速度慢,内存不足,I/O吞吐量小,磁盘空间满了等。没有索引或者索引失效 数据过多服务器调优及各个参数设置(调整my.cnf)(1)当只需要一条数据时,使用LIMIT 1作为开发者,我们能够知道查询结果的条数,若已经知道结果中只有一条数据的时候,一定要使用limit 1 ,这样一来,MySQL在查询到一条数据之后,会立即停止搜索,这会带来性能上的提升。(2)避免全表查询如果无论查询什么都用select *,那么这样做会平白无故的原创 2020-07-09 22:09:27 · 290 阅读 · 0 评论 -
Sql注入——简介
Sql注入——简介所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。我们永远不要信任用户的输入,我们必须认定用户输入的数据都是不安全的,我们都需要对用户输入的数据进行过滤处理。sql注入主要是通过对单引号进行转义来完成:// 设定$name 中插入了我们不需要的SQL语句$name = "Qadir'; DELETE FROM users;";查询语句:"SELECT * FROM users WHERE name=原创 2020-06-25 15:39:23 · 257 阅读 · 0 评论 -
Mysql简介及安装(windows)
数据库大体可以分为关系型数据库和非关系型数据库关系型数据库(RDBMS):是指采用了关系模型来组织数据的数据库。简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。基于标准的SQL,只是内部一些实现有区别。常用的关系型数据库如:Oracle:甲骨文产品,适合大型项目,适用于做复杂的业务逻辑,如ERP、OA等企业信息系统。收费。MyS...原创 2020-03-30 21:32:11 · 199 阅读 · 0 评论 -
Mysql笔记06:索引、事务和视图
1 索引加速查询的一种数据结构,索引保存的数据结构主要为B+树,及hash的方式.优点:提升查询效率缺点: 降低了插入/修改/删除效率,增加了硬盘的使用空间注意:索引不是无限制加的,要根据需要来加1)数据量够大2)索引应该加在经常查找的字段上(1)索引的分类创建主键约束(PRIMARY KEY)、唯一约束(UNIQUE)、外键约束(FOREIGN KEY)时,会自动创建对应列的索...原创 2020-03-25 21:26:18 · 219 阅读 · 0 评论 -
Mysql笔记05:库表设计(API变形)
库表设计步骤:1.整理需求2.E-R 图做辅助E表示entry,实体,设计实体就像定义一个类一样,指定从哪些方面描述对象,一个实体转换为数据库中的一个表。R表示relationship,关系,关系描述两个实体之间的对应规则,关系的类型包括包括一对一、一对多、多对多。关系也是一种数据,需要通过一个字段存储在表中:1) 实体A对实体B为1对1,则在表A或表B中创建一个字段,存储另一个表的主...原创 2020-03-25 21:18:24 · 222 阅读 · 0 评论 -
Mysql笔记04:JDBC编程
JDBC编程:1). 创建数据库连接Connection2). 创建操作命令Statement3). 使用操作命令来执行SQL4). 处理结果集ResultSet5). 释放资源1 注册 Driver加载JDBC驱动程序:反射,调用初始化com.mysql.jdbc.Driver类,即将该类加载到JVM方法区,并执行该类的静态方法块、静态属性Class.forName("com.m...原创 2020-03-25 21:04:52 · 202 阅读 · 0 评论 -
Mysql笔记03:Java中的mysql环境搭建
Java为操作数据库提供了一个标准的API,可以为多种关系数据库提供统一访问。目的: 配置让 IDEA(javac/java)可以找到 MySQL-Driver 的类文件(*.class)mysql-jdbc 的 jar 包:Jar 包,是一个 zip 压缩包,按一定的标准管理的起来的一组类文件(.class)*搭建使用 JDBC 环境的步骤:1.在根目录下新建 lib 目录2.把...原创 2020-03-25 20:46:54 · 222 阅读 · 0 评论 -
Mysql笔记02:复杂查询
概要:primary key 主键默认不能为空 auto_incrementcreate table teachers(id int primary key auto_increment, name varchar(20) unique , gender varchar(20) default "保密" not null comment "男女" , age int not null ...原创 2020-03-25 20:33:53 · 261 阅读 · 0 评论 -
Mysql笔记01:增删查改及DDL操作
MySQL(关系型数据库)——用来持久化数据(SQL语言)SQL (Structure Query Language) 结构化查询语言DDL (Data Defination Language) 维护存储数据的结构>> create, drop, alter 建、删、修改DML(Data Manipulation Language) 对数据进行操作>&g...原创 2020-03-25 20:19:59 · 278 阅读 · 0 评论 -
ubuntu下:Mysql修改用户权限
show databases;use mysql;#用户数据都在mysql数据库的user表中grant 权限名称 on 数据库 to 账户@主机 identified by ‘密码’ with grant option;flush privileges; #刷新权限,修改完后必须要有这一步例:grant all privileges on *.* to ‘账户’@’%’ identi...原创 2019-07-31 08:48:45 · 1420 阅读 · 0 评论 -
Mysql中的字符串格式化不是标准的python的字符串格式化,应当一直使用%s用于字符串格式化
TypeError:%d format:a number is required,not strname_inf=input("请输入名字:") address_inf=input("请输入地址:") tel_inf=int(input("请输入电话:")) passwd_inf=int(input("请输入6位数的密码:"...原创 2019-07-11 16:58:05 · 649 阅读 · 0 评论 -
SQL语句出现错误:ERROR 1060 (42S21): Duplicate column name 'name'
创建视图时,如果sql查询语句出现列名相同的情形,需要将列名重命名一下。根据错误提示Duplicate column name ‘name’,可知是列名出现重复。需将create view v_cate_names as select g.id,g.name,b.name,g.price from goods as g inner join goods_cates as c on g.cat...原创 2019-07-15 16:08:34 · 25787 阅读 · 0 评论 -
将Excel表格数据转换为sql文件,以Mysql为例
将Excel表格数据转换为sql文件,以Mysql为例Excel表格如下aidartitlepid100000中国0110000北京100000110100北京市110000创建的数据表create table areas(aid int primary key,atitle varchar(20),pid int);...原创 2019-06-25 17:46:35 · 6347 阅读 · 1 评论