03-数据库

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语句。 触发器,其他存储过程以及JavaPythonPHP等应用程序可以调用存储过程。

MySQL存储过程的优点

  • 通常存储过程有助于提高应用程序的性能。当创建,存储过程被编译之后,就存储在数据库中。 但是,MySQL实现的存储过程略有不同。 MySQL存储过程按需编译。 在编译存储过程之后,MySQL将其放入缓存中。 MySQL为每个连接维护自己的存储过程高速缓存。 如果应用程序在单个连接中多次使用存储过程,则使用编译版本,否则存储过程的工作方式类似于查询。
  • 存储过程有助于减少应用程序和数据库服务器之间的流量,因为应用程序不必发送多个冗长的SQL语句,而只能发送存储过程的名称和参数。
  • 存储的程序对任何应用程序都是可重用的和透明的。 存储过程将数据库接口暴露给所有应用程序,以便开发人员不必开发存储过程中已支持的功能。
  • 存储的程序是安全的。 数据库管理员可以向访问数据库中存储过程的应用程序授予适当的权限,而不向基础数据库表提供任何权限。

除了这些优点之外,存储过程有其自身的缺点,在数据库中使用它们之前,您应该注意这些缺点。

MySQL存储过程的缺点

  • 如果使用大量存储过程,那么使用这些存储过程的每个连接的内存使用量将会大大增加。 此外,如果您在存储过程中过度使用大量逻辑操作,则CPU使用率也会增加,因为数据库服务器的设计不当于逻辑运算。
  • 存储过程的构造使得开发具有复杂业务逻辑的存储过程变得更加困难。
  • 很难调试存储过程。只有少数数据库管理系统允许您调试存储过程。不幸的是,MySQL不提供调试存储过程的功能。
  • 开发和维护存储过程并不容易。开发和维护存储过程通常需要一个不是所有应用程序开发人员拥有的专业技能。这可能会导致应用程序开发和维护阶段的问题。

   内存,CPU开销大,复杂逻辑困难,不便调试,开发和维护不易

Java数据库操作

静态数据库操作:statement(特点:SQL语句值确定)

动态数据库操作:preparedSatement(特点:SQL语句缺值,用?代替)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值