• 数据库系统概论-第五章


    动态SQL 编程语言使用函数连接数据库服务器,在运行时以字符串的形式构建交互查询 如JDBC和ODBC
    嵌入式SQL 嵌入式SQL必须在编译时全部确定,提交给预处理器,预处理器提交SQL到数据库系统进行预编译和优化

    JDBC java database connectivity

    预编译语句可以解决SQL注入的问题

    public static void connectExample(String userId,String password){

        try {
            Class.forName("Oracle.jdbc.driver.OracleDriver");
    
            Connection conn = DriverManager.getConnection("", userId, password);
    
            Statement stmt = conn.createStatement();
            
            stmt.executeUpdate("update student set name ='Harry' where id =1");
    
            ResultSet rset = stmt.executeQuery("select id,name from student where id =1");
            
            while(rset.next()){
                System.out.println("id: "+rset.getString("id")+",name: "+rset.getString("name"));
            }
            
        }catch(Exception e){
            e.printStackTrace();
        }
    }
    

    函数和过程

    存储过程可以将业务逻辑持久化,提供给其他的业务进行调用。

    函数
    https://www.cnblogs.com/mafeng/p/7121473.html

    CREATE FUNCTION func_name ( [func_parameter] ) //括号是必须的,参数是可选的
    RETURNS type
    [ characteristic ...] routine_body

    CREATE FUNCTION 用来创建函数的关键字;
    func_name 表示函数的名称;
    func_parameters为函数的参数列表,参数列表的形式为:[IN|OUT|INOUT] param_name type

    IN:表示输入参数;
    OUT:表示输出参数;
    INOUT:表示既可以输入也可以输出;
    param_name:表示参数的名称;
    type:表示参数的类型,该类型可以是MySQL数据库中的任意类型;

    RETURNS type:语句表示函数返回数据的类型;

    characteristic: 指定存储函数的特性,取值与存储过程时相同

    MYSQL

    Expressions 可以使用列值,NULL,MYSQL内置函数,用户自定义函数来写,其可以在SELECT,UPDATE,DELETE,ORDER BY,HAVING语句中使用。

    创建函数时mysql提示:
    Error Code: 1418. This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you might want to use the less safe log_bin_trust_function_creators variable)

    解决方法:
    SET GLOBAL log_bin_trust_function_creators = 1;

    Error Code: 1054. Unknown column 'employee_id' in 'where clause'

    触发器

    触发器是一条语句,当对数据库做响应的修改时,其被系统自动执行。

    触发器可以实现未被SQL约束机制指定的某些完整性约束(比如未使用外键时保证字段值的一致性)

  • 相关阅读:
    单表通用excle导入(只要是单表都可以,只需要传文件跟表名及用户id即可)
    单表通用excle导出(只要是单表都可以)
    mysql数据库中的mybatis中xml解决in不起作用的问题
    Mysql获取系统时间,年,月,日
    Linux下MySQL的数据库安装
    MP3音频文件的剪切合并方法
    Oracle client客户端简易安装网上文档一
    excel导出功能
    Oracle数据库的创建表全
    Oracle表字段的增加、删除、修改和重命名
  • 原文地址:https://www.cnblogs.com/Simon-cat/p/10917518.html
Copyright © 2020-2023  润新知