1、EL表达式简单入门
含义:由于简化、代替jsp表达式脚本(<%=%>)[一般jst结合el表达式一块使用]
语法:
1>${xx} //等价于pageContext.findAttribute(xx)
2>${xx[yy]} //查找xx中yy属性值
3>${简单运算操作} //${1-1} ${1+1}...
特点:如果el表达式从域中找不到返回""的空白串
2、jstl的简单入门
含义:替代和简化JSP的脚本代码[一般jst结合el表达式一块使用]
步骤:
1>导入Standard.jar\Jstl.jar
2>在jsp中的添加taglib指令
<%@ taglib uri="http://java.sun.com/jsp/jstl/core"prefix="c"%>
3>开始使用jstl标签
名称 含义 属性介绍
语法:
3、数据库简介
DB:按照数据结构来组织、存储和管理数据的仓库
DBMS:【以后我们说数据库就是DBMS】
是专门用于管理数据库的计算机系统软件。数据库管理系统能够为数据库提供数据的定义、建立、维护、查询和统计等操作功能,并完成对数据完整性、安全性进行控制的功能。
DBA:数据库管理人员
DBS:
数据库系统是一个通称,包括数据库、数据库管理系统、数据库管理人员等的统称,是最大的范畴。
数据库技术发展历程:
1>层次数据库和网状数据库技术阶段;
2>关系数据库技术阶段
|--MySQL
|--Oracle
|--DB2
|--SQL Server
|--SyBase
|--sqlite等
3>非关系数据库技术阶段;
|--面向对象的数据库OODBMS
|--对象关系型数据库ORDBMS
|--结构看数据库(NOSQL)
|--redis,MongoDB...
常见的关系数据库
数据库系统 所属公司
-----------------------------------------------------------------
Oracle Oracle(甲骨文)
MySQL 被Oracle收购
DB2 IBM
SQL Server MS
Sybase Sybase
Oracle:运行稳定,可移植性高,功能齐全,性能超群!适用于大型企业领域。
MySQL:开源,体积小,速度快。适用于中小型企业领域。
4、MySQL简单入门
注意编码
SQL:结构化查询语言(Structured Query Language)
操作数据库的一种语言
当某种SQL在不同的数据库中都能够执行成功,叫通过的SQL
当某种SQL在只能在特定数据库中执行成功,叫特定的SQL
总结:sql是用来操作数据库的。
书写规则:
大小写不敏感,可以换行
关键字不能换行
关键字建议大写,其他小写方便查看
添加空格、缩进美化格式
启动、关闭、连接mysql、退出
关闭
net stopmysql
启动
net sartmysql //如果已经启动就不用再启动,默认mysql电脑启动也启动了
连接
打开如下,点击进入,输入密码即可
在windows dos界面输入:mysql -u 用户名-p 然后回车 在输入密码
退出
输入exit回车即可
数据库操作流程
数据库存储引擎
含义
各种不同的存储技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供不同的功能和能力,通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。[最常用的InnoDB]
查看
show engines;
修改
mysql按照目录下的my.ini文件中的第84行
比较
数据库简单操作
连接 mysql -u root -p 回车 密码
退出exit
查看当前数据库实例列表 show databases;
使用指定数据库实例 use dataasename;
查看当前数据库实例表列表 show tables;
创建数据库实例 create database databasename;
切换使用数据库 use databasename;
创建一张表.
查看表结构 desc 表名;
删除一张表 drop table 表名;
删除数据库实例 drop database databasename;
5、表简介
含义:
关系型数据库最重要的关键是表,跟html的table一样,是用来存储数据的。类似如下图:
表和对象的关系:
表名相当于是类名
一行记录代表一个javaBean对象
列代表javaBean的属性
ORM(Object Relational Mapping):对象关系映射,将表转换成javaBean的技术。比如:hibernate\mybatis\jpa等。
6、MYSQL数据类型
---------------------------------------------------整数-------------------------------------------------------------
类型名 字节数
tinyint 1
smallint 2
mediumint 3
Int/integer 4
bigint 8
----------------------------------------------------浮点数---------------------------------------------------------------
类型名 字节数 描述
float、float(m,d) 4 m:总位数d:小数有多少位
double、double(m,d) 8
decima(m,d)
----------------------------------------------------字符------------------------------------------------------------------
类型名 描述
char 固定长度
varchar 变化长度
-----------------------------------------------------时间-------------------------------------------------------------------
类型名 描述 例子
year 年 0000
date 0000-00-00 2019-3-1
time 00:00:00 12:50:30
datetime 0000-00-00 00:00:00 2019-3-1 12:50:30
timestamp 时间戳 4561214561223
-----------------------------------------------------二进制---------------------------------------------------------------------------
类型名 描述
bit(m) m位二进制
7、建表语句
语法:
create table 表名(
字段1 类型 [约束],
字段2 类型 [约束],
……
)
约束
默认值 default值
非空 not null
唯一 unique
主键 primary key(不要用业务数据,比如不要用用户手机号作为主键)
联合主键:将多个列设为主键
主键自增 primary key auto_increment
外键 constraint外键名 foreign key (从表字段) references 主表(字段)
外键可以为空
不能删除主表中被引用的记录
不能直接删除主表 //eg:employee(从) dept(主)
8、CURD简单入门
insert:
insert into表名 values(全部字段对应的值);
insert into表名(字段...) values(值...)
insert into表名(字段...) values(值...),(值...)....
insert into表名(字段...) select (字段...) from 表名
select:
select(字段...) from 表名
select *from表名
update:
update表名 set 字段1=新值1 。。。。[where 条件]
delete:
delete from表名[where 条件] 删除满足条件的记录
truncate:
truncate table_name 删除表中所有记录,与delete 删除操作没有添加删除条件类似,但是性能比delete好,因为它使用的系统资源和事务日志资源更少。
drop:
drop table table_name 将表连同表中数据一起删除。
别名:
as 或者不写 eg:select name userName from employee;
特殊字符、空格等,需要添加双引eg:select name 'user Name' from employee;
表用了别名,就只能使用别名
去重(distinct):
select distinct列1,列2,... from 表
select distinct * from表
算数运算符
数字可以进行+ - * / % eg:selectsalary-100 from employee;
时间可以+ -
过滤语句:
比较运算符 >、<、>=、<=、!=等价于<>
空is null
非空is not null
逻辑运算符
AND 并且
OR 或者
NOT 对结果的真假进行取反
范围运算符
between开始 and结束(包括开始和结束)
不在范围运算符
not between开始 and结束(包括开始和结束)
in查询\非in (不太建议)
select *from employee wheredeptId in(1);
select*from employee where deptId not in(1);
模糊查询
%代表:0个或多个字符
_代表:一个字符
select * from employee where name like '%老%'; //查名字有'老'的员工
select * from employee where name like '_老%'; //查第二个字是'老'的人
分页查询:
语法:select * from 表 limit startIndex,pageSize
排序:
语法:select * from 表 order by 列1 [desc|asc],列2 [desc|asc],...
聚集函数:
平均 avg(列)
统计记录数 count(*) count(列) //不会计算null
最大 max(列)
最小 min(列)
总和 sum(列)
分组:
group by : select * from table_name group by name 按照名字进行分组
以下字段执行顺序:
from表
where
group by
having
order by
多表查询:
内连接:join table_name on 连接条件
案例:select * from a_table a join b_table b on a.num = b.num
如下图,表示公共阴影部分的数据即为内连接的结果。
外连接:左外连接和右外连接
左外连接:left join table_name on 连接条件
案例:select * from a_table a left join b_table b on a.num = b.num
如下图,表示左边表的记录即为左外连接的结果。
左外连接:right join table_name on 连接条件
案例:select * from a_table a right join b_table b on a.num = b.num
如下图,表示右边表的记录即为右外连接的结果。