自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

familyyan的博客

如果不付诸行动,梦想就永远只是幻想。梦想无论大小,只要你展开行动,他就有实现的可能!

原创 mysql-常见约束及标识列

常见约束含义:一种限制,用于限制表中的数据,为了保证表中的数据的准确性和可靠性。常见约束NOT NULL:非空约束,用于保证该字段的值不能为空。比如姓名、学号DEFAULT:用于保证该字段有默认值。比如性别PRIMARY KEY:主键,用于保证该字段的值具有唯一性,并且非空。比如学号、员工号UNIQUE:唯一,用于保证该字段的值具有唯一性,可以为空。比如座位号CHECK:检查约束【mysql不支持】比如年龄、性别FOREIGN KEY:外键,用于限制两个表的关系,,用于保证该字段的值必须来

2020-08-07 10:29:47 16

原创 mysql-常用数据类型

数值型包含:整型、小数(定点数,浮点数)整型:tinyintsmallintmediumintint/integerbigint1个字节2个字节3个字节4个字节8个字节特点:①都可以设置无符号和有符号,默认是有符号,通过unsigned设置无符号。②如果超出了范围,会报out or range异常,插入临界值。③长度可以不指定,默认会有一个长度。int(7),这个长度代表显示的最大宽度,如果不够则坐标用0填充,但需要搭配zerofill,并且默认变为无符

2020-08-06 12:02:46

原创 mysql-库和表的管理

数据定义语言(DDL)主要包含库和表的管理创建:create修改:alter删除:drop库的创建语法:create database 【if not exists】 库名;CREATE DATABASE IF NOT EXISTS books;库的修改一般不修改库名。更改库的字符集alter database books character set gbk;库的删除drop database if exists books;表的创建语法:create table

2020-08-04 17:50:32 15

原创 mysql-数据库的增删改

数据操作语言包括插入:insert修改:update删除:delete插入insert语法:insert into 表名(字段名,...) values(值,...);特点:1、要求值的类型和字段的类型要一致或兼容2、字段的个数和顺序不一定与原始表中的字段个数和顺序一致,既:可以调换但必须保证值和字段一一对应3、不可以为null的值必须插入值,可以为null的值插入方式有两种:①字段和值都省略②字段写上,值使用null4、列数和值的个数必须一致5、可以省略列名,默认所有列

2020-08-03 16:55:19 13

原创 mysql-联合查询

含义union:联合、合并,将多条查询语句的结果合并成一个结果案例引入:查询部门编号>90的或邮箱包含a的员工信息按照之前的写法:SELECT * FROM employeesWHERE email LIKE '%a%' OR department_id>90;使用联合查询:SELECT * FROM employees WHERE email LIKE "%a%"**UNION**SELECT *FROM employees WHERE department_id >

2020-08-03 15:29:26 24

原创 mysql-分页查询

分页查询应用场景:当要显示的数据,一页显示不全,需要分页提交sql请求语法:select 查询列表 ⑦from 表 ①【join type join 表2 ②on 连接条件 ③where 筛选条件 ④group by 分组字段 ⑤having 分组后的筛选 ⑥order by 排序字段】 ⑧limit 【offset】,size ⑨offset:要显示条目的起始索引,(起始索引从0开始)size:要显示的条目个数案例1:查询五条

2020-08-03 10:21:16 32

原创 mysql-子查询

含义出现在其他语句内部的select语句,称为子查询或内查询。内部嵌套其他select语句的查询,称为外查询或主查询。分类按自查询出现的位置分类:-select后面:仅仅支持标量子查询from后面 : 支持表子查询where或having后面 :支持标量子查询和列子查询exists后面(相关子查询):支持表子查询按结果集的行列数不同:标量子查询(结果集只有一行一列)又称单行子查询列子查询(结果集只有一列多行)又称多行子查询行子查询(结果集有一行多列)表子查询(

2020-08-02 23:00:13 33

原创 mysql-sql99标准-连接查询

sql99标准语法select 查询列表from 表名1 别名【连接类型】 join表名2 别名2on 连接条件【where 筛选条件】【group by】分组【having 】筛选条件【order by】排序列表连接类型1、内连接 inner join2、外连接左外 left outer join右外 right outer join全外 full outer join交叉连接 cross join内连接语法select 查询列表from

2020-08-01 21:43:32 52

原创 mysql-sql92标准-连接查询

含义又称多表查询,当查询的字段来自于多个表时就会用到连接查询。笛卡尔积乘积现象:表1有m行,表2有n行,结果m*n行发生的原因:没有有效的连接条件如何避免:添加有效的连接条件分类连接查询分类sql92标准:仅支持内连接sql99标准:支持内连,外连(左外、右外),交叉连接按功能分类内连接:等值、非等值、自连接外连接左外连接、右外连接、全外连接交叉连接eg:查询员工名和对应的部门名SELECT last_name,department_nameFROM emp

2020-07-31 19:51:58 21

原创 mysql分组查询

语法select 分组函数,列(要求出现在group by的后面)from 表where 【筛选条件】group by 分组列表order by举例:eg:查询每个工种的最高工资SELECT MAX(salary) max_salary,job_idFROM employeesGROUP BY job_id;eg:查询每个位置上的部门个数SELECT COUNT(*),location_idFROM departmentsGROUP BY location_id;加上筛

2020-07-30 18:18:07 17

原创 mysql常见函数之-分组函数

分组函数-功能用作统计使用,又称为聚合函数或统计函数或组函数分组函数-分类SUM:求和AVG:求平均值MIN:求最小值MAX:求最大值COUNT:统计个数###分组函数-特点参数支持的类型SUM和AVG:一般用于处理数值型MAX、MIN、COUNT:可以处理任意类型是否可以忽略null值都可以忽略null值的。可以和distinct搭配使用-去重eg:SELECT SUM(DISTINCT(salary)) 去重薪资,SUM(salary) 薪资FROM

2020-07-30 11:19:37 19

原创 mysql常见函数之-单行函数

一、常见函数mysql中的常见函数类似于java的方法,将一组逻辑语句封装在方法体中,对外暴露的方法名好处:1、隐藏了实现细节2、提高代码的重用性语法:select 函数名(实参列表)【from表】特点:函数名(叫什么)函数功能(干什么)功能:做统计使用、又称为统计函数、聚合函数、组函数分类:1、单行函数如:concat 、length、ifnull等2、分组函数单行函数字符函数1、length 获取参数值的字节个数SELECT LENGTH ('emily'); 5SE

2020-07-29 18:11:18 36

原创 mysql排序查询

一、语法select 查询列表from 表where 筛选条件order by 排序列表【asc|desc】二、特点asc:代表的是升序,desc代表的是降序,如果不写,默认是升序order by子句中可以支持单个字段、多个字段、表达式、函数、别名order by 子句一般是放在查询语句后面的,limit子句除外三、举例#查询员工信息,要求工资从高到低排序select * from employeesorder by salary desc;#查询部门编号>=9

2020-07-29 15:36:31 20

原创 mysql条件查询

一、语法select 查询列表 ①from 表名 ②where 筛选条件 ③如果条件成立,数据显示在结果集中,否则不显示。执行顺序:先执行②也就是先查库中的表,在执行where筛选条件,最后执行①走select二、根据筛选条件进行分类1、按条件表达式筛选条件运算符:> < = !=(<>) >= <=eg:查询部分编

2020-07-26 16:58:05 14

原创 mysql基础查询

一、mysql基础查询1、语法select 查询的列表 from 表名2、特点①查询列表可以是字段、常量、表达式、函数,也可以是多个②查询结果是一个虚拟的表3、示例查询单个字段select 字段名 from 表名;查询多个字段select 字段名,字段名 from 表名;查询所有字段select * from 表名查询常量select 常量值;注意:字符型和日期型的常量值必须用单引号引起来,数值型不需要查询函数select 函数名(实参列表); 执行函数体并且返回值

2020-07-24 16:03:29 15

原创 mysql数据库基础知识

mysql数据库基本概念在学习一个新的物体时,我时常围绕这三个维度去学习。what why how什么是数据库?数据库(Database) :按照数据结构来组织、 存储和管理数据的仓库.作用:保存一组有组织的数据。为什么要学数据库?之前学过的存储数据的容器有:数组、集合、文件存储。那两者属于内存存储,一旦断网在打开,数据就需重新加载,文件存储,当数据量比较大的时候,查询数据就不方便了。于是呢,数据库就弥补了两者的不足。数据库好处:①持久化数据到本地②可以实现结构化查询,方便管理数据库存储

2020-07-21 19:37:37 40

原创 Mysql最新版8.0.21下载安装配置教程

Mysql最新版8.0.21下载安装配置教程一、下载1、下载安装包mysql下载路径:https://dev.mysql.com/downloads/file/?id=496745ng)]2、解压压缩包解压到安装的目录:3、在此目录下新建my.ini配置文件[mysqld] # 设置 3306 端口 port=3306 # 设置 mysql 的安装目录 basedir=D:\environment\mysql\mysql-8.0.21-winx64# 设置 mysql 数据库的

2020-07-20 19:24:16 2468 6

原创 Android Fragmnet 两种添加方式的区别及所涉及的生命周期

一、Demo所涉及的部分代码1.MainActivity的布局文件<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" an...

2019-08-02 21:16:50 2290

原创 kotlin数组和集合

一、Kotlin数组1.对象数组由Kotlin的main函数的写法,可以看出Kotlin中的对象数组写法与泛型的写法很像。funmain(args:Array<String>){}声明对象数组的三种形式:(1)使用arrayOf函数和指定的数组元素创建数组//Java写法:String[]params1={"str1","str2","str...

2019-03-11 11:30:55 2705

原创 Kotlin 委托

一、什么是委托?C#中有委托这么一说,但是在Java中是没有这么一说的。回到Kotlin中又有了委托。那到底什么是委托呢?委托是软件设计的一种模式,当无法或不想访问某个对象或访问某个对象存在困难时,可以交给委托类来处理。二、Kotlin中的类委托类委托:即一个类中定义的方法实际是调用另一个类的对象的方法来实现的。//1.定义一个接口interface Base { ...

2019-03-01 11:36:39 449

原创 Kotlin中的数据类(data class)和密封类(sealed class)和枚举类(enum class)

数据类1.什么是data classdata class 就是一个类中包含一些数据字段。2.Kotlin中 data class 设计的好处在Java中我们常用的bean类,每一个变量我们都需要写getter,setter方法,有时候还要重写toString,equals等方法,尽管工具会帮我们一键生成,但是代码量要写很多,显得有点臃肿,不灵活。例如:同样实现一个bean类,J...

2019-02-26 15:15:59 388

原创 Kotlin中函数的扩展

与Java不同的是,Kotlin可以对一个类的属性和方法进行扩展。1.扩展函数的定义格式fun functionType.functionName(params){       函数体}functionType:要扩展函数的对象,表示函数的接收者functionName:扩展函数的名称params:扩展函数的参数class Animation(var name: ...

2019-02-26 11:23:23 83

原创 Kotlin 继承和接口

一、Kotlin中类的继承在Java中,类基于Object,而在Kotlin中类基于Any,所有类都默认继承Any。kotlin中的类默认是final类型的,不可被继承,想要作为基类被继承必须使用open关键字修饰。对于没有超类型声明的类默认超类是Any,Any类只有三个函数~package kotlinpublic open class Any { publi...

2019-02-25 17:54:04 1375

原创 Kotlin中类、构造器、对象

1.Kotlin中类的定义类的构成:类的构成由构造函数和初始化代码块、属性(字段)、函数(方法)、内部类(嵌套类)、对象声明五部分组成//Kotlin中也是使用class关键字创建类的class Empty2.创建类的对象fun main(args: Array<String>) { val empty=Empty() //Kotlin中创建对象无n...

2019-02-22 18:45:27 442

原创 Kotlin 基本数据类型

1.Kotlin基本数据类型与Java数据类型的对比看起来Kotlin中的数据类型是Java中的包装类,注意,在Kotlin中没有装箱类型。Kotlin中类型声明赋值的写法:val 变量名:类型=值 val double:Double=3.00 val float:Float=3.0f val long:Long=3L val int:Int=3;...

2019-02-20 18:46:54 89

原创 Kotlin基础语法

Kotlin文件以.kt为后缀使用Kotlin写程序的入口也是main输入main,在按Tab键,main函数就会自动的出现fun main(args: Array<String>) { println("Hello World")}1.函数的定义//Kotlin函数的定义 关键字:fun,参数格式为:参数:类型/** * 函数的定义格式 * f...

2019-02-20 16:42:01 60

原创 Android 底部导航栏BottomNavigationView的使用

1.BottomNavigationView是support desigin包下的控件,用于底部导航~①使用之前在App的build.gradle中添加依赖com.android.support:design:27.1.1②接下来布局文件<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:and...

2019-02-18 17:09:35 820

原创 Git创建分支和查看分支命令

branch:分支  是指在开发主线中分离出来的,做进一步开发而不影响到原来的主线Git存储的不是一系列的更改集,而是一系列快照,当你执行一次commit时,git存储一个commit对象,她包含它包含一个指针指向你当前需要提交的内容的快照。master分支是在git init命令运行时默认创建一个分支,并命名为master1.查看分支git branch:列出本地已经存在的分支,...

2019-02-15 18:45:33 5701

转载 瀑布开发和敏捷开发的区别

瀑布开发模式:瀑布开发模式有以下显著的特点:1.严格把软件项目的开发分隔成各个开发阶段:需求分析,要件定义,基本设计,详细设计,编码,单体测试,结合测试,系统测试等。使用里程碑的方式,严格定义了各开发阶段的输入和输出。如果达不到要求的输出,下一阶段的工作就不展开。2.重视和强调过程文档,在开发的中后期才会看到软件原型,早起只能通过文档来了解系统的模样。在这种情况下,文档的重要性...

2019-02-11 11:35:48 696

原创 使用config.gradle统一管理项目的依赖

1.新建config.gradle(和项目的build.gradle同级)2.接着开始配置config.gradle中的内容//ext:添加额外的属性//分两个部分来配置:android:目录下的项目的版本、包名、编译版本、等信息//dependencies:目录下的android support库 我们自己引用的第三方库ext { android = [ ...

2019-02-01 11:13:17 349

原创 Android 事件分发机制

前言说到这个事件分发机制呢,我觉得一直以来都是我的弱项,可能它太抽象了,也与我在实际项目中没怎么使用到过,也没自定义过view有着很大的关系。虽然在面试过程中事件分发是必不可少要问的,但是我也是一知半解的仅能说一点点。所以决定接下来好好学习下这部分知识,试着去尝试自定义一些View。一、为什么要引入事件分发机制?①android上的View是树形结构的,View可能会重叠在一起,当我们...

2019-01-25 17:03:43 102

原创 Android Handler消息机制

一、什么是Handler?Handler简单来说是消息处理机制。具体点是用来结合线程的消息队列来发送、处理“Message对象”和“Runnable对象”的工具。每一个Handler实例之后会关联一个线程和该线程的消息队列。当你创建一个Handler的时候,从这时开始,它就会自动关联到所在的线程/消息队列,然后它就会陆续把Message/Runnalbe分发到消息队列,并在它们出队的时候处理调...

2019-01-24 16:17:12 133

原创 Android fragment回退栈

前言Activity切换时,是通过栈的形式,不断压栈出栈。对于fragment如果你不手动开启回退栈,它是直接销毁再重建,但如果将fragment任务添加到回退栈,情况就会不一样了,它就有了类似Activity的栈管理方式。回顾一、fragment回退栈方法简介addToBackStack(tag); 将Fragment添加到回退栈中popBackStack(); 清除回退栈...

2019-01-23 14:36:44 577

原创 Android Fragment详解

一、什么是Fragment?Fragment:是Android3.0开始新增的概念,意为碎片。Fragment是依赖于Activity的,不能独立存在的。二、为什么要有Fragment?Android运行在各种各样的设备中,有小屏幕的手机,还有大屏幕的平板,电视等。同样的界面在手机上显示可能很好看,在大屏幕的平板上就未必了,手机的界面放在平板上可能会有过分被拉长、控件间距过大等情况。针...

2019-01-21 18:41:11 3869

原创 Android属性动画

一、属性动画出现的原因 属性动画(Property Animation)是在Android3.0(API  11)后才提供的一种全新的动画模式。原因:由于补间和逐帧动画存在的一些缺点:①作用的对象局限:即这两种动画只能够作用在视图View上,即只可以对一个Button、TextView、甚至是LinearLayout、或者其它继承自View的组件进行动画操作,但无法对非View的对象进...

2019-01-17 18:28:44 66

原创 Android动画

前言动画在应用中是非常常见的界面效果,同时也是提高用户体验的一种好手段。可是动画种类繁多,使用复杂,每当需要自定义动画实现复杂的动画效果时,自己总是显得束手无策。接下来就好好屡屡动画到底是怎样的。一、动画的类型视图动画:逐帧动画和补间动画    作用对象是:视图属性动画:Android3.0之后的新特性(1)补间动画:同一个图形通过视图在界面上进行透明度、缩放、平移、旋转的变化...

2019-01-16 18:48:58 88

原创 Android五大数据存储

前言数据存储可谓是Android中灰常灰常重要的一部分了。任何一个应用离不开数据的存储,有时需内存存储,有时需本地存储,还有时需要两个进程间传输数据,等等。那接下来介绍的五大存储中将包括了所有的应用中可能遇到的存储情况。一、SharedPerference存储(1)什么是SharedPerference存储SP存储是一种轻量级的数据存储,通常做一些简单,单一数据的持久化缓存(2)S...

2019-01-15 17:30:07 5926 2

原创 Git 中commit、tree、blob三个对象之前的关系

一、在现有的项目中查看Commit、tree、blob进入到有git管理的项目所在的磁盘目录下:执行git log查看版本提交历史:每个commit都对应唯一的编号来看上边执行到最后的冒号:这时该怎么退出再次进入书写git命令呢,  直接输一个 q 就可以了查看就近commit具体的内容:看到了这个commit中有个tree接着看下这个tree的具体内容...

2019-01-14 11:28:17 2729

原创 Android四大组件之一ContentProvider

一、为什么要有ContentProvider?功能需求:一个应用需要访问另一个应用的数据库表数据 data/data/应用包名/database/xxx.db实际情况:一个应用的数据库文件是私有的,其他应用不能直接访问。二、什么是ContentProvider?ContentProvider:内容提供者,是四大组件之一ContentProvider类并不会直接与外部进程交互,而...

2019-01-13 15:25:41 101

原创 Android四大组件之一 BroadCastReceiver详解

一、什么是BroadCastReceiver?即广播,是一个全局的广播监听器,属于Android四大组件之一。理解广播和广播接收器广播事件处理属于系统级的事件处理。一个应用可以在发生特定事件时发送BroadCast,系统中任何应用只要注册了对应的Receiver就会接收到此BroadCast。广播事件机制是应用程序(进程间)之间通信的一种手段。二、BroadCastRece...

2019-01-11 16:22:38 126

提示
确定要删除当前文章?
取消 删除