Mysql
文章平均质量分 72
小_强
10年+数据架构师。专注于数据仓库、大数据、数据分析领域。
展开
-
举例讲解SQL中的删除语句:DELETE、DROP和TRUNCATE
在删除大量数据时,TRUNCATE的执行效率显著高于DELETE,因为TRUNCATE不会记录每条记录的变动日志,而DELETE则会。DROP删除整个表的效率最高,但在重新利用数据上就需要花费创建新表的额外成本。DROP会删除表和数据,而TRUNCATE只删除数据保留表结构。其中,SQL中关于删除的语句主要有三种:DELETE、DROP和TRUNCATE。它们虽都能用于删除操作,但各有各的功能、使用场景,执行效率也不相同。:当需要删除符合某些条件的记录时,可以使用DELETE语句。原创 2023-12-09 21:49:51 · 548 阅读 · 0 评论 -
啃下这50道笔试题,你就是SQL专家!(附答案,收藏备用)
当薪水相同时,排名相同,且下一个排名序号不会被略过,所以返回的排名是连续且重复的。当薪水相同时,排名相同,但下一个排名序号将会被略过,所以返回的排名是不连续且重复的。:Birthday字段的值为DATE类型,包含具体的年、月、日,所以在分组聚合前,需要使用DATE_FORMAT函数将DATE类型格式化取出年份后再统计。当关联属性在参与连接的右表中不存在时,左表的数据也会返回,但来自右表的属性会显示为NULL。:RAND函数返回一个0~1之间的随机值,使用随机值排序,可以保证每次返回的行都是随机的。原创 2023-12-08 21:05:10 · 1272 阅读 · 0 评论 -
MYSQL入门学习之二十四:MySQL逻辑模块组成
总的来说,MySQL 可以看成是二层架构: 第一层SQL Layer:数据库系统处理底层数据之前的所有工作都是在这一层完成的,包括权限判断,sql 解析,执行计划优化,query cache 的处理等等; 第二层Storage Engine Layer(存储引擎层):底层数据存取操作实现部分,由多种存储引擎共同组成。 可以用如下一张最简单的架构转载 2013-01-09 23:21:19 · 539 阅读 · 0 评论 -
MYSQL入门学习之二十三:MySQL物理文件 之 数据文件
在MySQL 中每一个数据库都会在定义好(或者默认)的数据目录下存在一个以数据库名字命名的文件夹,用来存放该数据库中各种表数据文件。1、“.frm”文件 与表相关的元数据(meta)信息都存放在“.frm”文件中,包括表结构的定义信息等。 不论是什么存储引擎,每一个表都会有一个以表名命名的“.frm”文件。 所有的“.frm”文件都存放在所转载 2013-01-06 23:29:56 · 577 阅读 · 0 评论 -
MYSQL入门学习之二十二:MySQL物理文件 之 日志文件
1、错误日志:Error Log 错误日志记录了MyQL Server 运行过程中所有较为严重的警告和错误信息,以及MySQLServer 每次启动和关闭的详细信息。在默认情况下,系统记录错误日志的功能是关闭的,错误信息被输出到标准错误输出(stderr),如果要开启系统记录错误日志的功能,需要在启动时开启-log-error 选项。 错误日志的默认存放位置在数转载 2013-01-06 23:18:18 · 411 阅读 · 0 评论 -
MYSQL:使用UPDATE修改用户名,无法登录
1、创建一个用户test/testmysql> create user test identified by 'test';Query OK, 0 rows affected (0.00 sec)mysql> exitBye2、使用test/test用户登录成功C:\Users\qxl>mysql -utest -ptestWelcome to the MySQL mon原创 2013-01-06 00:03:29 · 934 阅读 · 1 评论 -
MYSQL入门学习之二十一:MYSQL用户管理
一、新增用户1、直接添加 mysql> insert into mysql.user(host,user,password) values('%','testuser',PASSWORD('testuser'));2、添加用户并赋权 mysql> grant select on test.* to 'testuser1'@'localhost' iden原创 2013-01-05 23:52:53 · 605 阅读 · 0 评论 -
MYSQL入门学习之十八:MYSQLADMIN命令参数详解
mysqladmin工具主要用来对数据库做一些简单的操作,以及显示服务器状态等。其使用格式如下: mysqladmin [option] command [command option] command ...... 在命令行中输入mysqladmin -?,打印出如下帮助信息C:\Users\qxl>mysqladmin --helpmysqladmin原创 2012-12-21 21:34:26 · 1613 阅读 · 0 评论 -
MYSQL入门学习之十七:MYSQL命令行内可使用的命令详细说明
在MYSQL命令行中,有一些非常实用的小命令可以使用。进行MYSQL命令行后,输入\h,可查看MYSQL命令行支持的小命令及对应的功能说明:mysql> \hFor information about MySQL products and services, visit: http://www.mysql.com/For developer information, incl原创 2012-12-20 22:48:37 · 1134 阅读 · 0 评论 -
MYSQL入门学习之二十五:MySQL各模块工作配合
下图显示了MySQL 各个模块间是如何相互协同工作的:1、执行启动MySQL 命令之后,MySQL 的初始化模块就从系统配置文件中读取系统参数和命令行参数,并按照参数来初始化整个系统,如申请并分配buffer,初始化全局变量,以及各种结构等。同时各个存储引擎也被启动,并进行各自的初始化工作。2、当整个系统初始化结束后,由连接管理模块接手。连接管理模块会启动处理客户端连接请求的监转载 2013-01-10 23:04:00 · 514 阅读 · 0 评论 -
MYSQL入门学习之二十六:MySQL存储引擎简介 之 MyISAM
MyISAM 是MySQL 最早的ISAM 存储引擎的升级版本,也是MySQL 默认的存储引擎。1、MyISAM 存储引擎的表在数据库中,每一个表都被存放为三个以表名命名的物理文件。每个表都有且仅有这样三个文件做为MyISAM 存储类型的表的存储。 (1)、.frm 文件:存放表结构定义信息 (2)、.MY文件D:存放表的数据 (3)、.M转载 2013-01-14 22:38:51 · 397 阅读 · 0 评论 -
MYSQL入门学习之二十七:MySQL存储引擎简介 之 InnoDB
Innodb 做为第三方公司所开发的存储引擎,是除MyISAM 之外,在MySQL 中使用最为广泛的。1、Innodb 之所以能如此受宠,主要是在于其功能方面的较多特点: (1)、支持事务安全 Innodb 在功能方面最重要的一点就是对事务安全的支持。而且实现了SQL92 标准所定义的所有四个级别(READ UNCOMMITTED,READ COMMITTE转载 2013-01-14 23:44:08 · 498 阅读 · 0 评论 -
MYSQL入门学习之二十八:MySQL权限系统简介
1、权限系统简介 MySQL 的权限系统在实现上比较简单,相关权限信息主要存储在几个被称为grant tables 的系统表中,即: mysql.User,mysql.db,mysql.Host,mysql.tables_priv 和mysql.columns_priv。 由于权限信息数据量比较小,而且访问又非常频繁,所以Mysql 在启动的时候,就会将所有的权转载 2013-01-15 22:39:17 · 716 阅读 · 0 评论 -
MYSQL入门学习之三十:MySQL锁定机制简介
数据库锁定机制简单来说就是数据库为了保证数据的一致性而使各种共享资源在被并发访问访问变得有序所设计的一种规则。 MySQL 数据库由于其自身架构的特点,存在多种数据存储引擎,每种存储引擎所针对的应用场景特点都不太一样,为了满足各自特定应用场景的需求,每种存储引擎的锁定机制都是为各自所面对的特定场景而优化设计,所以各存储引擎的锁定机制也有较大区别。 总的来说,My转载 2013-01-30 23:48:35 · 579 阅读 · 0 评论 -
MYSQL入门学习之三十一:MySQL锁定机制之表级锁
MySQL 的表级锁定主要分为两种类型,一种是读锁定,另一种是写锁定。 在MySQL 中,主要通过四个队列来维护这两种锁定:两个存放当前正在锁定中的读和写锁定信息,另外两个存放等待中的读写锁定信息,如下: Current read-lock queue (lock->read) Pending read-lock queue (lock->re转载 2013-01-31 00:58:02 · 690 阅读 · 0 评论 -
MYSQL入门学习之二十九:MySQL访问控制实现原理
MySQL 访问控制实际上由两个功能模块共同组成,一个是负责“看守MySQL 大门”的用户管理模块,另一个就是负责监控来访者每一个动作的访问控制模块。用户管理模块决定造访客人能否进门,而访问控制模块则决定每个客人进门能拿什么不能拿什么。下面是一张MySQL 中实现访问控制的简单流程图(见下图):1、用户管理 (1)、在MySQL 中,用户访问控制部分的实现比较简单转载 2013-01-21 00:17:44 · 1054 阅读 · 0 评论 -
MYSQL:如何使用MYSQL命令行的自动补全功能
使用MYSQL -I命令,查看MYSQL命令的参数,其中对--auto-rehash参数的说明如下:--auto-rehash Enable automatic rehashing. One doesn't need to use 'rehash' to get table and field completion, but startup原创 2012-12-20 00:38:31 · 1780 阅读 · 4 评论 -
MYSQL入门学习之十六:MYSQL命令参数详解
一、MYSQL命令行参数的详细说明 Usage:mysql [OPTIONS] [database] 下面为各选项的详细说明:-?, --help显示帮助信息并退出-I, --help显示帮助信息并退出--auto-rehash自动补全功能,就像linux里面,按原创 2012-12-20 00:28:59 · 3100 阅读 · 0 评论 -
MYSQL:使用\G参数改变输出结果集的显示方式
在MYSQL命令行中使用\G参数,将输出按列显示。当需要看表中各字段的值时非常有用。 普通的SQL命令输出如下: mysql> select * from t_goods; +------+------------+----------+------------+-----------------------------------原创 2012-12-19 23:17:35 · 1855 阅读 · 0 评论 -
MYSQL入门学习之三:全文本搜索
一、理解全文本搜索1、MyISAM支持全文本搜索,而InnoDB不支持。2、在使用全文本搜索时,MySQL不需要分别查看每个行,不需要分别分析和处理每个词。MySQL创建指定列中各词的一个索引,搜索可以针对这些词进行。这样MySQL可以快速有效地决定哪些词匹配,哪些词不匹配,它们匹配的频率,等等。二、使用全文本搜索1、为了进行全文本搜索,必须索引被搜索的列,而且要随着数据的改变不断原创 2012-12-05 00:07:49 · 1042 阅读 · 0 评论 -
MYSQL入门学习之四:MYSQL的数据类型
一、整型 整数类型是数据库中最基本的数据类型。标准SQL中支持INTEGER和SMALLINT这两种整数类型。MySQL数据库除了支持这两种类型外,还扩展支持了TINYINT、MEDIUMINT和BIGINT。 各种整数类型的取值范围、存储的字节数如下: 整型 字节数 无符号数的取值范围 有符号数的取值范围原创 2012-12-10 22:56:28 · 3132 阅读 · 0 评论 -
MYSQL入门学习之五:MYSQL的字符集
MySQL的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。 对于字符集的支持细化到四个层次:服务器(server),数据库(database),数据表(table)和连接(connection)。 一、MySQL默认字符集 MySQL对于字符集的指定可以细化到一个原创 2012-12-11 21:54:07 · 691 阅读 · 0 评论 -
MYSQL入门学习之七:MYSQL常用函数
一、数学函数 ABS(x) 返回x的绝对值 BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制) CEILING(x) 返回大于x的最小整数值 EXP(x) 返回值e(自然对数的底)的x次方原创 2012-12-12 23:24:55 · 1216 阅读 · 0 评论 -
MYSQL入门学习之六:MYSQL的运算符
一、算术运算符1、加 mysql> select 1+2; +-----+ | 1+2 | +-----+ | 3 | +-----+2、减 mysql> select 1-2; +-----+ | 1-2 |原创 2012-12-12 20:12:22 · 1296 阅读 · 0 评论 -
MYSQL入门学习之八:数据库及表的基本操作
一、操作数据库 1、查看数据库 show databases [ like '']; 示例: mysql> show databases; +--------------------+ | Database | +--------------------+原创 2012-12-13 20:45:59 · 743 阅读 · 0 评论 -
MYSQL入门学习之十:视图的基本操作
一、视图的基本介绍 视图是虚拟的表。与包含数据的表不一样,视图只包含使用时动态检索数据的查询。 使用视图需要MySQL5及以后的版本支持。 下面是视图的一些常见应用: 重用SQL语句; 简化复杂的SQL操作; 使用表的组成部分而不是整个表; 保护数据; 更原创 2012-12-15 12:44:55 · 1087 阅读 · 0 评论 -
MYSQL入门学习之十九:MYSQLDUMP命令参数详解
mysqldump是mysql用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等。对于导出的文件,可使用SOURCE命令导入数据库。使用mysqldump -?命令,可以查看mysqldump的具体参数及详细说明。下表是一些常见的选项:-A, --all-databasesDump a原创 2012-12-29 00:20:58 · 1952 阅读 · 0 评论 -
MYSQL入门学习之十一:触发器的基本操作
触发器是MySQL响应以下任意语句而自动执行的一条MySQL语句(或位于BEGIN和END语句之间的一组语句): DELETE; INSERT; UPDATE; 使用触发器,需要MySQL5或之后的版本支持。一、触发器基本操作1、创建触发器 创建触发器时,需要给出4条信原创 2012-12-15 23:58:53 · 1059 阅读 · 0 评论 -
MySQL:创建存储过程失败
第一次使用如下代码创建存储过程,却报1307的错误:mysql> create procedure sp_test() -> begin -> select userid,username from newname where userid = 222; -> end -> //ERROR 1307 (HY000): Failed to CREAT原创 2012-12-16 23:54:39 · 1171 阅读 · 0 评论 -
MYSQL入门学习之九:索引的基本操作
一、创建索引 MYSQL常用的索引类型主要有以下几种:1、普通索引 CREATE INDEX idx_name ON table_name(table_col(length)); 如果索引字段是CHAR,varchar类型,length可以指定小于字段实际长度;如果是BLOB和TEXT类型,必须指定length。 mysq原创 2012-12-15 01:24:22 · 1579 阅读 · 0 评论 -
MYSQL入门学习之一:基本操作
1、登录数据库 命令:mysql -u username –p (mysql -h主机地址 -u用户名 -p用户密码) 描述:输入命令回车,即可输入密码了。密码验证通过即可进入数据库了。2、查看数据库状态 命令:show databases; 描述:该命令会显示现存的所有数据库。3、建立与删除数据库 命令:create database d原创 2012-12-02 16:38:03 · 1446 阅读 · 1 评论 -
MYSQL入门学习之十三:自定义函数的基本操作
一、自定义函数(UDF)的特性和功能 函数能分返回字符串,整数或实数; 可以定义一次作用于一行的简单函数,或作用于多行的组的集合函数;二、基本操作1、创建自定义函数 CREATE [AGGREGATE] FUNCTION function_name RETURNS {STRING|INTEGER|REAL} BEGIN原创 2012-12-18 20:09:10 · 3541 阅读 · 0 评论 -
MYSQL入门学习之十二:存储过程的基本操作
存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合。可将其视为批文件,虽然它们的作用不仅限于批处理。 使用存储过程需要MySQL5及以后的版本支持。一、为什么要使用存储过程 通过把处理封闭在容易使用的单元中,简化复杂的操作; 将一系列处理步骤放到同一存储过程中,保证了数据的完整性和操作的安全性; 简化原创 2012-12-17 23:58:04 · 898 阅读 · 1 评论 -
MYSQL入门学习之十四:游标的基本操作
游标(CURSOR)是一个存储在MySQL服务器上的数据库查询,它不是一条SELECT语句,而是被该语句检索出来的结果集。在存储了游标之后,应用程序可以根据需要滚动或浏览其中的数据。 游标主要用于交互式应用,其中用户需要滚动屏幕上的数据,并对数据进行浏览或做出更改。 使用游标需要MySQL5及以上版本支持。一、使用游标的步骤 在能够使用游标原创 2012-12-18 21:38:17 · 1760 阅读 · 1 评论 -
MYSQL入门学习之十五:事务处理的基本操作
事务处理(transaction processing)可以用来维护数据库的完整性,它保证成批的MySQL操作要么完全执行,要么完全不执行。 但是并非所有的数据库引擎都支持事务处理。MyISAM和InnoDB是两种最常使用的引擎。前者不支持明确的事务处理管理,而后者支持。一、几个事务处理相关的术语 事务(transaction)指一组SQL语句;原创 2012-12-19 00:23:02 · 907 阅读 · 0 评论 -
MYSQL入门学习之二十:MYSQLIMPORT命令参数详解
MySQLimport位于MySQL/bin目录中,是MySQL的一个载入(或者说导入)数据的一个非常有效的命令行工具。 使用mysqlimport -?命令,可以查看mysqlimport的具体参数及详细说明。下表是一些常见的选项:-c, --columns=nameUse only these columns to import the data to原创 2013-01-03 23:46:33 · 2593 阅读 · 0 评论 -
MYSQL入门学习之二:使用正则表达式搜索
一、正则表达式介绍正则表达式是用来匹配文本的特殊的串(字符集合)。二、使用MySQL正则表达式1、MySQL仅仅支持多数正则表达式实现的一个很小的子集。2、LIKE匹配整个列值;而REGEXP匹配列值的子串,如果被匹配的文本在列值中出现,REGEXP将会找到它,相应的行将被返回。看下面的例子:mysql>select username from v9_admin where原创 2012-12-03 21:56:01 · 1374 阅读 · 0 评论