jdbc的数据库操作
条件:
驱动(数据库操作的桥梁)
链接(Connection接口)
数据库实例:
Excel(二维表)
Access 基础数据库
Sqlserver 标准化数据库
Oracle 大数据数据库
MySQL 中小型数据库
数据库端口
3306 (MySQL)1521(Oracle) 1433(SQLserver)
驱动名称
SQLserver: com.mircrosoft.sqlserver.jdbc.SQLServerDriver
MySQL:com.mysql.jdbc.Driver
Oracle:oracle.jdbc.driver.OracleDriver
操作步骤
驱动测试
class.forName(驱动名称driver);
Connection链接:URL username password
数据库分析
安装数据库
jdk自带数据库分析
服务的开启和关闭
Net start/stop 服务名称(mysql、mssqlserver、oracleserviceorcl)
数据库的登录
mysql -u root -p
sqlcmd -U sa
sqlplus
数据库使用
mysql/sqlserver
create database
use database_name
Oracle orcl (多用户的数据库管理)
数据表的使用
数据分析表
字段 | 类型 | 非空 | 主键 | 唯一 | 检查 | 外键 | 默认 |
约束
非空:必须输入内容
主键:非空&&唯一
alter table test add primary key(test_no);
alter table test drop primary key; 直接就可以删除该表中的主键
唯一:值的确定性
检查:特殊条件的约束(mysql没有检查,通过触发器设计)
外键:多表间数据约束
ALTER TABLE student ADD FOREIGN KEY (s_cid) REFERENCES class(cid);
默认:未输入值的默认显示
自增:(mysql)
注意:mysql数据库添加外键:
1、外表中的外键的字段类型必须和主表中的主键的字段类型一致.
2、外表中的外键,在关联的时候,必须关联主表中的主键,才可以完成关联。
3、在删除的的时候,必须先删除外表中的数据,才可以删除主表,否则不能删除主表中的数据和字段。
代码实现
create table table_name(column_name column_kind,....)
约束:alter table add constraint name
数据操作
增 :INSERT INTO table_name ( field1, field2,...fieldN )VALUES( value1, value2,...val
删 delete
删除数据库:DROP DATABASE 数据库名;
删除数据表:DROP TABLE table_name ;
查 :SELECT column_name,column_name FROM table_name
改 UPDATE table_name SET field1='value' WHERE `id`>10
退出:exit
注意:运行SQL脚本命名source +SQL文件的地址和命名
数据表数据操作分析
视图 view
触发器 (trigger):监视某种情况,并触发某种操作,它是提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,例如当对一个表进行操作( insert,delete, update)时就会激活它执行。
创建触发器语法:create trigger 触发器名 before|after 事件 on 表名 for each row 触发器语句;
游标 ( cursor ):是一种能从包括多条数据记录的结果集中每次提取一条记录的机制
【游标用法】
一、声明一个游标: declare 游标名称 CURSOR for table;(这里的table可以是你查询出来的任意集合)
二、打开定义的游标:open 游标名称;
三、获得下一行数据:FETCH 游标名称 into testrangeid,versionid;
四、需要执行的语句(增删改查):这里视具体情况而定
五、释放游标:CLOSE 游标名称;
注意:mysql存储过程每一句后面必须用;结尾,使用的临时字段需要在定义游标之前进行声明。
存储过程 :存储过程是存储在数据库目录中的一段声明性SQL语句。 触发器,其他存储过程以及Java,Python,PHP等应用程序可以调用存储过程。
MySQL存储过程的优点
- 通常存储过程有助于提高应用程序的性能。当创建,存储过程被编译之后,就存储在数据库中。 但是,MySQL实现的存储过程略有不同。 MySQL存储过程按需编译。 在编译存储过程之后,MySQL将其放入缓存中。 MySQL为每个连接维护自己的存储过程高速缓存。 如果应用程序在单个连接中多次使用存储过程,则使用编译版本,否则存储过程的工作方式类似于查询。
- 存储过程有助于减少应用程序和数据库服务器之间的流量,因为应用程序不必发送多个冗长的SQL语句,而只能发送存储过程的名称和参数。
- 存储的程序对任何应用程序都是可重用的和透明的。 存储过程将数据库接口暴露给所有应用程序,以便开发人员不必开发存储过程中已支持的功能。
- 存储的程序是安全的。 数据库管理员可以向访问数据库中存储过程的应用程序授予适当的权限,而不向基础数据库表提供任何权限。
除了这些优点之外,存储过程有其自身的缺点,在数据库中使用它们之前,您应该注意这些缺点。
MySQL存储过程的缺点
- 如果使用大量存储过程,那么使用这些存储过程的每个连接的内存使用量将会大大增加。 此外,如果您在存储过程中过度使用大量逻辑操作,则CPU使用率也会增加,因为数据库服务器的设计不当于逻辑运算。
- 存储过程的构造使得开发具有复杂业务逻辑的存储过程变得更加困难。
- 很难调试存储过程。只有少数数据库管理系统允许您调试存储过程。不幸的是,MySQL不提供调试存储过程的功能。
- 开发和维护存储过程并不容易。开发和维护存储过程通常需要一个不是所有应用程序开发人员拥有的专业技能。这可能会导致应用程序开发和维护阶段的问题。
内存,CPU开销大,复杂逻辑困难,不便调试,开发和维护不易
Java数据库操作
静态数据库操作:statement(特点:SQL语句值确定)
动态数据库操作:preparedSatement(特点:SQL语句缺值,用?代替)