- 博客(51)
- 收藏
- 关注
原创 【MySQL必知必会】第30章 改善性能(学习笔记)
改善性能遵循硬件协议 运行在专用服务器上 调整内存分配、缓冲区大小 遇到显著性能不良,show processlist显示所有活动 kill命令终结某个特定进程 尝试联结、并、子查询等,找出最佳select 使用explain可解释如何执行一条select语句 一般存储过程比一条一条执行select要快 使用正确的数据类型 决不要检索比需求还多的数据 导入数据时,应关闭自动提交 必须索引数据库表以改善数据检索的性能 union可提高性能 like很慢 数据库是不断变化的实体
2023-07-13 21:08:24
234
原创 【MySQL必知必会】第29章 数据库维护(学习笔记)
备份数据适应命令行实用程序mysqldump转储所有数据库内容到某个外部文件 命令行实用程序mysqlhotcopy从一个数据库复制所有数据 可以使用MySQL的backup table或select into outfile转储所有数据到某个外部文件 备份前使用flush tables语句进行数据库维护analyze table,用来检查表键是否正确 check table用来针对许多问题对表进行检查 --help显示帮助 --safe-mode装载减去某些最佳配置的服务器 --v
2023-07-13 17:26:10
244
原创 【MySQL必知必会】第28章 安全管理(学习笔记)
访问控制MySQL服务器的安全基础是:用户应该对他们需要的数据具有适当的访问权,既不能多也不能少。换句话说,用户不能对过多的数据具有过多的访问权 多数用户只需要对表进行读和写 某些用户需要读表,但可能不需要更新表 你可能想允许用户添加数据,但不允许他们删除数据 某些用户(管理员)可能需要处理用户账号的权限 想让用户通过存储过程访问数据,但不允许他们直接访问数据 根据用户的登陆地点限制对某些功能的访问 数据梦魇更为常见的是无意识错误的结果 不要使用root,应该严肃对待root登录的使用
2023-07-13 17:11:08
214
原创 【MySQL必知必会】第27章 全球化和本地化(学习笔记)
字符集和校对顺序字符集,为字母和符号的集合 编码,为某个字符集成员的内部表示 校对,为规定字符如何比较的指令 show character set;这条语句显示所有可用的字符集以及每个字符集的描述和默认校对 show collation;此语句显示所有可用的校对,以及它们适用的字符集 show variables like 'character%'显示配置 create table mytable(column1 int, column2 varchar(20))default charac
2023-07-13 16:25:52
86
原创 【MySQL必知必会】第25章 使用触发器(学习笔记)
创建触发器唯一的触发器名 触发器关联的表 触发器应该响应的活动(delete,insert或update) 触发器何时执行(处理之前或之后) create trigger newproduct after insert on products for each row select 'product added' into @asd 插入一条记录后,select @asd;就会显示product added消息 删除触发器drop trigger newproduct; insert触发器
2023-07-13 15:43:25
39
原创 【MySQL必知必会】第24章 使用游标(学习笔记)
其中fetch用来检索当前行的order列,将自动从第一行开始,放到名为o的局部声明的变量中,对检索出的数据不做处理。
2023-07-13 15:33:11
351
原创 【MySQL必知必会】第23章 使用存储过程(学习笔记)
存储过程存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合 通过把处理封装在容易使用的单元中,简化复杂操作 由于不要求反复建立一系列处理步骤,保证了数据的完整性 简化对变动的管理 提高性能 存储过程可用来编写功能更强更灵活的代码使用存储过程MySQL称存储过程的执行为调用,语句为call create procedure pring() begin select avg(price) as priceaverage from products; end; 如有问
2023-07-13 15:16:03
47
原创 【MySQL必知必会】第22章 使用视图(学习笔记)
视图视图是虚拟的表,与包含数据的表不一样,视图只包含适应时动态检索数据的查询 使用视图可重用SQL、简化复杂的SQL操作、使用表的组成部分而不是整个表、保护数据、更改数据格式和表示 如果用多个联结和过滤创建了复杂的视图或者嵌套了视图,可能会发现性能下降得很厉害,因此 在部署使用了大量视图的应用前,应该进行测试视图的规则和限制与表一样,视图必须唯一命名 对于可以创建的视图数目没有限制 为了创建视图,必须具有足够的访问权限 视图可以嵌套 order by可以用在视图中 视图不能索引,也不
2023-07-13 12:04:52
52
原创 【MySQL必知必会】第21章 创建和操纵表(学习笔记)
创建表新表的名字,在关键字create table之后给出 表列的名字和定义,用逗号分隔 表的主键可以在创建表时用primary key关键字指定 语句可以在一个长行上输入,也可以分成许多行 如果你仅想在一个表不存在的时候创建它,应该在表名前/后加上if not exists 使用not null,不允许null值的列不接受该列没有值的行,null值就是没有值或缺值 不要把null值与空串相混淆,null值是没有值,它不是空串,如果指定''(两个单引号,其间没有字符),这在not null列
2023-07-13 11:49:13
69
原创 【MySQL必知必会】第20章 更新和删除数据(学习笔记)
更新数据使用update更新表中特定行 更新表中所有行 不要省略where子句,在使用update时一定要注意细心,因为稍不注意,就会更新表中所有行 更新多个列时,只需要使用单个set命令,每个"列=值"对之间用逗号分隔(最后一列之后不用逗号) 即使发生错误,也持续进行更新,可使用ingore关键字,update ingore tablename... 为删除某个列的值,可以设置它为null删除数据使用delete从表中删除特定行 从表中删除所有行 不要省略where子句 dele
2023-07-12 14:19:05
32
原创 【MySQL必知必会】第19章 插入数据(学习笔记)
values必须以其指定的次序匹配指定的列名,不一定按各个列在表中出现的顺序。其优点是,即使表的结构改变,此insert语句仍然能正常工作。不写列名,插入,如果有default value 会默认写入,没有default value则为null。插入多行,values用逗号分隔。不想插入某行可以写null。
2023-07-12 13:55:07
39
原创 【MySQL必知必会】第17章 组合查询(学习笔记)
组合查询MySQL允许执行多个查询(多条select语句),并将结果作为单个查询结果集返回,这些组合查询通常称为并(union)或复合查询(compound query) 有两种基本情况 ,其中需要使用组合查询:在单个查询中从不同的表返回类似结构的数据;对单个表执行多个查询,按单个查询返回数据创建组合查询可用union操作符来组合数条SQL查询 union的使用很简单,所需做的只是给出每条select语句,在各条语句之间放上关键字union 使用union可能比使用where子句更为复杂,但
2023-07-12 11:37:00
47
原创 【MySQL必知必会】第16章 创建高级联结(学习笔记)
使用表别名customers as c建立c作为customers的别名,这使得能使用省写的c而不是全名customers 表别名只在查询执行中使用,与列别名不一样,表别名不但会到客户机使用不同类型的联结自联结通常作为外部语句用来替代从相同表中检索数据时使用的子查询语句。虽然最终的结果是相同的 但有时候处理联结远比处理子查询快得多 select p1.prod_id,p1.prod_name from products as p1,products as p2 where p1.vend_id
2023-07-12 11:08:07
47
原创 【MySQL必知必会】第15章 联结表(学习笔记)
SQL最强大的功能之一就是能在数据检索查询的执行中联结(join)表。联结是利用SQL的select能执行的最重要的操作。
2023-07-12 10:35:36
39
原创 【MySQL必知必会】第14章 使用子查询(学习笔记)
子查询查询(query)任何SQL语句都是查询。但此术语一般指select语句 SQL还允许创建子查询(subquery),即嵌套在其他查询中的查询利用子查询进行过滤可以把一条select语句返回的结果用于另一条select语句的where子句 格式化SQL,包含子查询的select语句难以阅读和调试,特别是它们较为复杂时更是如此,把子查询分解为多行并且适当地进行缩进,能极大的简化子查询的使用 不过在实际使用时由于性能的限制,不能嵌套太多的子查询 虽然子查询一般与in操作符结合使用,但也可
2023-07-12 09:15:29
36
原创 【MySQL必知必会】第12章 汇总数据(学习笔记)
聚集函数聚集函数(aggregate function)运行在行组上,计算和返回单个值的函数 AVG()返回某列的平均值 COUNY()返回某列的行数 MAX()返回某列的最大值 MIN()返回某列的最小值 SUM()返回某列值之和 AVG()只用于单个列 AVG()、MAX()、MIN()、SUM()忽略列值为NULL的行 使用COUNT(*)对表中行的数目进行计数,不管表列中包含的是空值(NULL)还是非空值 使用COUNT(column)对特定列中具有值的行进行计数,忽略NULL
2023-07-12 06:55:48
39
原创 【MySQL必知必会】第十章 创建计算字段(学习笔记)
计算字段字段(field)基本上与列(column)的意思相同,经常互换使用,不过数据库列一般称为列,而术语字段通常用在计算字段的连接上拼接字段拼接(concatenate)将值联结到一起构成单个值 在MySQL的select语句中,可使用concat()函数来拼接两个列,如select concat(sid,'_',sname) from tablename; concat()拼接串,即把多个串连接起来形成一个较长的串 删除数据右侧多余的空格来整理数据,使用rtrim()函数来完成,如se
2023-07-11 09:57:10
35
原创 【MySQL必知必会】第九章 用正则表达式进行搜索(学习笔记)
字符匹配.是正则表达式语言中一个特殊的字符。它表示匹配任意一个字符 LIKE和REGEXP之间的区别,LIKE匹配整个列,如果匹配的文本在列值中出现,LIKE将不会找到它,相应的行也不被返回(除非使用通配符),而REGEXP在列值内进行匹配,如果被匹配的文本在列值中出现,REGEXP将会找到它,相应的行将被返回 MySQL中的正则表达式匹配不区分大小写(即,大写和小写都匹配),为区分大小写,可使用BINARY关键字,如where prodname regexp binary 'Jet' 进行OR匹
2023-07-11 09:26:23
48
原创 【MySQL必知必会】第八章 用通配符进行过滤(学习笔记)
LIKE操作符通配符(wildcard)用来匹配值的一部分的特殊字符 搜索模式(search pattem)由字面值、通配符或两者组合构成的搜索条件 从技术上说,LIKE是谓词(predicate)而不是操作符 百分号(%)通配符,%表示任何字符出现任意次数 select columnname from tablename where columnname like 'jet%' %告诉MySQL接受jet之后的任意字符,不管它有多少字符 结尾%end, 中间s%e 下划线_通配符,_
2023-07-11 08:51:31
56
原创 【MySQL必知必会】第二章 MySQL简介(学习笔记)
数据库软件,数据的所有存储、检索、管理和处理,MySQL是一种DBMS,即它是一种DBMS,即它是一种数据库软件。
2023-06-24 13:43:56
57
原创 【MySQL必知必会】第一章 了解SQL(学习笔记)
数据库database:保存有组织的数据的容器(通常是一个文件或一组文件)表table:某种特定类型数据的结构化清单模式schema:关于数据库和表的布局及特性的信息列column:表中的一个字段,所有表都是由一个或多个列组成的数据类型datatype:所容许的数据的类型,每个表列都有相应的数据类型,它限定(或容许)该列中存储的数据行 row:表中的一个记录主键primary key:一列(或一组列),其值能够唯一区分表中的每一行。
2023-06-24 13:35:59
32
原创 『Head First Java』第18章 分布式计算 读书笔记
要点一在某堆上的对象无法进行另外堆上的对象引用 Java Remote Method Invocation(RMI)让你感觉上像是调用远程对象的方法,但其实不是 当客户端调用远程对象的方法时 其实是调用代理上的方法,此代理被称为stub stub是个处理低层网络细节的辅助性对象,它会把方法的调用包装起来送到服务器上 要创建远程服务的话,你就必须要以远程接口来启动 远程接口必须要extend过java.rmi.Remote这个接口 且所有的方法都必须声明RemoteException 你的远程
2023-04-18 10:47:00
45
原创 『Head First Java』第17章 发布程序 学习笔记
要点一将项目组织一下以让源代码和类文件分开在不同的目录下 标准的组织化结构式创建出项目目录,然后在其下建立source和classes目录 将类以包来组织,并在前面加上域名称以防止命名冲突 在程序源文件最前面加上包指令可以把类包进包中 package com.wickedlysmart; 类必须呆在完全相对应于包结构的目录中才能包进包中。以com.wickedlysmart.Foo来说,Foo这个类必须放在com目录下wickedlysmart这个目录中 要让编译过的类可以放在正确的包目录结
2023-04-18 10:25:49
79
原创 『Head First Java』第16章 数据结构 读书笔记
hashCode()与equals()的相关规定API文件有对对象的状态制定出必须遵守的规则: 如果两个对象相等,对其中一个对象调用equals()必须返回true。也就是说,若a.equals(b)则b.equals(a) 如果两个对象有相同的hashcode值,它们也不一定是相等的。但若两个对象相等,则hashcode值一定是相等的 因此若equals()被覆盖过,则hashCode()也必须被覆盖 hashCode()的默认行为是对在heap上的对象产生独特的值。如果你没有override
2023-04-13 17:37:36
63
原创 『Head First Java』第14章 保存对象 读书笔记
要点你可以通过序列化来存储对象的状态 适应ObjectOutputStream来序列化对象(java.io) Stream是连接串流或是链接用的串流 连接串流用来表示源或是目的地、文件、网络套接字连接 链接用串流用来衔接连接串流 用FileOutputStream链接ObjectOutputStream来将对象序列化到文件上 调用ObjectOutputStream的writeObject(theObject)来将对象序列化,不需调用FileOutputStream的方法 对象必须实现序列
2023-04-03 16:20:47
39
原创 『Head First Java』第13章 使用Swing 读书笔记
要点布局管理器会控制嵌套在其他组件中组件的大小和位置 当某个组件加到背景组件上面时,被加入的组件是由背景组件的布局管理器管理的 布局管理器在做决定之前会询问组件的理想大小,并根据策略来决定采用哪些数据 BorderLayout布局可以让你把组件加到五个区域上。你必须以下列语法来指定区域: add(BorderLayout.EAST, panel); BorderLayout布局上的南北区域使用组件的理想高度而不管宽度,东西区域刚好相反,中间区域只能使用剩下的空间 pack()方法会使wind
2023-04-01 16:48:27
51
原创 『Head First Java』第12章 看图说故事 读书笔记
事件GUI从创建window开始,通常会使用JFrame JFrame frame = new JFrame(); 可以这样加入按钮、文字字段等组件 frame.getContentPane().add(button); JFrame与其他组件不同,不能直接加上组件,要用它的content pane 要显示window,得指定尺寸和执行显示动作 frame.setSize(300,300); frame.setVisible(true); 监听GUI事件才能知道用户对接口做了什么事情
2023-04-01 10:21:46
45
原创 『Head First Java』第11章 有风险的行为 读书笔记
要点方法可在运行期间遇到问题时抛出异常 异常是Exception类型的对象 编译器不会注意RuntimeException类型的异常。RuntimeException不需要声明或被包在try/catch的块中(然而你还是可以这么做) 编译器所关心的是称为检查异常的异常。程序必须要认识异常可能的存在 方法可以用throw关键词抛出异常对象: throw new FileIsTooSmallException(); 可能会抛出异常的方法必须声明成throws Exception 如果程序调用了
2023-03-31 21:23:45
38
原创 『Head First Java』第十章 数字很重要 读书笔记
要点静态的方法应该用类的名称来调用,而不是用对象引用变量 静态的方法可以直接调用而不需要堆上的实例 静态的方法是一个非常实用的方法,它不需特别的实例变量值 静态的方法不能存取非静态的方法 如果类只有静态的方法,你可以将构造函数标记为private的以避免被初始化 静态变量为该变量所属类的成员所共享。静态变量只会有一份,而不是每个实例都有自己的一份 静态方法可以存取静态变量 在Java中的常量是把变量同时标记为static和final的 final的静态变量值必须在声明或静态初始化程序中赋
2023-03-31 16:41:51
30
原创 『Head First Java』第九章 对象的前世今生 读书笔记
要点一我们关心栈(stack)与堆(heap)这两种内存空间 实例变量是声明在类中方法之外的地方 局部变量声明在方法或方法的参数上 所有局部变量都存在与栈上相对应的堆栈块中 对象引用变量与primitive主数据类型变量都放在栈上 不管是实例变量或局部变量,对象本身都会在堆上要点二实例变量保存在所属的对象中,位于堆上 如果实例变量是个对对象的引用,则引用与对象都是在堆上 构造函数是个会在新建对象的时候执行程序代码 构造函数必须与类同名且没有返回类型 你可以用构造函数来初始被创建对
2023-03-31 14:50:51
38
原创 『Head First Java』第八章 深入多态 读书笔记
类型转换的例子:Dog d = (Dog) x.getObject(aDog);例如: Dog implements Pet。例如: super.RunReport();
2023-03-30 16:53:18
36
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人