1背景 我之前写了一篇关于使用注解和策略模式实现数据脱敏功能,其中使用策略模式用来消除if语句,实现业务与条件逻辑的解耦,有利于功能的扩展。...脱敏效果 2使用if语句处理每种类型的脱敏情况 代码中有用if语句处理各个类型的脱敏,这是一般情况,使用if语句将业务代码与条件代码混到一起,不利于类型的拓展,这个问题上篇文章有讲到。...解决办法是使用了策略模式消除了if语句。今天我们来使用规则引擎消除if语句,代码案例同样是脱敏功能实现。 3规则引擎 Easy Rules 规则引擎就是提供一种可选的计算模型。...这是一组生产规则,每条规则都有一个条件(condition)和一个动作(action)———— 简单地说,可以将其看作是一组if-then语句。...本篇文章简要的介绍如何使用规则引擎消除if语句,实现数据脱敏。
2、MySQL 中库表的 DQL 语句详解 2.1、MySQL 服务器登录 启动 MySQL 服务后,可以通过 mysql 命令来登录 MySQL 服务器,命令如下: mysql –h hostname...Insert:该权限用于向表中插入数据记录行。对于 ANALYZE TABLE、OPTIMIZE TABLE 和 REPAIR TABLE 表维护语句也需要 Insert 权限。...Select:该权限用于从数据库表中查询数据行记录。使用 SELECT 语句只有实际从表中检索行记录时才需要 Select 权限。...,却不能使用 WHERE 语句指定更新某些行记录。...Update:该权限用于执行对数据库表中的数据行更新操作。 Usage:该权限代表用户“无任何权限”。
2、MySQL 中 的 DQL 语句详解 2.1、DQL 语句:SELECT FROM SELECT FROM 语句用于从一个或多个表中检索数据,是 MySQL 中使用最多的语句。...如果有两条或更多条语句,则需要使用分号 “;” 将它们分开,以便 MySQL 单独执行每条语句。...2.2、DQL 子句:JOIN 在 MySQL 中,JOIN 语句用于将数据库中的两个表或者多个表组合起来。...2.3.8、操作符 EXISTS 在 MySQL 中,EXISTS 操作符用来判断一个子查询是否返回数据行。...2.6、DQL 子句:LIMIT 在 MySQL 中,我们使用 LIMIT 子句来限定 SELECT 语句返回的行的数量。 该 LIMIT 子句可用于限制 SELECT 语句返回的行数。
[WHERE clause]; 2、MySQL 中 的 DML 语句详解 2.1、DML语句:INSERT 在 MySQL 中,INSERT 语句用于将一行或者多行数据插入到数据表的指定列中。...中,DELETE 语句用于从表中删除满足条件的记录行。...REPLACE 语句和 INSERT 语句很像,它们的不同之处在于,当插入过程中出现了重复的主键或者重复的唯一索引的时候,INSERT 语句会产生一个错误,而 REPLACE 语句则先删除旧的行,再插入新的行...REPLACE 语句不在标准 SQL 的范畴。 我们可以使用一个 REPLACE 语句插入一行或多行数据。...REPLACE 则会删掉旧行,再插入新行,REPLACE 语句中未指定的字段则为默认值或者 NULL。
在我们平时的开发过程中,经常可能会出现大量If else的场景,代码显的很臃肿,非常不优雅。那我们又没有办法处理呢?
在 MySQL 中,DROP DATABASE 语句用来删除数据库。...ADD COLUMN 语句。 以下是 MySQL ALTER TABLE ... ADD COLUMN 语句的语法。...2.3.4、自增列 自增列是 MySQL 中的一个特殊的列,该列的值可由 MySQL 服务器自动生成,并且是一个按升序增长的正整数序列。自增列能够被用来为表的新行产生唯一的标识。...RESTRICT: 如果被引用的表中的一行在该表中有匹配的行,试图删除或更新被引用的表中行时会引发 MySQL 错误。这是默认的策略。...下面是 MySQL CHECK 的语法: CHECK(expr) 这里, expr 是一个布尔表达式,此表达式针对一行的数据进行计算。
查看数据库引擎 show variables like '%storage_engine%'; 运行mysql时候出现:[Warning] TIMESTAMP with implicit DEFAULT...解决方法:mysqld下加一行 explicit_defaults_for_timestamp
重构步骤 确定重构的方向是"用策略模式消除if语句" 为text test fixture增加测试场景,参见测试决策表 创建text based approval testing的基准输出文件golden-master.txt
1.使用 MySQL 客户端登录: 打开终端并运行以下命令,使用你的 MySQL 用户名和密码登录到 MySQL 服务器: mysql -u your_username -p 2.连接成功后,运行以下...SQL 查询语句来获取数据库的数量: SHOW DATABASES; 3.选择数据库: 如果你有多个数据库,选择要查看的数据库: USE your_database; 查看表: 使用以下命令查看数据库中的表...退出 MySQL 客户端: 当你完成查看后,可以使用以下命令退出 MySQL 客户端: EXIT; 或者直接按 Ctrl + D(在终端中)。
SELECT * FROM tablename WHERE id IN(2,3,1) ORDER BY INSTR(',"2,3,1",',CONCAT(','...
: select * from emp; 在日常工作中 不建议使用* 因为查询效率较低 常用命令: select database(); 查看当前使用的是哪个数据库 \c 命令,结束一条语句...exit 命令,退出mysql。 ...查看创建表的语句: show create table emp; 查询语法格式: select 字段名1,字段名2,字段名3,.... from 表名; 注意:标准sql语句中要求字符串使用单引号括起来...虽然mysql支持双引号,尽量别用。 可以给字段名设为中文: select ename,sal * 12 as '年薪' from emp; 条件查询。
( MONTH(signed) ) PARTITIONS 12; 将分区表从12个分区变为8个分区 ALTER TABLE clients COALESCE PARTITION 4; 同样的有以下的语句关于...TABLE pt EXCHANGE PARTITION p WITH TABLE nt with VALIDATION ; 1:将分区和一个没有分区的表EXCHANGE 创建表插入语句...p2 VALUES LESS THAN (15), -> PARTITION p3 VALUES LESS THAN MAXVALUE -> ); 分区的一些添删查修语句...TABLE pt EXCHANGE PARTITION p WITH TABLE nt with VALIDATION ; 1:将分区和一个没有分区的表EXCHANGE 创建表插入语句...p2 VALUES LESS THAN (15), -> PARTITION p3 VALUES LESS THAN MAXVALUE -> ); 分区的一些添删查修语句
GROUP BY 语句根据一个或多个列对结果集进行分组。 在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。...'4'), ('6', '小明', '2016-04-04 15:26:54', '2'); COMMIT; SET FOREIGN_KEY_CHECKS = 1; 导入成功后,执行以下 SQL 语句...: mysql> set names utf8; mysql> SELECT * FROM employee_tbl; +----+--------+---------------------+----...| 2 | +----+--------+---------------------+--------+ 6 rows in set (0.00 sec) 接下来我们使用 GROUP BY 语句...将数据表按名字进行分组,并统计每个人有多少条记录: mysql> SELECT name, COUNT(*) FROM employee_tbl GROUP BY name; +--------+
#---------------------------表连接知识------------------------------ #等值连接又叫内链接 inner join 只返回两个表中连接字段相等的行...2. explain select 语句可以知道性能 3.一行数据使用 limit 1; 4.为搜索字段重建索引 比如关键字 标签 5.表连接join保证字段类型相同并且有其索引 6.随机查询使用php...if 条件 then 语句 elseif 条件 then 语句 else 语句 end if #case语句 case 条件 when 条件 then 语句 when 条件 then 语句 else...语句 end case #loop语句 fn:loop 语句 end loop fn; leave fn #退出循环 #while语句 fn:while 条件 do 语句 end while fn...show;#show语句 ?
-- 给成绩表设置联合主键 ALTER TABLE result ADD PRIMARY KEY pk_result (studentno,subjectno,examdate); mysql数据库中常用的两种
show tables或show tables from database_name; // 显示当前数据库中所有表的名称 show databases; // 显示mysql中所有数据库的名称 show...columns from table_name from database_name; 或MySQL show columns from database_name.table_name; // 显示表中列名称...MySQL show table status; // 显示当前使用或者指定的database中的每个表的信息。...show innodb status; // 显示innoDB存储引擎的状态 show logs; // 显示BDB存储引擎的日志 MySQL show warnings; // 显示最后一个执行的语句所产生的错误...、警告和通知 show errors; // 只显示最后一个执行语句所产生的错误
数据库存储数据,总会有一些垃圾数据,也会有一些不需要用的数据了,这些情况下,我们就可以删除这些数据,释放出一定的空间,给其他的数据使用 使用前需注意:删除(DELETE),是删除一(条)行数据,图1里,有4条(行)...“巴巴”的用户,那么关于他的 id、密码、性别、年龄都会被删除 删除前: 删除和修改都有一共共同点,需要 WHERE 过滤条件,否则,也会删除多条数据,所以说,使用的时候一定要检查 基本语句...:DELETE FROM cs_user WHERE username = “巴巴” 详解: DELETE(delete) 删除语句 FROM(from) 指定表 cs_user 表名...嘛,这里就不多说,会让初学同学搞不懂 说这么多,就为了一点:使用修改或是删除语句的时候,请注意,你要删除的对象是谁,要谨慎。
TRUNCATE其实属性DDL语句,因为它是先DROP TABLE,再CREATE TABLE。...5,DQL DQL就是数据查询语言,数据库执行DQL语句不会对数据进行改变,而是让数据库发送结果集给客户端。...5.8.1查询5行记录,起始行从0开始 SELECT * FROM emp LIMIT 0, 5; 注意,起始行从0开始,即第一行开始!...第一页记录起始行为0,一共查询10行; 第二页记录起始行为10,一共查询10行; 第三页记录起始行为20,一共查询10行; 5.9多表连接查询 5.9.1内连接 上面的连接语句就是内连接,但它不是SQL...,或两个以上SELECT,那么就是子查询语句了。
mysql5.7的安装,参考centos7安装mysql-5.7.22 使用root账号登陆 方式一: 使用账户root,密码root登陆,注意-p后面不能有空格 mysql -u root -proot... 方式二: mysql -u root -p 输入密码 查看当前登录的账号 mysql> select user(); +----------------+ | user() | +-...OK, 0 rows affected (0.00 sec) 查看mysql字符编码 mysql> show variables like 'character%'; +---------------...sec) 查: 查看mysql的所有数据库 mysql> show databases; +--------------------+ | Database | +--------...-表的操作 use: 切换数据库 mysql> use db1; Database changed 查看当前所在数据库 mysql> select database(); +------------+
目录 操作数据库 操作表 操作数据 导入/导出 数据库 基础语句 操作数据库 查看当前MySQL版本信息 SELECT VERSION(); 查看当前MySQL中有哪些数据库 SHOW DATABASES
领取专属 10元无门槛券
手把手带您无忧上云