MYSQL读书笔记
《mysql必知必会》读后感
《MySQL必知必会》这本书是一本深入浅出、实用性强、适合初学者阅读的MySQL数据库学习书籍。
通过阅读这本书,我对于MySQL数据库有了更深入的理解和认识,对于实际应用也有了更多的启示。
首先,这本书的内容非常全面,从MySQL的基本概念、安装配置、数据库管理、表管理、查询优化、安全性和复制等方面进行了详细介绍。
同时,书中还提供了大量的实例和练习题,让读者可以更好地掌握所学知识。
其次,这本书的实用性非常强。
书中所讲述的内容都是在实际开发中经常用到的知识点,而且每个知识点都配有相应的示例和练习题,读者可以通过实践来加深理解和掌握。
最后,这本书的写作风格非常通俗易懂,语言简洁明了,没有过多的技术术语和专业名词,让读者可以轻松上手。
同时,书中还提供了大量的图表和图示,帮助读者更好地理解相关内容。
总之,《MySQL必知必会》是一本非常值得阅读的MySQL数据库学习书籍。
通过阅读这本书,我不仅掌握了MySQL 的基本知识和技能,还对于实际应用有了更多的认识和启示。
如果你是一名初学者或者想深入学习MySQL数据库,这本书绝对不容错过。
《Mysql技术内幕》读书笔记
《Mysql技术内幕》读书笔记第⼀章 MySql存储引擎1.Innodb存储引擎⽀持事务,其特点是⾏锁设计、⽀持外键。
Innodb是Mysql默认的存储引擎。
2.MyISAM存储引擎MyIsam存储引擎不⽀持事务和表锁设计,Myisam也不⽀持外键,但是⽀持全⽂索引。
第五章索引与算法1.常见的索引:B+树索引、全⽂索引、哈希索引。
2.B+树,是通过⼆叉查找树,再由平衡⼆叉树,B树演化⽽来。
⼆叉查找树⼆叉查找树:左⼦树的值总是⼩于根的值,右⼦树的值总是⼤于根的值。
可以通过中序遍历得到值的排序输出。
平均查找速度⽐顺序查找来得快。
平衡⼆叉树(AVL树)平衡⼆叉树:⾸先符合⼆叉查找树的定义,其次必须满⾜任何节点的两个⼦树的⾼度的最⼤差为1。
B+树B+树:是为磁盘或其他直接存取辅助设备设计的⼀种平衡树。
在B+树中,所有记录节点都是按键值对的⼤⼩顺序存放在同⼀层的叶⼦节点上,由各叶⼦节点指针进⾏连接。
优点:B+树的⾼度⼀般都在2--4层。
也就是查找某⼀键值的⾏记录时最多只需要2--4次IO就可以了。
B+树索引B+树索引,分为聚集索引和辅助索引。
聚集索引和辅助索引的区别:叶⼦节点存放的是否是⼀整⾏的信息。
聚集索引聚集索引:就是按照每张表的主键构造⼀颗B+树,同时叶⼦节点存放的即为整张表的⾏记录数据,也将聚集索引的叶⼦节点称为数据页。
辅助索引(⾮聚集索引)辅助索引:叶⼦节点并不包含⾏记录的全部数据。
叶⼦节点除了包含键值以外,每个叶⼦节点中的索引⾏中还包含了⼀个书签(bookmark)。
该书签⽤来告诉Innodb存储引擎哪⾥可以找到与索引相对应的⾏数据。
辅助索引的书签就是相应⾏数据的聚集索引键。
Cardinality值1.SHOW INDEX FROM 表名:该语句可以查看表的索引信息。
2.Cardinality值⾮常关键,优化器会根据这个值来判断是否使⽤这个索引。
对于性别,地区类型的字段,可取值的范围⼩,称为“低选择性”,没有必要使⽤B+树索引。
MySQL必知必会读后感
MySQL必知必会读后感「MySQL必知必会」,上⼤学时,每个计算机专业的学⽣必备的数据库神书。
当时觉得枯燥乏味,毕业5年后,重新阅读了此书,发现此书真的是⼀本通俗易懂、涉及知识⾯⼴但浅尝辄⽌的数据库⼊门书。
以下为此次阅读后⼀些新的认识的总结。
1.DISTINCT-查询去重所有的字段的结果集,如下SQL会查询users表中name和age排重后的结果集select discitct name,age from users;2.LIKE和REGEXP的异同LIKE和REGEXP的不同在于,LIKE匹配整个串⽽REGEXP匹配⼦串。
利⽤定位符,通过⽤^开始每个表达式,⽤$结束每个表达式,可以使REGEXP的作⽤与LIKE⼀样。
3.BINARY区分⼤⼩写(MySQL3.23.4后)MySQL默认查询结果不区分⼤⼩写,如⼀下SQL语句,会把表中name为「apple」、「APPLE」、「Apple」、「aPPle」等结果都查出来。
select * from fruit where name = 'apple'如果只想查出「apple」,需要在字段前增加「BINARY」关键字,那么MySQL将进⾏区分⼤⼩写的查询,只会查出「apple」4.GROUP BY的使⽤(1) GROUP BY ⼦句中列出的每个列都必须是检索列或有效的表达式(但不能是聚集函数)。
(2) 如果在 SELECT 中使⽤表达式,则必须在GROUP BY⼦句中指定相同的表达式,不能使⽤别名。
(3) 除聚集计算语句外,SELECT语句中的每个列都必须在GROUP BY⼦句中给出。
5.分组后的筛选-HAVING这⾥有另⼀种理解⽅法,WHERE在数据分组前进⾏过滤,HAVING在数据分组后进⾏过滤。
5.组合查询:UNION和UNION ALL组合查询意味着必须要有两条及以上的select语句,且两个语句中的字段必须⼀样,顺序可不⼀样。
宋红康mysql高级篇笔记
宋红康mysql高级篇笔记MySQL 是一款广泛应用于互联网领域的关系型数据库管理系统。
它的高级功能和优势使得它成为互联网开发者的首选。
本文将分享一些关于 MySQL 高级篇的笔记,涵盖了一些互联网技术介绍、互联网商业和技术应用方面的内容。
一、索引优化索引是提高数据库查询效率的重要手段之一。
在 MySQL 中,使用合适的索引可以显著提升查询性能。
首先,我们需要了解不同类型的索引,如主键索引、唯一索引和普通索引等。
其次,根据具体应用场景,我们可以使用覆盖索引、前缀索引、联合索引等技术进行索引优化。
此外,我们还要注意索引的维护和管理,及时进行索引的重建和优化。
二、查询优化在互联网应用中,查询是最常见的数据库操作之一。
如何编写高效的查询语句,能够快速地获取所需的数据,是每个开发者都应该关注的问题。
本节将介绍一些查询优化的技巧,例如避免使用通配符查询、合理使用 LIMIT 关键字、使用 EXPLAIN 分析查询执行计划等。
三、事务管理事务是保证数据库操作一致性和完整性的重要手段。
MySQL 支持事务的 ACID 特性,可以确保多个操作的原子性、一致性、隔离性和持久性。
本节将详细介绍如何使用事务管理,包括事务的开启、提交和回滚,以及事务并发控制的方法。
四、高级数据操作除了基本的增删改查操作,MySQL 还提供了一些高级数据操作功能,方便开发者完成复杂的数据处理任务。
本节将介绍如何使用子查询、联合查询、分组查询和多表操作等技术,实现更灵活和高效的数据操作。
五、存储引擎选择MySQL 支持多种存储引擎,如 InnoDB、MyISAM、Memory 等。
不同的存储引擎具有不同的特点和适用场景。
本节将比较各种存储引擎的优缺点,并给出存储引擎选择的建议。
六、高可用性和容灾备份在互联网应用中,数据库的高可用性和容灾备份是非常重要的。
本节将介绍如何使用主从复制、读写分离、故障转移和数据备份等技术,提高数据库的稳定性和可用性。
《快速念咒:MySQL入门指南与进阶实战》笔记
《快速念咒:MySQL入门指南与进阶实战》阅读记录1. 第一章数据库基础在开始学习MySQL之前,了解一些数据库的基础知识是非常重要的。
数据库是一个用于存储和管理数据的计算机软件系统,它允许用户通过关键字或特定的查询语言来检索、更新和管理数据。
在数据库中,数据是以表格的形式进行组织的,每个表格都包含了一组相关的数据项,这些数据项被称为记录。
表(Table):表是数据库中存储数据的基本单位。
每个表都有一个唯一的名称,并由行(Row)和列(Column)组成。
每一行代表一个数据记录,每一列代表一个特定的数据属性。
字段(Field):字段是表中的一列,代表了数据的一种属性。
每个字段都有一个唯一的名称和一个数据类型,用于定义该字段可以存储的数据种类。
主键(Primary Key):主键是表中的一个特殊字段,用于唯一标识表中的每一行记录。
主键的值必须是唯一的,且不能为NULL。
外键(Foreign Key):外键是一个表中的字段,它的值引用了另一个表的主键值。
外键用于建立两个表之间的联系,确保引用完整性。
索引(Index):索引是一种数据库优化技术,用于提高查询性能。
通过创建索引,数据库可以更快地定位到表中的特定记录,而不必扫描整个表。
SQL(Structured Query Language):SQL是用于与数据库进行交互的编程语言。
它包括用于数据查询、插入、更新和删除的操作符和语法结构。
理解这些基本概念是学习MySQL的前提。
通过掌握SQL语言的基本语法和操作,你将能够有效地管理和操作数据库中的数据。
在接下来的章节中,我们将深入探讨MySQL的具体应用,包括如何创建和管理数据库、表、以及如何执行复杂的查询操作。
2. 第二章数据库设计《快速念咒:MySQL入门指南与进阶实战》是一本全面介绍MySQL 数据库的书籍,其中第二章详细阐述了数据库设计的基础知识和实践技巧。
在这一章节中,作者首先介绍了数据库设计的基本概念和目标,包括数据模型、实体关系模型(ER模型)等,并解释了如何通过这些模型来描述现实世界中的数据和业务逻辑。
MySQL数据库学习笔记
MySQL数据库学习笔记数据库 DDL: 数据定义语⾔, 包含数据库和表相关的操作(MySQL中保存数据需要先建库再建表,最后把数据保存到表中) DML: 数据操作语⾔, 包含增删改查相关的SQL DQL: 数据查询语⾔, 只包含查询相关的SQL TCL: 事务控制语⾔, 包括和事务相关的SQL DCL: 数据控制语⾔, 包括⽤户管理及权限分配相关的SQLDDL数据定义语⾔ 数据库相关SQL 1. 查询所有数据库 show databases; 2. 创建数据库 格式: create database 数据库名; 指定字符集格式: create database 数据库名 character set utf8/gbk; 举例: create database db1; create database db2 character set utf8; create database db3 character set gbk; show databases; 3. 查询数据库详情 格式: show create database 数据库名; 举例: show create database db1; show create database db2; show create database db3; 4. 删除数据库 格式: drop database 数据库名; drop database db3; 5. 使⽤数据库必须使⽤了某个数据库之后才能执⾏表和数据相关的SQL 格式: use 数据库名; use db1; 表相关SQL 操作表相关的SQL 必须使⽤了某个数据库之后再操作use db1; 1. 创建表 格式: create table 表名(字段1名类型,字段2名类型); 指定字符集格式: create table 表名(字段1名类型,字段2名类型) charset=utf8/gbk; 举例: create table person (name varchar(20),age int); create table student(name varchar(20),score int) charset=utf8; create table car(name varchar(20),price int) charset=gbk; 2. 查询所有表 格式: show tables; 3. 查询表详情 格式: show create table 表名 举例: show create table person; 4. 查看表字段 格式: desc 表名; 举例: desc student; 5. 删除表 格式: drop table 表名 举例: drop table car; 表相关SQL(续) use db1; 1. 修改表名格式: rename table 原名 to 新名; rename table student to stu; 2. 添加表字段 最后添加格式: alter table 表名 add 字段名类型; 最前⾯添加个格式: alter table 表名 add 字段名类型 fifirst; xxx字段后⾯添加格式: alter table 表名 add 字段名类型 after xxx; 举例: alter table person add gender varchar(5); //最后⾯ alter table person add id int fifirst; //最前⾯ alter table person add salary int after name;//name后⾯ 3. 删除表字段 格式: alter table 表名 drop 字段名; alter table person drop salary; 4. 修改表字段 格式: alter table 表名 change 原名新名新类型; alter table person change gender salary int;DML数据操作语⾔(数据相关SQL语句) 1. 插⼊数据 全表插⼊格式: insert into 表名 values(值1,值2); 值的数量和表字段⼀致 批量插⼊格式: insert into 表名 values(值1,值2),(值1,值2),(值1,值2); 举例: insert into person values("Tom",18); //全表插⼊ insert into person(name) values("Jerry"); //指定字段插⼊ insert into person values("AAA",10),("BBB",20), ("CCC",30); 中⽂问题: insert into person values("刘德华",30); 如果执⾏上⾯包含中⽂的SQL 报以下错误执⾏ set names gbk; 2. 查询数据 格式: select 字段信息 from 表名 where 条件; 举例: select name from person; //查询表中所有的名字 select name,age from person; //查询表中所有名字和年龄 select * from person; //查询表中所有数据的所有字段信息 select * from person where age>20; //查询年龄⼤于20岁的信息 select * from person where name='Tom'; //查询Tom的信息 3. 修改数据 格式: update 表名 set xxx=xxx,xxx=xxx where 条件; 举例: update person set age=8 where name='Jerry'; update person set name="张学友",age=50 where name="刘德华"; update person set age=15 where age<20; 4. 删除数据 格式: delete from 表名 where 条件; 举例: delete from person where name='Tom'; delete from person where age<20; delete from person; 约束* 概念:对表中的数据进⾏限定,保证数据的正确性、有效性和完整性。
Mysql笔记(附Mysql基础书pdf版)
Mysql笔记(附Mysql基础书pdf版)资料数据库篇SHOW DATABASES; //显⽰数据库系统中已经存在的数据库CREATE DATABASE 数据库名; //创建数据库DROP DATABASE 数据库名; //删除数据库表篇注:在使⽤操作表语句前,⾸先要使⽤USE语句选择数据库。
选择数据库语句的基本格式为“USE 数据库名”。
否则会报错,1046;CREATE TABLE 表名 ( 属性名数据类型 [完整性约束条件],属性名数据类型 [完整性约束条件],属性名数据类型);表名不能为SQL语句的关键字,⼀个表可以有多个属性。
定义时,字母⼤⼩写均可,各属性之间⽤逗号隔开,最后⼀个属性不需要加逗号。
主键主键有唯⼀值单字段主键属性名数据类型 primary key //创建主键,写在属性名数据类型后⾯;多字段主键primary key(属性名 1,属性名2,属性名n)两者的组合可以确定唯⼀的⼀条记录;外键外键不⼀定必须为⽗表的主键,但必须是唯⼀性索引,主键约束和唯⼀性约束都是唯⼀性索引;外键可以为空值;设置外键的基本语法规则如下:CONSTRAINT 外键别名 FOREIGN KEY(属性 1.1,属性1.2,属性1.n)REFERENCES 表名(属性2.1,属性2.2,属性2.n)其中,“外键别名”参数是为外键的代号;“属性1”参数列表是⼦表中设置的外键;“表名”参数是指⽗表的名称;“属性2”参数列表是⽗表的主键。
设置表的⾮空约束设置表的唯⼀性约束设置表的属性值⾃动增加查看表结构DESCRIBE 表名; // 查看表基本结构语句,可缩写为desc 表名SHOW CREATE TABLE 表名; //查看表详细结构语句(包含存储引擎、字符编码)删除表DROP TABLE 表名;//删除没有被关联的普通表删除⽗表需要先将外键删除,然后才能去删除⽗表。
字段篇//通过ALTER TABLE语句ALTER TABLE 旧表名 RENAME [TO] 新表名;//修改表名 TO参数是可选参数,是否在语句中出现不会影响语句的执⾏。
mysql笔记整理
mysql笔记整理MySQL是一种流行的开源关系型数据库管理系统,被广泛应用于各种网站和应用程序中。
作为一名开发人员或数据库管理员,熟悉MySQL的使用和管理是非常重要的。
在实际工作中,经常需要对数据库进行操作,因此我整理了一些MySQL的笔记,希望对大家有所帮助。
首先,我们需要了解MySQL的基本概念和术语。
数据库是一个存储数据的容器,可以存储各种类型的数据,如文本、数字、图片等。
表是数据库中的一个重要组成部分,用于存储具体的数据,表由多个列组成,每一列代表一种数据类型。
在MySQL中,可以通过SQL语句来操作数据库,SQL是结构化查询语言的缩写,是一种用于管理数据库的标准语言。
其次,我们需要了解如何创建数据库和表。
在MySQL中,可以通过CREATE DATABASE语句来创建数据库,通过CREATE TABLE语句来创建表。
在创建表时,需要指定表的名称和列的名称、数据类型等信息。
在设计表结构时,需要考虑数据的类型、长度、约束等因素,以确保数据的完整性和一致性。
接下来,我们需要了解如何插入、查询、更新和删除数据。
在MySQL中,可以通过INSERT INTO语句来插入数据,通过SELECT语句来查询数据,通过UPDATE语句来更新数据,通过DELETE语句来删除数据。
在查询数据时,可以使用WHERE子句来过滤数据,使用ORDER BY子句来排序数据,使用LIMIT子句来限制返回的数据数量。
此外,我们还需要了解如何使用索引和关联表。
索引是一种提高数据库查询性能的技术,可以加快数据的检索速度。
在MySQL中,可以通过CREATE INDEX语句来创建索引,通过DROP INDEX语句来删除索引。
关联表是一种将多个表的数据关联起来的技术,可以通过JOIN语句来实现表的关联操作。
最后,我们需要了解如何备份和恢复数据库。
在实际工作中,数据库可能会出现各种问题,如数据丢失、损坏等,因此备份数据库是非常重要的。
MySQL学习笔记
MySQL学习文档________________________________________ Table of Contets1. MySQL数据库的数据1.1. 数据值类型(data type)1.1.1. 数值1.1.2. 字符串1.1.3. 日期和时间1.2. 列类型(column type)1.2.1. 数值类的数据列类型1.2.2. 字符串类数据列类型1.2.3. 日期,时间型数据列类型1.3. 唯一编号1.4. 字符集支持1.4.1. MySQL4.1以前版本1.4.2. MySQL4.1以后版本1.4.3. 各级字符集的查询方法1.4.4. Unicode支持1.5. 如何选择数据列类型?1.6. 表达式操作符1.7. 类型转换2. 查询优化2.1. 索引2.2. 查询优化程序2.3. 数据列类型与查询效率2.4. 有效地加载数据2.5. 调度和锁定2.6. 服务器优化2.7. 硬件优化3. 数据库管理3.1. 数据目录3.2. MySQL数据表在系统中表现形式3.3. 数据表最大尺寸限制3.4. 状态文件和日志文件3.5. 调整MySQL数据目录位置4. MySQL数据库日常管理4.1. 数据库安全管理4.2. 服务器的启动和关闭4.3. 连接故障恢复4.4. MySQL用户帐号管理4.5. 日志文件管理4.5.1. 日志失效处理4.6. MySQL服务器的一些优化配置4.7. 优化服务器4.8. 运行多个MySQL服务器4.9. MySQL服务器镜像配置5. 数据库安全5.1. 保护MySQL安装程序文件5.2. 权限表5.3. 建立加密连接6. 数据库的备份、维护和修复6.1. 检查/修复数据表6.2. 备份数据库6.3. 使用备份恢复数据7. MySQL程序介绍8. MySQL How-To8.1. 连接数据库服务器8.2. 更新用户密码8.3. MySQL读取配置文件的顺序8.4. 重设置MySQL管理员密码的方法8.5. NULL值8.6. 使用SQL变量8.7. 改变默认提示符8.8. 非优化的全数据表DELETE操作8.9. MySQL事务处理示例List of Tables1.1. 转义序列1.2. 数值类数据列类型1.3. 字符串类数据列类型1.4. 日期,时间类型列1.5. 算术操作符1.6. 逻辑操作符1.7. 位操作符1.8. 比较操作符1.9. 操作符优先级(由高至低排列)3.1. 状态文件和日志文件3.2. MySQL数据目录及目录中文件位置的调整方法4.1. 访问权限表4.2. 权限作用范围(由ON子句设置)4.3. 日志启动选项4.4. BDB和InnoDB数据表日志选项Chapter 1. MySQL数据库的数据Table of Contents1.1. 数据值类型(data type)1.1.1. 数值1.1.2. 字符串1.1.3. 日期和时间1.2. 列类型(column type)1.2.1. 数值类的数据列类型1.2.2. 字符串类数据列类型1.2.3. 日期,时间型数据列类型1.3. 唯一编号1.4. 字符集支持1.4.1. MySQL4.1以前版本1.4.2. MySQL4.1以后版本1.4.3. 各级字符集的查询方法1.4.4. Unicode支持1.5. 如何选择数据列类型?1.6. 表达式操作符1.7. 类型转换MySQL数据库是由数据组成的,为了能方便管理和使用这些数据,我们把这些数据进行分类,形成各种数据类型,有数据值的类型,有表中数据列的类型,有数据表的类型。
MySql学习笔记
MySql学习笔记MySql学习笔记MySql概述:MySql是一个种关联数据库管理系统,所谓关联数据库就是将数据保存在不同的表中,而不是将所有数据放在一个大的仓库中。
这样就增加了速度与提高了灵活性。
并且MySql软件是一个开放源码软件。
注意,MySql所支持的TimeStamp的最大范围的问题,在32位机器上,支持的取值范围是年份最好不要超过2030年,然后如果在64位的机器上,年份可以达到2106年,而对于date、与datetime这两种类型,则没有关系,都可以表示到9999-12-31,所以这一点得注意下;还有,在安装MySql的时候,我们一般都选择Typical(典型安装)就可以了,当然,如果还有其它用途的话,那最好选择Complete(完全安装);在安装过程中,一般的还会让你进行服务器类型的选择,分别有三种服务器类型的选择,(Developer(开发机)、Server Machine(服务器)、Dedicated MySql Server Machine(专用MYSQL服务器)),选择哪种类型的服务器,只会对配置向导对内存等有影响,不然其它方面是没有什么影响的;所以,我们如果是开发者,选择开发机就可以啦;然后接下来,还会有数据库使用情况对话框的选择,我们只要按照默认就可以啦;连接与断开服务器:连接:在windows命令提示符下输入类似如下命令集:mysql –h host –u user –p 例如,我在用的时候输入的是:mysql –h localhost –u root –p 然后会提示要你输入用户密码,这个时候,如果你有密码的话,就输入密码敲回车,如果没有密码,直接敲回车,就可以进入到数据库客户端;连接远程主机上的mysql,可以用下面的命令:mysql –h 159.0.45.1 –u root –p 123 断开服务器:在进入客户端后,你可以直接输入quit然后回车就可以了;下面就数据库相关命令进行相关说明Alter table test add(address varchar(50) not null default …xm?,email varchar(20) not null);将表中某个字段的名字修改或者修改其对应的相关属性的时候,要用change对其进行操作; Alter table test change email email varchar(20) not null default …zz?;//不修改字段名Alter table test change email Email varchar(30) not null;//修改字段名称删除表中字段:Alter table test drop email;//删除单个字段Alter table test drop address,drop email;//删除多列可以用Drop来取消主键与外键等,例如:Alter table test drop foreign key fk_symbol; 删除索引:Drop index index_name on table_name; 例如:drop index t on test;向表中插入记录:注意,当插入表中的记录并不是所有的字段的时候,应该要在前面列出字段名称才行,不然会报错;Insert into test(name) values(…ltx?);Insert into test values(1,?ltx?);也可以向表中同时插入多列值,如:Insert into test(name) va lues(…ltx?),(…hhy?),(…xf?);删除表中记录:Delete from test;//删除表中所有记录;Delete from test where id=1;//删除表中特定条件下的记录;当要从一个表或者多个表当中查询出一些字段然后把这些字段又要插入到另一个表当中的时候,可以用insert …..select语法;Insert into testt(name) (select name from test where id=4);从文件中读取行插入数据表中,可以用Load data infile语句;Load data infile …test.txt? into table test;可以用Describe语法进行获取有关列的信息;Describe test;//可以查看test表的所有信息,包括对应列字段的数据类型等;MySql事务处理相关语法;开始一项新的事务:start transaction或者begin transaction 提交事务:commit事务回滚:rollbackset autocommit true|false 语句可以禁用或启用默认的autocommit模式,只可用于当前连接; 例子:Start transaction;Update person set name=?LJB? where id=1;Commit | rollback;数据库管理语句修改用户密码:以root用户为例,则可以写成下面的;mysql –u root –p 旧密码–password 新密码Mysql –u root –password 123;//将root用户的密码修改成123,由于root 用户开始的时候,是没有密码的,所以-p旧密码就省略了;例如修改一个有密码的用户密码:mysql –u ltx –p 123 –password 456;增加一个用户test1,密码为abc,让他可以在任何时候主机上登陆,并对所有数据库有查询、插入、修改、删除的权限。
mysql数据库学习笔记
2、查看 describe table_name desc table_name 查看表的定义
show create table table_name \G 注意:\G显示的更加人性化,美观(语句结束符 ;,\g,\G) 3、修改(add modify change rename drop)
格式:alter table tablename [rename/modify/add/change/drop]
desc t_test 添加到第三列
alter table tablename add three bigint after id
desc t_test 5、调整某些列的位置
alter table table_name modify column1 datatype first|alfter
column2
alter table t_test add first1 bigint first; 注意:没有long型,只有bigint
tinyint smallint mediumint int/Integer bigint
4、指定新列的位置
alter table tablename add columnname datatype after column
NOT NULL(NK)
DEFAULT
mysql数据库.txt[+]
Page 3
UNIQUE KEY(UK)
约束字段的值是唯一的
PRIMATYKEY(PK)
AUTO_INCREMENT
FOREIGN KEY(FK) 不支持check约束,即可以使用check约束,但是没有效果 约束:
单列约束
多列约束
属性名1和属性名2都必须存在
深入浅出MySQL数据库开发优化与管理维护读书笔记
第一章MySQL的安装于配置1.1 下载MySQL的三个版本:Standard:推荐大多数用户下载Max:除了Standard版之外附加了一些特性。
主要用于用户体验。
Debug:与Standard类似,但是增加了调试信息,也不推荐下载。
(PS:那么是否适合我们作为学习的程序员呢?)1.4 启动和关闭MySQL服务服务与数据库不同,他们是一系列的后台进程,只有启动了服务才能进行数据库的访问。
对于noinstall安装的MySQL,需要通过命令行模式,而对于采用图形化安装的,可以在windows的“服务”菜单中启动和关闭。
第二章SQL基础本章在介绍标准SQL的同时,也介绍了一些MySQL的扩展。
本读书笔记侧重于这些扩展。
以分号‘;’或者\g结束表示连接数插入记录时候,能够一次性的插入多条记录,每条记录之间用逗号隔开。
语法如下:Insert into tablename …Values(record-1’s value),(record-2’s value),…(record-n’s value);这个特性可以节省很多网络开销。
类似的,更新操作同样可以一次更新多个记录。
删除操作可以一次删除多个表的数据。
语法:Delete t1, t2…tn from t1,t2,…tn *where-condition]关于聚合操作:有如count(*) min max等函数PS:第一二章都比较简单也比较熟悉。
再次仅补充一些原来不知道或者不太熟悉的内容。
第三章MySQL支持的数据类型一、数值类型整数类型:tinyint,smallint,mediumint,int/INTEGER,bigint浮点类型:float、double定点数类型:dec(M,D)、Decimal(M,D)位类型:bit(M)PS:这里面有标准SQL的类型,也有MySQL自己扩展出来的类型。
各种类型的具体大小自行查阅资料。
Mysql在创建一个表的时候,能够规定一个字段的宽度。
《MySQL必知必会》读书笔记
《MySQL必知必会》读书笔记⼀、了解MySQL1、什么是数据库?数据库是⼀种以某种有组织的⽅式存储的数据集合。
2、模式(schema):关于数据库和表的布局及特性的信息。
3、列:正确的将数据分解为多个列极为重要。
通过把它分解开,才有可能利⽤特定的列对数据进⾏排序和过滤。
4、主键(primary key):⼀列,其值能够唯⼀区分表中每个⾏,⽤来表⽰⼀个特定的⾏。
应该保证创建的每个表具有⼀个主键,以便于以后的数据操纵和管理。
5、外键:6、SQL语句不区分⼤⼩写,但是开发⼈员通常对所有SQL关键字⼤写,⽽对所有列和表名使⽤⼩写,这样做使代码更易于阅读和调试。
⼆、使⽤MySQL1、连接 mysql -h localhost -u root -p xxxx2、show命令:show databases;use databases;show tables;show columns from tablename; ==== describe tablename;show status; ⽤于显⽰⼴泛的服务器状态信息show create database databasename;show create table tablename; 分别⽤来显⽰创建特定数据库或表的MySQL语句。
show grants; ⽤来显⽰授予⽤户(所有⽤户或特定⽤户)的安全权限show errors; show warnings; ⽤来显⽰服务器错误或警告消息help show;显⽰允许的show语句MySQL 5⽀持⼀个新的Information_schema命令,可⽤它来获得和过滤模式信息。
三、检索数据1、select语句:为了检索数据,必须⾄少给出两条信息--想选择什么,从什么地⽅选。
select column from tablename; 检索单个列,如果未排序,返回的顺序可能是数据的添加顺序也可能不是。
select column1,column2 from tablename; 检索多个列select * from tablename; 检索所有列,除⾮你确实需要表中的每个列,否则最好别⽤*通配符。
mysql数据库管理系统笔记
mysql数据库管理系统笔记MySQL数据库管理系统是一种流行的关系型数据库管理系统,广泛应用于各种应用程序和网站。
下面是一些关于MySQL的笔记:1. 安装和配置:MySQL可以通过不同的方式进行安装,包括二进制包、源代码和包管理器。
安装完成后,需要配置MySQL服务器,包括设置用户和权限、配置网络连接等。
2. 数据库和表:MySQL数据库由多个表组成,每个表包含一系列的行和列。
使用`CREATE DATABASE`和`CREATE TABLE`语句可以创建数据库和表。
3. 数据类型:MySQL支持多种数据类型,包括整数、浮点数、字符串、日期和时间等。
不同的数据类型适用于不同的数据存储需求。
4. 查询语言:MySQL使用结构化查询语言(SQL)进行数据操作和管理。
使用SELECT语句可以从表中检索数据,使用INSERT、UPDATE和DELETE语句可以插入、更新和删除数据。
5. 索引:索引用于加快查询速度,通过索引可以快速定位到表中的数据。
MySQL支持多种索引类型,包括B-tree索引、哈希索引等。
6. 视图:视图是一个虚拟表,它是基于SQL查询的结果集。
通过视图可以简化复杂的查询操作,同时提供数据安全性。
7. 存储过程和函数:存储过程是一组为了完成特定功能的SQL语句集合。
函数类似于存储过程,但函数可以返回值。
8. 触发器:触发器是与表相关联的特殊类型的存储过程,它会在指定事件(如INSERT、UPDATE或DELETE)发生时自动执行。
9. 事务处理:事务是一系列的操作,这些操作要么全部成功执行,要么全部失败回滚。
MySQL支持事务处理,确保数据的完整性和一致性。
10. 安全性和权限:MySQL提供了用户管理和权限控制机制,可以设置不同用户对数据库的访问权限。
通过设置用户名、密码和权限,可以控制用户对数据库的访问和操作。
《[MySQL技术内幕:SQL编程》读书笔记
《[MySQL技术内幕:SQL编程》读书笔记《[MySQL技术内幕:SQL编程》读书笔记2019年3⽉31⽇23:12:11严禁转载<MySQL技术内幕:SQL编程>这本书是我⽐较喜欢的⼀位国内作者姜承尧, 早年在学mysql时就听过姜⽼师的开源mysql⽹络视频教程, 记得在视频时总是姜⽼师姜⽼师的⾃称, 感到⼗分的亲切.这本书主要是讲mysql在应⽤编程时如何正确并且更⾼效的根据业务场景编写相应的sql语句.从⼀开始对mysql的历史, 数据库类型, 分⽀版本, 咋⼀看, 还挺熟悉的, 这个逻辑顺序不就是当时视频讲课的顺序. 在本章末尾, 还推荐了⼏款主流的图形化SQL查询分析器.第⼆章主要是介绍了各种常⽤的数据类型. 包括UNSIGNED和ZEROFILL要注意的事情, 对于UNSIGNED, 如果没有设置sql_mode=no_unsigned_subtraction, 连个UNSIGNED数据(⼩减⼤)的结果不是正确的负数. ZEROFILL主要是填充占位⽤的, 在显⽰的时候会在左边填充0, 实际显⽰还是实际⼤⼩, 只是显⽰不⼀样. 然后就是常⽤的时间⽇期数据类型了.这⾥主要的问题是闰年, 星期, 跨年, 国际化这种需要注意的. datetime 不能有默认值, timestamp可以有默认值. mysql5.6前now, datetime等会截断微秒, 5.6后可以保留微秒(microsecond()函数). 再到字符类型, 字符类型主要是有固定长和变长两种, 变长的再表记录中在额外的头有这个可变数据的长度......当然⽐价orange⼈头疼的字符集和⽐较规则,这⾥介绍的还是很清晰的.第三章是查询处理.查询处理包括了逻辑查询和物理查询. 逻辑查询操作顺序⽤⼀图介绍. 然后就是根据操作顺序来对每⼀个操作展开讲解. 主要是联合, 过滤, 排序, 分组等操作. 我们要有集合的思维来看待关系型数据库.以上操作步骤是逻辑查询的, 真正的查询还要经过物理查询, 经过server层的分析器和优化器,真正构造⼀条执⾏查询语句.第四章是⼦查询。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
* SQL导出(dump)
| 带有--lock tables选项的mysqldump命令一次只能锁定一个模式的表,如果应用程序写入不同模式,且使用了不支持事务的存储引擎,则
在备份过程可能会产生不一致数据。
* 表抽取
|-->
* 文件系统热快照
* InnoDB热备份
5.
1.
任何执行时间长于 wait_timeout或interactive_timeout选项值得备份,都会导致会话被关闭,这也会隐含执行UNLOCK TABLES命令。
2.
对于使用FLUSH TABLES WITH READ LOCK的备份策略来讲,一个共同的缺陷是它们需要两个独立的线程来完成备份过程。运行FLUSH TABLES WITH READ LOCK命令,
之间。不适用于对时间要求非常强的恢复(由于使用 mysqldump的输出进行恢复的操作是单线程),另外mysqldump命令使用
的是MySQL的c/s协议,不一定必须在同一台服务器上执行,有助于减少I/O写入需求及磁盘容量,但是会增加命令执行时间和
网络利用。
|-->优,缺点:它支持跨操作系统的兼容解决方案(一个在linux上备份的可在windows恢复),他是一种静态备份(1.主二进制文件,2.主
二进制文件位置),数据是ASII格式的(可以用文本编辑器查看备份文件)。对于较小的数据库来讲是非常理想的,5GB-20GB
然后从当前连接退出将自动执行一条UNLOCK TABLES命令。从FLUSH TABLES WITH READ LOCK成功返回后,任何备份选项都必须在一个不同的并发线程中执行,只
有当适用的备份选项完成时,才可以执行UNLOCK TABLES.
3.
在高并发系统中使用FLUSH TABLES WITH READ LOCK命令的风险是有可能会需要较长的时间,因为有其他耗时较长的语句需要执行,最好被监控和终结,对于在
线型应用的影响又是是不可忽略的。
4.
对MySQL备份的常用方案:
ቤተ መጻሕፍቲ ባይዱ * 文件系统冷备份
|-->优点:过程简单,允许使用任何文件系统备份工具来执行备份。
|-->缺点:备份过程中MySQL实例不能用
恢复过程需要一个相似的系统(操作系统,目录结构)