基础复习05

xiaoxiao2021-02-28  101

1.什么是MySQL,是用来干什么的 是一种关系型数据库管理系统,用来存放实体和实体之间的关系的. 2.是怎么来储存数据的 一般一个应用对应一个数据库,一个数据库中有很多表,一个类可以对应一个表,比如商品什么的. 一个表里面会有很多数据,一个商品实例对应一条数据. 总结就是: 数据库管理系统 -- 数据库 -- 表 -- 数据 3.什么是sql 结构化编程语言,是一种特殊的编程语言. 4.对数据库的crud 创建数据库: create database 数据库名称 查看数据库: show databases   删除数据库: drop database 数据库名称 切换数据库: use 数据库名称 显示正在使用的数据库名称: select database(); java的数据类型对应到sql中的数据类型 byte/short/int/long    tinyint/smallint/int/bigint float   float double   double boolean   bit char/String   char/varchar data                 datetime/timestemp char/varchar 的区别: char(8)"hello" -- "hello   "    varchar(8) "hello" -- "hello" 5.对表的crud 单表的约束:用来规范数据的完整性 常用的单表约束: primary key  主键约束 unique       唯一性约束 not null     非空约束 auto-increment 自增长 注意: 一个表中的主键约束只有一个,自增长也只有一个 查看表: show tables  删除表: drop table 表名 添加表: 添加列 add 删除列 drop 修改列的长度 modify  更改列名 change 更改表: alter table 表名  更改表名: rename to 修改表的字符集 character set 6.对表的记录的crud 添加表记录:  insert into  表名字 values(记录一,记录二,记录三) 删除表记录: delete from 表名 [where条件]  删除是删除一条记录,如果不带条件就是删除整个表记录 修改表记录:  update 表面 set 列名1=值1,列名2=值2 ...[where条件] 注意: 如果不加条件就是修改这个表的所有记录 ****************    查看表记录: ************** 查看所有记录: select * from 表名 查看某列记录: select 列名1,列名2 from 表名  条件查询:     select * from 表名 where 条件 排序查询:     select * from 表名 where 条件 order by 列名 asc(升序)  desc(降序) 聚合函数查询 求和查询: select sum() from 表名 统计查询: select count() from 表名 最大值查询: select max() from 表名 最小值查询: select min() from 表名 求名均值:   select avg() from 表名 分组查询:     select * from 表名 group by 列名    注意where语句不能使用聚合查询,使用聚合查询可以用having语句   1多变设计之外键约束 用来表示数据之间的关系,用来保持数据的完整性和完整性.如果一个表的字段和其他表的字段的关系,就需要给这个字段添加外键指向 其他字段有关系的主键 2.多表设计的关系 一对多的关系: 建表原则,在多的一方创建外键指向一的一方的主键 多对多的关系: 建表原则,建立第三方表表示多对多的关系,至少要有两个字段作为外键分别指向双方的主键. 一对一的关系: 先假设一对一的关系是一对多的关系,在多的一方创建外键指向一的一方的主键,并把这个外键设置成唯一 3.多表查询(一定掌握)**** 分为连接查询和子查询: 4.多表查询之连接查询(一定掌握)**** 交叉连接:查询到的是两个表的积卡尔迪 内连接:查询到的是两个表公共的数据 外连接之左外连接:以左边表为基准,查询到两个表公共的数据和左边表的所有数据 外连接之右外连接:以右边表为基准,查询到两个表公共的数据和右边表的所有数据 5.多表查询之子查询 一个查询语句里面嵌套一个查询语句 6.事物: 什么是事物: 指的是逻辑上的一组操作,要么全部成功,要么全部失败 怎么使用事物:开启事物,start transaction 提交事物,commit   事物的特征: 原子性, 组成事物的最小单元是不可分割的,要么同时成功要么同时失败 一致性, 执行事物前后,数据的完整性是一致的 隔离性, 在数据库中,各个事物是独立的,不受其他事物的影响 持久性, 事物一旦结束, 脏读: 一个事物读到了另一个事物未提交的数据 不可重复读: 一个事物读到了另一个事物已提交的数据的update数据 幻读,虚读: 一个事物读到了另一个事物已提交的数据的insert数据 事物的隔离级别: read uncommitted  脏读,不可重复读,幻读/虚读都有可能发生 read committed  避免了脏读,但是不可重复读和幻读有可能会发生 repeatable-read  避免了脏读和不可重复读,但是幻读有可能会发生 serializable  脏读,不可重复读,幻读/虚读都避免了 1.什么是JDBC,有什么作用 java database connection java数据库连接.是java语言编写的一组用来实现连接数据库的类和接口.作用是使用java来连接数据库和接口 什么是驱动:两个设备之间的通信桥梁. 2.入门案例的编写   (先把工作空间的编码改为utf8,再导入驱动) 步骤: 1.注册驱动 2.获取连接 3.执行sql 4.释放资源 3.driverManager的作用 是用来注册驱动和获取连接的 4.connection的作用 是用来获取执行语句的管理事物的 5.statement的作用 是用来执行sql语句和批处理的 6.ResultSet 查询操作会得到一个结果集.我们可以遍历这个结果集 7.jdbcutils工具类的提取: 为什么要提取工具类: 使用jdbc对数据库进行操作时发现,有些代码的内容是重复的.在java中如果有重复的代码出现,我们可以将这些相同的代码提取出来 写一个方法.对于jdbc,其中的注册驱动,获取连接和释放资源的内容是相同的,就可以可以把他们提取出来,写一个工具类. 8.什么是注入漏洞: 当网站有登录的操作时,用户之所以能够登录成功,是因为在数据库中能够找到对应的一条用户名和密码信息.假设用户只通过输入用户名就可以登录成功,就称为注入漏洞. 1.JDBC的事物管理 步骤: 同过connection建立连接  关闭自动提交, setautocommit(),传入false  提交事物, commit()  回滚事物, rollback() 2.连接诶池 什么是连接池: 就是一个容器,用来储存Connection连接对象的. 为什么要使用连接池: 创建和销毁连接是需要时间的,我们在初始化服务器的时候可以先创建一些连接,把这些连接存放在内存中. 使用的时候从内存中获取,使用完毕归还到连接池中.从内存中获取和归还的效率要远远高于创建和销毁的效率. 3.druid开源连接池 是阿里巴巴研发的开源项目 使用步骤: 1.导入jar包 2.创建DruidDataSourse对象 3.设置连接参数 4.C3P0连接池 使用步骤1: 创建连接池对象  ComboPooledDataSource dataSource = new ComboPooledDataSource(); 手动设置参数  获取连接 使用步骤2:  配置文件 创建连接池对象  ComboPooledDataSource dataSource = new ComboPooledDataSource(); 获取连接 5.JDBC工具类的改进 把创建连接池的代码放到工具类中. 创建连接很好资源,创建连接池更耗资源,一个应用只需要创建一个连接池就可以了. 6.DButils 什么是dbutils  是工具类,封装了增删改查的操作,简化了编程 DBUtils的API 1.两个核心对象 DBUtils对象和QueryRunner对象
转载请注明原文地址: https://www.6miu.com/read-60657.html

最新回复(0)