L07-单行函数
函数的理解什么是函数函数在计算机语言的使用中贯穿始终,函数的作用是什么呢?它可以把我们经常使用的代码封装起来,需要的时候直接调用即可。这样既提高了代码效率,又提高了可维护性。在 SQL 中我们也可以使用函数对检索出来的数据进行函数操作。使用这些函数,可以极大地提高用户对数据库的管理效率。
从函数定义的角度出发,我们可以将函数分成内置函数和自定义函数。在 SQL 语言中,同样也包括了内置函数和自定义函数。内置函数是系统内置的通用函数,而自定义函数是我们根据自己的需要编写的。
不同DBMS函数的差异我们在使用 SQL 语言的时候,不是直接和这门语言打交道,而是通过它使用不同的数据库软件,即 DBMS。DBMS 之间的差异性很大,远大于同一个语言不同版本之间的差异。实际上,只有很少的函数是被 DBMS 同时支持的。比如,大多数 DBMS 使用( || )或者(+)来做拼接符,而在 MySQL 中的字符串拼接函数为concat()。大部分 DBMS 会有自己特定的函数,这就意味着采用 SQL 函数的代码可移植性是很差的 ,因此在使用函数的时候需要特别注意。
MySQL的内置函数及分类MyS ...
L13-Java反射机制
概述
Java Reflection
Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。
Java反射机制提供的功能
在运行时判断任意一个对象所属的类
在运行时构造任意一个类的对象
在运行时判断任意一个类所具有的成员变量和方法
在运行时调用任意一个对象的成员变量和方法
生成动态代理
反射相关的主要API
java.lang.Class:代表一个类
java.lang.reflect.Method:代表类的方法
java.lang.reflect.Field:代表类的成员变量
java.lang.reflect.Constructor:代表类的构造方法
Class类概述在Object类中定义了以下的方法,此方法将被所有子类继承:public final Class getClass(),返回值的类型是一个Class类,此类是Java反射的源头,实际上所谓反射从程序的运行结果来看也很好理解,即:可以通过对象反射求出类的名称。
对照镜子 ...
L05-排序与分页
数据排序排序规则
使用 ORDER BY 子句排序
ASC(ascend):升序
DESC(descend):降序
ORDER BY 子句在 SELECT 语句的结尾。
单列排序
不指定排序规则,就默认ASC,升序
12SELECT last_name, job_id, department_id, hire_date FROM employeesORDER BY hire_date ;
降序
12SELECT last_name, job_id, department_id, hire_date FROM employeesORDER BY hire_date DESC ;
多列排序12SELECT last_name, department_id, salary FROM employeesORDER BY department_id, salary DESC;
可以使用不在SELECT列表中的列排序。
在对多列进行排序的时候,首先排序的第一列必须有相同的列值,才会对第二列进行排序。如果第一列数据中所有值都是唯一的,将不再对第二列进行排序。
分页背景
背景1 ...
L12-Java常用类
字符串相关类String类概述String类:构造字符串对象
常量对象:字符串常量对象是用双引号括起的字符序列。 例如:”你好”、”12.97”、”boy”等。
字符串的字符使用Unicode字符编码,一个字符占两个字节
String类较常用构造方法:
String s1 = new String();
String s2 = new String(String original);
String s3 = new String(char[] a);
String s4 = new String(char[] a, int startIndex, int count);
字符串的特性
String是一个final类,代表不可变的字符序列
字符串是不可变的。一个字符串对象一旦被配置,其内容是不可变的。
字符串对象操作
public int length():返回字符串的长度
public char charAt(int index):返回指定index位置的字符,index从0开始
public boolean equals(Object anObject):比较两个字符 ...
L04-运算符
算术运算符算术运算符主要用于数学运算,其可以连接运算符前后的两个数值或表达式,对数值或表达式进行加(+)、减(-)、乘(*)、除(/)和取模(%)运算。
加法与减法
由运算结果可以得出如下结论:
一个整数类型的值对整数进行加法和减法操作,结果还是一个整数;
一个整数类型的值对浮点数进行加法和减法操作,结果是一个浮点数;
加法和减法的优先级相同,进行先加后减操作与进行先减后加操作的结果是一样的;
在Java中,+的左右两边如果有字符串,那么表示字符串的拼接。但是在MySQL中+只表示数值相加。如果遇到非数值类型,先尝试转成数值,如果转失败,就按0计算。(补充:MySQL 中字符串拼接要使用字符串函数CONCAT()实现)
乘法与除法
12#计算出员工的年基本工资SELECT employee_id,salary,salary * 12 annual_sal FROM employees;
由运算结果可以得出如下结论:
一个数乘以整数1和除以整数1后仍得原数;
一个数乘以浮点数1和除以浮点数1后变成浮点数,数值与原数相等;
一个数除以整数后,不管是否能除尽,结果都 ...
L03-基本的SELECT语句
SQL概述SQL背景知识
1946 年,世界上第一台电脑诞生,如今,借由这台电脑发展起来的互联网已经自成江湖。在这几十年里,无数的技术、产业在这片江湖里沉浮,有的方兴未艾,有的已经几幕兴衰。但在这片浩荡的波动里,有一门技术从未消失,甚至“老当益壮”,那就是 SQL。
45 年前,也就是 1974 年,IBM 研究员发布了一篇揭开数据库技术的论文《SEQUEL:一门结构化的英语查询语言》,直到今天这门结构化的查询语言并没有太大的变化,相比于其他语言, SQL 的半衰期可以说是非常长了。
不论是前端工程师,还是后端算法工程师,都一定会和数据打交道,都需要了解如何又快又准确地提取自己想要的数据。更别提数据分析师了,他们的工作就是和数据打交道,整理不同的报告,以便指导业务决策。
SQL(Structured Query Language,结构化查询语言)是使用关系模型的数据库应用语言,与数据直接打交道,由 IBM 上世纪70年代开发出来。后由美国国家标准局(ANSI)开始着手制定SQL标准,先后有,SQL-89,SQL-92,SQL-99等标准。
SQL 有两个重要的标准,分别是 S ...
L11-多线程
程序 - 进程 - 线程基本概念
程序(program):是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。
进程(process):是程序的一次执行过程,或是正在运行的一个程序。动态过程:有它自身的产生、存在和消亡的过程。
如:运行中的QQ,运行中的MP3播放器
程序是静态的,进程是动态的
线程(thread):进程可进一步细化为线程,是一个程序内部的一条执行路径。
若一个程序可同一时间执行多个线程,就是支持多线程的
进程与多线程
每个Java程序都有一个隐含的主线程: main 方法
何时需要多线程
程序需要同时执行两个或多个任务。
程序需要实现一些需要等待的任务时,如用户输入、文件读写操作、网络操作、搜索等。
需要一些后台运行的程序时。
使用多线程的优点 背景:只使用单个线程完成多个任务(调用多个方法),肯定比用多个线程来完成用的时间更短,为何仍需多线程呢?
多线程程序的优点:
提高应用程序的响应。对图形化界面更有意义,可增强用户体验。
提高计算机系统CPU的利用率。
改善程序结构。将既长又复杂的进 ...
L02-MySQL环境搭建
MySQL的下载、安装、配置MySQL的4大版本
MySQL Community Server 社区版本,开源免费,自由下载,但不提供官方技术支持,适用于大多数普通用户。
MySQL Enterprise Edition 企业版本,需付费,不能在线下载,可以试用30天。提供了更多的功能和更完备的技术支持,更适合于对数据库的功能和可靠性要求较高的企业客户。
MySQL Cluster 集群版,开源免费。用于架设集群服务器,可将几个MySQL Server封装成一个 Server。需要在社区版或企业版的基础上使用。
MySQL Cluster CGE 高级集群版,需付费。
此外,官方还提供了 MySQL Workbench (GUITOOL)一款专为MySQL设计的图形界面管理工具。MySQLWorkbench又分为两个版本,分别是社区版 (MySQL Workbench OSS)、商用版(MySQL WorkbenchSE)。
安装配置过程https://www.bilibili.com/video/BV16L4y1b75R?p=8&vd_source=eba5 ...
L01-数据库概述
为什么要使用数据库
持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,**数据持久化意味着将内存中的数据保存到硬盘上加以“固化” **,而持久化的实现过程大多通过各种关系数据库来完成。
持久化的主要作用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件、XML数据文件中。
数据库与数据库管理系统数据库的相关概念
**DB: 数据库(Database)**:即存储数据的“仓库”,其本质是一个文件系统。它保存了一系列有组织的数据。
**DBMS: 数据库管理系统(Database Management System)**:是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制。用户通过数据库管理系统访问数据库中表内的数据。
**SQL: 结构化查询语言(Structured Query Language)**:专门用来与数据库通信的语言。
数据库与数据库管理系统的关系 数据库管理系统(DBMS)可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。 ...
L10-IO
File类概述
java.io.File类:文件和目录路径名的抽象表示形式,与平台无关
File 能新建、删除、重命名文件和目录,但 File 不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流
File对象可以作为参数传递给流的构造函数
常见的构造方法
public File(String pathname):以pathname为路径创建File对象,可以是绝对路径或者相对路径,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储
public File(String parent,String child):以parent为父路径,child为子路径创建File对象
File的静态属性String separator存储了当前系统的路径分隔符。在UNIX中,此字段为‘/’,在Windows中,为‘\’
常见的方法
访问文件名
getName()
getPath()
getAbsoluteFile()
getAbsolutePath()
getParent()
renameTo(File newName)
file ...