
05 MySQL
文章平均质量分 88
数据库
且听吟风°
扣:903199567
展开
-
17 连接池原理
提前建立一个连接池,这里面创建线程池,和mysql建立连接,维护一个任务队列。有任务到来时,将任务放入任务队列,任务结构是要执行的sql语句和需要的回调函数,可以将结果返回。连接池组件有hicar之类的。在网页中的mysql,首先请求进行注册,网站提取参数形成命令,mysql的服务器有很多个,中间可以搭一个软件层来选择要访问的数据库在哪个服务器,同时做负载均衡。可以设计一个mysql的连接池,提高效率。原创 2024-09-04 20:07:59 · 301 阅读 · 0 评论 -
16 C语言连接
初始化mysql_init()要使用库,先进行初始化如:MYSQL* mfp = mysql_init(NULL)连接数据库mysql_real_connect初始化完毕后,必须先连接数据库,在进行后续操作(mysql网络部分是基于TCP/IP的)//建立好链接之后,获取英文没有问题,如果获取中文是乱码://设置链接的默认字符集是utf8,原始默认是latin1。原创 2024-09-04 19:45:09 · 876 阅读 · 0 评论 -
15 用户管理
如果我们只能使用root用户,这样存在安全隐患。这时,就需要使用mysql的用户管理张三只能操纵mytest这个库,李四只能操纵msg这个库,如果给他们root账户,就可以操纵所有库,风险太大。原创 2024-09-03 22:05:12 · 1118 阅读 · 0 评论 -
14 视图
视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。视图的数据变化会影响到基表,基表的数据变化也会影响到视图。原创 2024-09-03 11:37:45 · 510 阅读 · 0 评论 -
13 隔离性
读-读:不存在任何问题,也不需要并发控制读-写:有线程安全问题,可能会造成事务隔离性问题,可能遇到脏读,幻读,不可重复读写-写:有线程安全问题,可能存在更新丢失,比如第一类更新丢失,第二类更新丢失。原创 2024-09-01 17:58:51 · 983 阅读 · 0 评论 -
12 事务
事务就是一组DML语句组成,这些语句在逻辑上存在相关性,这一组DML语句要么全部成功,要么全部失败,是一个整体。mysql提供一种机制,保证我们达到这样的效果,事务还规定了不同的客户端看到的数据是不同的事务就是要做或所做的事情,主要用于处理操作量大,复杂度高的数据。假设一种场景,毕业了,学校教务系统不需要你的数据,要删除基本信息,也要删除其他信息,成绩表现等。这样,就需要多条mysql语句,这些操作组合起来,就构成了一个事务。原创 2024-09-01 08:49:34 · 924 阅读 · 0 评论 -
11 索引
不过,现在不关心细节,逻辑自洽起来即可。索引的本质就是数据结构,叶子结点保存数据,路上节点没有,非叶子节点,不要数据,只要目录项,可以存储更多的目录项,管理更多的page,就是一个矮胖型的树,途径的路上节点减少,找到目标需要更少的io,每一个节点都有目录项,可以大大提高效率。不用加内存,不用改程序,不用调sql,只要执行正确的create index,查询速度就可能提高成百上千倍,但是查询速度的提升是以插入、更新、删除的速度为代价的,这些写操作,增加了大量的IO,所以它的价值在于提高海量数据的检索速度。原创 2024-08-28 22:44:46 · 920 阅读 · 0 评论 -
10 内外连接
表的连接分为内连和外连。原创 2024-08-26 10:00:06 · 350 阅读 · 0 评论 -
09 复合查询
前面的查询都是对一张表进行查询,但这远远不够。原创 2024-08-25 23:02:45 · 943 阅读 · 0 评论 -
08 内置函数
如果是多字节字符则计算多个字节数,如果是单字节字符算作一个字节。比如:字母,数字算作一个字节,中文表示多个字节数(与字符集编码有关)select concat(name, ‘的语文是’,chinese,‘分,数学是’,math,‘分’) as ‘分数’ from。select replace(ename, ‘S’, ‘上海’), ename from emp;ifnull(val1, val2) 如果val1为null,返回val2,否则返回val1的值。在日期的基础上加日期。在日期的基础上减日期。原创 2024-08-23 22:54:42 · 1074 阅读 · 0 评论 -
07 基本查询
上面select筛选出来的是表,分组后的也是表,最后显示的是对分组条件再筛选后的表。分组的目的是为了分组后方便聚合统计,指定列名,根据该列不同的数据分组,分组的条件在组内一定是相同的,可以被聚合压缩。建议:对未知表进行查询时,最好加一条LIMIT1,避免因为表中数据过大,查询全表数据导致数据库卡死,按id进行分页,每页3条记录,分别显示第1、2、3页。SELECT name, chinese, math, english, chinese + math + english 总分。原创 2024-08-23 12:14:02 · 885 阅读 · 0 评论 -
06 表的约束
真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性和可预期性,从业务逻辑角度保证数据的正确性。本质是通过技术手段,倒逼程序员插入正确的数据,反过来,对于mysql,凡是插入进来的数据,一定是符合约束的。比如有一个字段是email,要求是唯一的表的约束很多,这里主要介绍如下几个:null/not null,default,comment,zerofill,primary key,auto_increment,unique key。原创 2024-08-19 21:39:47 · 869 阅读 · 0 评论 -
05 数据类型
该设定只是提供了若干个选项的值,最终一个单元格中,设计可存储了其中任意多个值,而且出于效率考虑,这些值实际存储的是“数字”,因为这些选项的每个选项值对应如下数字:1,2,4,8,16,32…hobby set(‘登山’,‘游泳’,‘篮球,‘武术’’), --注意,使用数字标识每个爱好的时候,想想linux权限,采用比特位和set中的爱好对应。有一个调查表votes,需要调查人的喜好,比如(登山,游泳,篮球,武术)中去选择(可以多选)(男,女)[单选]--注意,使用数字标识的时候,就是正常的数组下标。原创 2024-08-09 00:48:13 · 699 阅读 · 0 评论 -
04 表的操作
ALTER TABLE tablename MODIFY (column datatype [DEFAULT expr][,column datatype]…) // 修改列,需要完整定义。alter table users add assets varchar(100) comment ‘图片路径’ after birthday;在实际开发中,经常修改某个表的结构,比如字段名字,字段大小,类型,表的字符集类型,表的存储引擎等。character set 字符集,如果没有指定,以数据库的字符集为准。原创 2024-08-04 11:27:03 · 1108 阅读 · 0 评论 -
03 库的操作
创建数据库时有两个编码集,分为数据库编码集和校验集,编码集市数据库存储数据时使用的,椒盐基支持数据库比较使用的编码,本质是一种读取数据库中采用的编码格式。创建一个数据库,校验规则用utf8_general_ci[不区分大小写],下面的操作是创建数据库,创建person表,插入四条数据。备份有最直接的方法,将数据库文件拷贝,但是这样遇到版本不同的sql可能会出现错误,mysql提供了备份的方法。打开备份文件,里面都是数据库操作的语句,建库,建表,导入数据的语句都在里面。原创 2024-08-04 00:32:22 · 770 阅读 · 0 评论 -
02 数据库基础 (重点)
存储数据用文件就可以了,为什么还要数据库?文件提供了数据的存储功能,但没哟扛很好的数据管理能力:1.文件的安全性问题2.文件不利于数据查询和管理3.文件不利于存储海量数据4.文件在程序中控制不方便数据库存储介质: 磁盘 内存为了解决上述问题,设计了更有利于管理数据的东西–数据库,能更有效的管理数据。数据库的运用是衡量水平的重要指标数据库本质mysql提供了一套存储数据和服务的网络程序,数据库一般指在磁盘或内存中存储的特定结构的数据,将来在磁盘上存储的一套数据库方案。原创 2024-07-27 16:17:30 · 703 阅读 · 0 评论 -
01 安装
安装和卸载中,用户全部切换为root,一旦安装,普通用户也能使用初期不进行用户管理,全部用root进行,使用mysql语句。原创 2024-07-18 23:59:29 · 1030 阅读 · 0 评论