4.9日总结

发布于:2024-04-10 ⋅ 阅读:(179) ⋅ 点赞:(0)

1.MySQL概述

1.数据库基本概念:存储数据的仓库,数据是有组织的进行存储

2.数据库管理系统:操纵和管理数据库的大型软件

3.SQL:操作关系型数据库的编程语言,定义了一套操作型数据库统一标准

2.MySQL数据库

关系型数据库(RDBMS):

概念:建立在关系型模型基础上,由多张相互连接的二维表组成的数据库

好处:1.用表存储数据,方便维护

            2.用SQL语言操作,标准统一,使用方便

基于表进行数据存储的数据库就是关系型数据库

3.分类

DDL:数据定义语言,用来定义数据库对象

DML:数据操作语言,用来对数据库表中的数据进行增删查

DQL:数据查询语言,用来潮汛数据库表中记录

DCL:数据控制语言,创建数据库用户,控制数据,库访问权限

4.DDL语言相关操作

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| biaoge             |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)
mysql> create database test;
Query OK, 1 row affected (0.01 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| biaoge             |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+
6 rows in set (0.00 sec)
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| biaoge             |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |
| test1              |
+--------------------+
7 rows in set (0.00 sec)
mysql> select database();
+------------+
| database() |
+------------+
| biaoge     |
+------------+
1 row in set (0.00 sec)

mysql> show tables;
+------------------+
| Tables_in_biaoge |
+------------------+
| testbiaoge       |
+------------------+
1 row in set (0.00 sec)

mysql> desc testbiaoge;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name  | varchar(50) | YES  |     | NULL    |       |
| ID    | int         | NO   | PRI | NULL    |       |
| score | int         | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

 5.内部类

内部类

类里面:成员内部类 ,静态内部类(区别就是是否有static)

方法里面:匿名内部类,局部内部类(匿名内部类没有类名,局部内部类有)

class Outer{   				//外部类
	public class Inner{     //内部类 (这里是成员内部类)
   		int age = 1;     
    }
    
    public void test(){
        Inner inner = new Inner();
        System.out.println(inner.age);
    }
    
	public static void main(String[] args){
    	Outer outer = new Outer;   //外部类对象创建
    	Outer.Inner inner = outer.new Inner()  //内部类对象的创建
	}       
}

1.局部内部类
可以直接访问外部类的所有成员,包含私有的
不能添加访问修饰符,因为他的地位就是一个局部变量,但是可以用final修饰
作用域,仅仅在定义他的方法或者代码块里面
局部内部类访问外部类的成员–>直接访问
外部类访问局部内部类,在局部内部类的作用域内创建对象然后访问
局部内部类里的属性和外部类属性重名,怎么搞?solution:外部类名.this.属性名,你可能会有疑问,为什么不能直接this.属性名,因为局部内部类他始终是一个局部变量,创建它的对象只能在方法体内或者代码块内,调用的时候也是外部类的对象调用这个方法进而使用这个对象,所以用this.属性名的this指的是方法体中创建的局部内部类对象,但是你加上一个外部类名的话,就能表示这个this是外部类的对象

2.匿名内部类
2.1基于接口的匿名内部类

引入:一般情况下你要实现一个接口是写一个类实现接口,然后创建类的对象实例来使用。但是我现在的需求是只想使用一次,后面不再使用这个类,那我们就引入了匿名内部类

public class AnonymousInnerClass {
    public static void main(String[] args) {
        IA ia = new IA(){
            @Override
            public void wang() {
                System.out.println("汪汪叫....");  
            }
        };
    }
}

interface IA{
    void wang();
}

 

 每日一题:

Watering the Fields

最小生成树模版题,但是需要进行路径压缩(状态压缩)不然会被卡TLE

#include<bits/stdc++.h>
using namespace std;
long long n;
long long c;
long long x[2005];
long long y[2005];
long long f[4000001];
long long cnt;
long long sum;
long long ans;
long long flag;
struct lu
{
	int a,b;
	long long w;
}q[4000005];

int cha(int x)
{
	if(f[x] == x)
		return x;
	return f[x] = cha(f[x]);//路径压缩 
}


void bing(int r1,int r2)
{
	if(r1==r2)
	return ;
	f[r2]=r1;
}

bool cmp(lu x,lu y)
{
	return x.w<y.w;
}

int main()
{
	cin>>n>>c;
	for(int i=1;i<=n;i++)
	f[i]=i;
	for(int i=1;i<=n;i++)
	{
		cin>>x[i]>>y[i];
		for(int j=1;j<i;j++)
		{
			long long dis=((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));
			if(dis>=c)
			{
				cnt++;
		        q[cnt].a=i;
		        q[cnt].b=j;
		        q[cnt].w=dis;
			}
		}
	}
	if(cnt<n-1)
	{
		printf("-1\n");
		return 0;
	}
	sort(q+1,q+1+cnt,cmp);
	for(int i=1;i<=cnt;i++)
	{
		int x=cha(q[i].a);
		int y=cha(q[i].b);
		if(x!=y)
		{
			bing(x,y);
			sum+=q[i].w;
			ans++;
			if(ans==n-1)
			break;
		}
	}
	if(ans==n-1)
	printf("%lld\n",sum);
	else
	printf("-1\n");
	return 0;
}

 

 

 

 

 


网站公告

今日签到

点亮在社区的每一天
去签到