数据库
什么是数据库 通常是一个或一组文件,保存了一些符合特定规格的数据
SQL 全程为结构化查询语言
数据库常用命令
select version(); 查看数据库版本号
show databases; 查看有几个数据库
use (数据库名称;使用哪个(名称)数据库
show tables 查看指定数据库中的所有表
show tables from (数据库名称)查看其他库中的表
select database(); 查询当前所使用的数据库
desc (表的名称); 查看表的结构
create database 数据库名称; 创键数据库
source 脚本路径 导入数据库脚本
select 名称 from 名称 显示 后边名称的前边表.
通过as字段名称可以请别名
where 查询语句
and优先级高于or
like 可以实现模糊查询,like支持%和下划线匹配
SQL分类
DQL语句 数据查询语言 selsect
DML语句 数据操作语言 insert delete update
DDL语句 数据库定义语言 create drop alter
TCL语句 事务控制语言 commit rollback
排序采用order by 如果有where 必须放在where后面 asc升序 desc降序
处理函数
Lower 转换小写
upper 转换大写
substr 取字符串 substr(名称,起始长度,终止长度)
length 取长度
trim 去空格
str-to-date 将字符串转换成日期
date_format格式化日期 主要用在数据库查询操作中
round 四舍五入
rand()生成随机数 0到1
Ifnull 空值处理函数 select ifnull(comm,0) from emp;
case…when then
多行处理函数
sum select sum(sal) from emp;
avg select avg(sal) from emp;
max select max(sal) from emp;
min select min(sal) from emp;
count select count(*) from emp;
分组函数自动忽略空值 分组函数不能直接使用在where关键字后面
distinct 去除重复记录
算法题
答案
package 算法;
import java.util.Scanner;
public class 翻转块数 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
while(t-->0) {
int N =sc.nextInt();
int M =sc.nextInt();
if(N>M) {
int temp = N;
N = M;
M = temp;
}
if(N == 1 && M == 1) {
System.out.println(1);
}else if(N == 1 && M > 1) {
System.out.println(M-2);
}else {
System.out.println((N-2)*(M-2));
}
}
}
}
解题思路
这个题要开始看的不是很明白多看了几遍之后 就是先把他分为翻奇数次还是偶数次如果是偶数次就不算奇数次再算 思路有了写的时候不是很会然后找了找大佬的 大佬的非常详细又分了分
1 顶点上的(大佬写的是对角线上的点我感觉不对)点只受到三个点的影响 加上自身总共4个点最后还是上面
2 除了顶点边上的点会受到5个点的影响 加上自身总共6个点最后还是上面
3其他位置上的点都是8个点的影响 加上自身9个点会在下面
矩阵的行N == 1 且列 M == 1 就一张牌翻一次就1张
矩阵的行N == 1 且列 M>1 就是去掉首尾的两个点 有M-2张
举证的行N>1 且 列 M>1 去掉四周边线上的点 有(N-2)*(M-2)张
if(N>M) {
int temp = N;
N = M;
M = temp;
}
```这行代码就是还有M==1 N>1的情况但是其实和那个是一样的就都转换成第2种的了