上午9点~12点
日常vj刷题
二分框架:
int binarySearch(int[] nums, int target) {
int left = 0, right = ...;
while(...) {
int mid = (right + left) / 2;
if (nums[mid] == target) {
...
} else if (nums[mid] < target) {
left = ...
} else if (nums[mid] > target) {
right = ...
}
}
return ...;
}
下午3点~5点40
学习Java,Java疯狂讲义581~607
1,数据库:数据库仅仅是存放用户数据的地方,通常所说的数据库既包括存储用户数据的部分也包括管理数据库的管理系统。
2,按时间发展顺序出现了以下几种类型的数据库系统:
(1),网状型数据库
(2),层次型数据库
(3),关系数据库
(4),面向对象数据库
3,数据库常用对象:表、字段、视图表、索引、触发器、存储过程、触发器、规则、缺省值等。
(1),表(Table):包含数据库中所有数据的对象,行和列组成,用于组织和存储数据。
(2),字段(Field):表中的列一个表可以有多个列,自己的属性:数据类型(决定了该字段存储哪种类型的数据),大小(长度)。
(3),视图表(View):也叫虚拟表,一张或多张表中导出的表,用户查看数据的一种方式,结构和数据是建立在对表的查询基础之上的。
(4),索引(Index):为了给用户提供一种快速访问数据的途径,索引是依赖于表而建立,检索数据时,不用对整个表进行扫描,可以快速找到所需的数据。
(5),存储过程(Stored Procedure):是一组为了完成特定功能的SQL语句的集合,(可以有查询、插入、修改、删除) ,编译后,存储在数据库中,以名称进行调用,当调用执行时,这些操作就会被执行。
(6),触发器(Trigger):在数据库中,属于用户定义的SQL事务命令集合,针对于表来说,当对表执行增删改操作时,命令就会自动触发而去执行。
(7),规则(Rule):对数据表的列,进行的一种限制。可以更好的规范表中的列。
(8),缺省值(Default):对表中的列可以指定一个默认值,当进行插入时,如果没有为这个列插入值,那么就会自动以预先设置默认值进行自动补充。
4,MySQL支持的列类型:
列类型 | 说明 |
---|---|
tinyint/smallint/mediumint/int/bigint | 1字节/2字节/3字节/4字节/8字节整数,又可分有符号和无符号两种。 |
float/double | 单精度、双精度浮点类型 |
decimal(dec) | 精确小数类型,相对于float和double不会产生精度丢失问题 |
date | 日期类型,不能保存时间。时间部分会丢失 |
time | 时间类型,不能保存日期,日期部分会丢失 |
datetime | 日期、时间类型 |
timestamp | 时间戳类型 |
year | 年类型 |
char | 定长字符串类型 |
varchar | 可变长字符串类型 |
binary | 定长二进制字符串,以二进制保存字符串 |
varbinary | 可变长的二进制字符串,以二进制保存字符串 |
tinyblob/blob/mediumblob/longblob | 1字节/2字节/3字节/4字节的二进制大对象,可用于存储图片、音乐二进制数据,分别存储255B/64KB/16MB/4GB的文本大小 |
tinytext/text/mediumtext/longtext | 1字节/2字节/3字节/4字节的文本对象,可用于存储超长长度的字符串,分别可储存255B/64KB/16MB/4GB大小的文本 |
set(‘value1’,‘value1’,…) | 集合;类型,该列的值可以是set后括号里多个值的其中几个 |
5,数据库约束:
(1),NOT NULL:非空约束,不可以出现重复值,但可以出现多个null值,如果需要为多列组合建立唯一约束,或者想自行指定约束名,则需要使用表级约束语法
(2),UNIQUE:唯一约束值,指定某列不能为空
(3),PRTMARY KEY:主键,指定该列的值可以唯一的表示该条记录,相当于非空约束和唯一约束,如果对多列组合建立主键约束,则约束里包含的每一列都不能为空,但只要求这些组合不能重复
(4),FOREIGN KEY:外键,指定该行记录从属于主表中的一条记录,主要用于保证参照完整性,构建与一个表的两个字段或者两个表的两个字段之间的参照关系
(5),CHECK:检查,指定一个布尔表达式,用于指定该对应列的值必须满足表达式
6,索引,从属于数据表,创建有两种方式:
(1),自动:当在表上定义主键约束、唯一约束、和外键约束时,系统会为该数据列创建对应的索引
(2),手动:用户可以通过create index…语句来创建
删除:
(1),自动:数据被删除时,索引也自动被删除
(2),手动:用户可以通过drop index…语句来删除指定数据表上的指定索引
7,视图:一个或多个数据表中的逻辑显示,使用试图有几个好处:
(1),可以限制对数据的访问
(2),可以时复杂的查询变得简单
(3),提供了数据的独立性
(4),提供了对相同数据的不同显示
8,DML语句语法
(1),insert into用于向指定数据表中插入记录,一次可插入多条
insert into table_name [(colum [,column...])]
values(value [,value...]);
(2),update语句修改数据表的记录
update table_name
set column1 = value1[,column2 = value2]...
[WHERE condition];
使用delete from 可以删除指定满足条件的多行。
(3),单表查询:
select column1,column2...
from 数据源
[where condition]
下面的语句将会选择出teacher_table表中所有的行、所有列的数据:
select *
from teacher table;
当使用select语句查询时,还可以在select语句中使用算符表达式,规则:
(1),对数值类型数据列、变量、常量可以使用算符运算符创建表达式
(2),对日期类型数据列、变量、常量可以使用部分算符运算符创建表达式
(3),可以在两列之间进行运算