标题: javaee就业班七期 [打印本页] 作者: zhoufan0628 时间: 2017-12-22 21:41 标题: javaee就业班七期 周帆
今天复习了数据库的一些常规操作,练习了下sql语句的使用 并且学习了连接池与工具类的使用,老样子 笔记贴上 望大神指教
回顾:
sql
sql分类:
DDL:
对象:数据库和表
关键词:create alter drop truncate
创建数据库:create database day06;
删除数据库: drop database day06;
创建表:create table user(
id int primark key auto_increment,
username varchar(20)
);
修改表:
alter table user rename to user10;
alter table user add password varchar(20);
alter table user change password pwd varchar(20);
alter table user modify pwd int;
alter table user drop pwd;
删除表:
drop table user;
常用的命令:
use day06;
show tables;
desc user;
show create table user;
DML:
对象:记录(行)
关键词:insert update delete
插入:
insert into user values(字段值1,字段值2,...);-- 所有的字段
insert into user(字段1,字段2....) values(字段值1,字段值2);-- 插入指定的字段
更新:
update user set 字段=字段值1,字段2=字段值2 where 条件;
删除:
delete from user where 条件;
扩展:
以后开发中很少使用delete,数据无价,删除有物理和逻辑(常用),
逻辑删除一般会在表中添加一个字段(isdel:若值为1,代表删除了;若为0代表没有删除),
此时的删除操作变成了更新操作.
DQL:
select ... from 表名 where 条件 group by 分组字段 having 条件 order by 排序字段;
执行顺序:
1.确定数据来自那张表 from
2.是否需要筛选 where
3.是否需要分组 group by
4.分组后是否需要筛选 having
5.是否需要排序 order by
6.确定显示那些数据. select
DCL:用户 权限 事务
////////////////////////
auto_increment 自增
truncate 干掉表,重新创建 和delete的区别
数据类型:
int 和 varchar(size):可变长度
date time datetime timestamp
////////////////////////////////////
多表的操作:
表与表之间的关系:
一对多:
在多表的一方添加一个外键,外键的名称一般是主表名称_id,外键的类型和主表的主键的类型保持一致
为了保证数据的有效性和完整性,
需要在多表上添加外键约束
格式:
alter table 多表 add [constraint [外键的名称]] foreign key(外键名称) references 主表名称(主键);
多对多:
添加一张中间表,存放两张表的主键,就可以将多对多拆分成两个一对多了
为了保证数据的有效性和完整性,
需要在中间表添加两个外键约束
一对一:(了解)
1.两个实体合二为一(字段比较少)
2.将一张表的主键添加外键约束即可
/////////////////////////////
多表的查询:
内连接:
显式:
select a.*,b.* from a join b on 条件;
隐式:
select a.*,b.* from a,b where 条件;
外连接:
左外连接:
select a.*,b.* from a left join b on 条件;
以a为主,展示所有数据,根据条件关联查询b表,满足条件则展示,不满足的话以null显示
子查询::
一个查询依赖于另一个查询.
//////////////////////////////////////
案例1-通过jdbc完成单表的curd操作:
需求:
对分类表完成操作.
技术分析:
jdbc
///////////////////////
jdbc:
java操作数据库.jdbc是oracle公司指定的一套规范(一套接口)
驱动:jdbc的实现类.由数据库厂商提供.
我们就可以通过一套规范操作不同的数据库了(多态)
jdbc作用:
连接数据库
发送sql语句
处理结果
insert into category values('c001','电器');
insert into category values('c002','服饰');
insert into category values('c003','化妆品');
insert into category values('c004','书籍');