Day17

Day17,第1张

select后面写需要选择的列名,from表名,where进行条件选择

使用国家以及年龄进行筛选,要求这个国家和年龄是这个国家里年龄最小的

使用in进行筛选,in后面的数据应为每个国家年龄最小运动员数据,因此从运动员表中选择出国家及最小年龄,以国家进行分组。

C:由于in后面选择出表的列顺序与in前面查找数据的顺序不同无法得到该结果

A:将以国家分组放在括号外面导致in后面括号中select语法错误,并且不符合题意

B:只以年龄进行in筛选无法确定是哪个国家的运动员,无法得到正确结果

 

原子性:事务是一个不可分割的整体,为了保证事务的总体目标,事务必须具有原子性,即当数据修改时,要么全执行,要么全不执行,即不允许事务部分的完成,避免了只执行这些 *** 作的一部分而带来的错误。原子性要求失误必须被完整执行。

一致性:一个事务执行之前和之后,数据库数据必须要保持一致性状态。数据库的一致性状态应该满足模式锁指定的约束,那么在完整执行该事务后数据库仍然处于一致性的状态。为了维护所有数据的完整性,在关系型数据库中,所有规则必须应用到事务的修改上。数据库的一致性状态由用户来负责,由并发控制机制实现。例如银行转账,转账前后两个账户金额之和应保持不变。由此并发 *** 作带来的数据不一致性包括丢失数据修改、读脏数据。不可重复读、产生‘幽灵’数据。

隔离性:隔离性也被成为独立性,当两个或多个事务并发执行时,为了保证数据的安全性,将一个事物内部的 *** 作与事务的 *** 作隔离起来,不被其他正在执行的事务看到。

持久性:持久性也被成为永久性,事务完成之后,DBMS保证它对数据库中的数据的修改是永久性的,当系统或介质发生故障时,该修改也永久保持。持久性一般通过数据库备份与恢复来保证。

 

  • 个数信息:count;
  • 每一个学生,分组;

 SQLite:是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的 *** 作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。

 

当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。 

 grant [权限] on [table] to ‘username’@‘localhost’;

  • 添加列,就是要修改表结构,使用alter;
  • ADD添加后面跟着是<新列名> 数据类型 完整性约束;

要先按照产品信息分组在筛选,那么肯定是分组+having; 

  • _表示匹配任意一个字符;因此A前面必须有一个字符;
  • %代表0个或者多个任意字符;

  • 求平均成绩要按照班级分组;
  • 然后where在分组前面,having在分组的后面;

以上三角形的数阵,第一行只有一个数1,以下每行的每个数,是恰好是它上面的数、左上角数和右上角的数,3个数之和(如果不存在某个数,认为该数就是0)。

求第n行第一个偶数出现的位置。如果没有偶数,则输出-1。例如输入3,则输出2,输入4则输出3,输入2则输出-1。

数据范围: 1≤n≤109 1 \le n \le 10^9 \ 1≤n≤109 

 

输入描述:

输入一个int整数
 

输出描述:

输出返回的int值

示例1

输入
4
输出
3

 找规律写的代码:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        int n=scanner.nextInt();
        if(n <= 2){
            System.out.println("-1");
        }else if(n%2 == 1){
            System.out.println("2");
        }else if(n%4 == 0){
            System.out.println("3");
        }else{
            System.out.println("4");
        }
    }
}

按思路写出来的代码,但有几个测试用例内存越界了: 

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        if(n<=2){
            System.out.println(-1);
            return;
        }else {
            //输入一个n,输出二维数组
            int[][] ret = change(n);
            //遍历最后一行 输出第一个偶数
            for (int i = 0; i < 2 * n - 1; i++) {
                if (ret[n - 1][i] % 2 == 0) {
                    int cur = ret[n - 1][i];
                    System.out.println(i+1);
                    return;
                }
            }
        }
    }

    /**
     * 给定一个整型数字,输出杨辉三角
     *
     * @param n
     * @return
     */
    private static int[][] change(int n) {
        int m = 2 * n - 1;
        int[][] arr = new int[n][m];
        //给数组赋值
        if(n<=2){
            return arr;
        }
        if (n > 2) {
            arr[0][0] = 1;
            arr[1][0] = 1;
            arr[1][1] = 1;
            arr[1][2] = 1;
            for (int i = 2; i < n; i++) {
                for (int j = 0; j < m; j++) {
                    if (j == 0 || j == m - 1) {
                        arr[i][j] = arr[i - 1][j];
                    } else if (j == 1 || j == m - 2) {
                        arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
                    } else {
                        arr[i][j] = arr[i - 1][j - 2] + arr[i - 1][j - 1] + arr[i - 1][j];
                    }
                }
            }
        }
        return arr;
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/924490.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存