目录
1. 聚合查询是进行行与行的运算合并,是不能和别的列放在一块查询
2. PHP数据库查询语句
3. 有group by时先执行where,后执行having
4. join常用两张表内连接和外连接,用一张表可以自连接
5. 删除数据用delete,删除表时drop,选中数据库后,再用drop删
6. IF(expr1,expr2,expr3)有点类似三目运算符,expr1为true或不为0,就是真
7. IN()范围查询括号中存在的,NOT IN()范围查询不在括号中存在的,ALL表示全部都满足才返回true
8. 查找输入整数二进制中1的个数
9. 冲突就是两个会话的操作,同时执行时,是否会相互影响
10. MySQL是一个数据库服务器,一定要保证数据传输的可靠,而UDP是无连接,不可靠传输
11. 两个事务并发操作需要注意的问题
12. 在关系模型中,实现表示了两个关系之间的相关联系的约束是通过 外键
12.修改表结构的关键字都是 alter table 表名 ,再跟具体修改的语句
13. 完全数计算
14. 授予用户某张表的查询数据的权限:grant select on 数据库.表名 to 用户名 '@' 该用户允许访问的 ‘ip’
15. 修改表结构,给表中添加列 alter table table_name add 字段名称 字段类型
16. group by 通常和集合函SUM(),AVG().MAX(),MIN(),COUNT()等结合在一起,后接限制条件语句 having,不可用where语句
17. 安卓手机开发常用的内存数据库 sqlLite
18. 杨辉三角的变形
19. 计算某字符出现次数
1. 聚合查询是进行行与行的运算合并,是不能和别的列放在一块查询
BC 聚合查询是行和行进行统计合并为一条数据,是不能和别的列放在一块查询的
D Delete是删除数据
delete from 表名 where 条件; 删除条件控制的列
delete from 表名; 删除所有列
如果想把表删除那就 drop table 表名;
2. PHP数据库查询语句
3. 有group by时先执行where,后执行having
group by是进行分组,在进行分组前,先用where进行条件过滤,然后再进行分组,分完组之后,再使用having 对分组的结果进行条件筛选
4. join常用两张表内连接和外连接,用一张表可以自连接
join 常用在数据库操作内连接和外连接中,一般涉及两张表
但是这里问至少涉及到几张表,那就可以考虑如果是自连接的话,那么就涉及到一张表了
5. 删除数据用delete,删除表时drop,选中数据库后,再用drop删
删除数据用delete,删除表时drop
C选项是只有当进入这个数据库后,才可以直接删除 tb_ame这个表
D选项是不论在哪个数据库中都可以执行这个命名,都能成功删除这个表
6. IF(expr1,expr2,expr3)有点类似三目运算符,expr1为true或不为0,就是真
IF()是一个函数具体用法是:IF(expr1,expr2,expr3),如果expr1的值为真(boolean值为true,或不为0的数值),则返回expr2的值,否则返回expr3的值(感觉有点像三目运算符)
7. IN()范围查询括号中存在的,NOT IN()范围查询不在括号中存在的,ALL表示全部都满足才返回true
8. 查找输入整数二进制中1的个数
题目链接:查找输入整数二进制中1的个数_牛客题霸_牛客网 (nowcoder.com)
题目要求:
上代码
在Integer中有一个方法bitCount()是输入int类型数字,输出这个数字二进制1的个数
当然,这道题考我们的就是int转二进制,然后统计1的个数,肯定是不能直接这么搞的
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while(in.hasNext()) {
int n = in.nextInt();
System.out.println(Integer.bitCount(n));
}
}
}
所以还是老实的写吧
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
while(scan.hasNext()) {
int n = scan.nextInt();
int count = 0;
while (n != 0) {
if((n&1) == 1) {
count++;
}
n = n>>1;
}
System.out.println(count);
}
}
}
9. 冲突就是两个会话的操作,同时执行时,是否会相互影响
一个操作属于一个会话,另一个操作,属于另一个会话
冲突:两个会话的操作,同时执行时,是否会相互影响
10. MySQL是一个数据库服务器,一定要保证数据传输的可靠,而UDP是无连接,不可靠传输
MySQL中的通信协议
TCP/IP协议:通常我们连接MySQL ,各种主要编程语言都是根据这个协议实现了连接模块
Unix Socket协议:通常我们登入MySQL服务器中使用这个协议,因为要使用这个协议连接MySQL需要一个物理文件。文件的存放位置在配置文件中有定义,Unix Socket协议是所有协议中最高效的一个(网络编程、网络通信使用)
Share Memory协议:这个协议一般不用,因为这个只有windows可以使用,这个协议需要在配置文件中在启动的时候使用shared-memory参数,需要注意的是,使用此协议,一个host上只能有一个server,所以这个东西一般没啥用,除非你怀疑其他协议不能正常工作
Named Pipes协议:这个协议也是只有windos才可以使用。同 shared memory一样,使用此协议,一个host上依然只能有一个server,即使是使用不同的端口也不可以(为局域网而开发的协议)
11. 两个事务并发操作需要注意的问题
12. 在关系模型中,实现表示了两个关系之间的相关联系的约束是通过 外键
超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键
候选键(candidate key):不含有多余属性的超键称为候选键
12.修改表结构的关键字都是 alter table 表名 ,再跟具体修改的语句
修改表结构的关键字都是 alter table 表名 ,再跟具体修改的语句
添加表字段
alter table table_name add 字段名称 字段类型
删除表字段
alter table table_name drop 字段名称
修改表字段
alter table table_name change 旧字段名称 新字段名称 字段类型
alter table table_name modify 字段名称 字段类型
13. 完全数计算
题目链接:完全数计算_牛客题霸_牛客网 (nowcoder.com)
题目要求:
题目分析:
计算完全数的个数,就要先要判断一个数的真因子的和等不不等于它本身,
也就是求一个数除了它自身以外的约数的和,判断这个和 是否与 本身相等
然后统计满足要求数的个数就可以了
上代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int count = 0;
for (int i = 2; i < n; i++) {
if(constraint(i) == i) {
count++;
}
}
System.out.println(count);
}
//求出 除自身以外约数的和
private static int constraint(int a) {
int sum = 0;
for (int i = 1; i <= a/2; i++) {
if(a%i == 0){
sum += i;
}
}
return sum;
}
}
14. 授予用户某张表的查询数据的权限:grant select on 数据库.表名 to 用户名 '@' 该用户允许访问的 ‘ip’
常用的管理权限的命令有:
(1)授予用户某张表的查询数据的权限:grant select on 数据库.表名 to 用户名 '@' 该用户允许访问的 ‘ip’
(2)授予用户某张表的插入数据的权限:grant insert on 数据库.表名 to 用户名 '@' 该用户允许访问的 ‘ip’
(3)授予用户某张表的修改数据的权限:grant update on 数据库.表名 to 用户名 '@' 该用户允许访问的 ‘ip’
(4)授予用户某张表的删除数据的权限:grant delete on 数据库.表名 to 用户名 '@' 该用户允许访问的 ‘ip’
15. 修改表结构,给表中添加列 alter table table_name add 字段名称 字段类型
修改表结构,给表中添加列
alter table table_name add 字段名称 字段类型
16. group by 通常和集合函SUM(),AVG().MAX(),MIN(),COUNT()等结合在一起,后接限制条件语句 having,不可用where语句
返回至少被订购过至少两次的productid,说明根据产品id分组,分组后,相同产品id行数>1的产品
分组group by 分组后条件过滤 having
相同的分组字段productid,合并时,可以计算行数(相同productid,合并,每一个的行数)
17. 安卓手机开发常用的内存数据库 sqlLite
而Oracle 、Sql Server 、Db23 都是企业级,大型数据库
18. 杨辉三角的变形
题目链接:杨辉三角的变形_牛客题霸_牛客网 (nowcoder.com)
题目要求:
题目分析:
上代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
if(n == 1 || n == 2) {
System.out.println(-1);
}else if(n%4 == 0) {
System.out.println(3);
}else if(n%4 == 2) {
System.out.println(4);
}else {
System.out.println(2);
}
}
}
19. 计算某字符出现次数
题目链接:计算某字符出现次数__牛客网 (nowcoder.com)
题目要求:
题目分析:
输入字符串和一个字符,统计这个字符在字符串中出现的次数
直接遍历就可以了用equals,注意这个要是String类型的才可以直接比较
而且题中还说不区分大小写字母,可以都转为大写(toUpperCase())或小写,
也可以用equlsTolgnoreCase()忽略字母大小写,比较是否相等
上代码
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String str = scan.nextLine();
String ch = scan.nextLine();
int count = 0;
for (int i = 0; i < str.length(); i++) {
if((String.valueOf(str.charAt(i)).equalsIgnoreCase(ch)) == true) {
count++;
}
}
System.out.println(count);
}
}