SQL小结(三)

来源:互联网 发布:淘宝上搜索什么有福利 编辑:程序博客网 时间:2024/06/02 20:09
MySQL在数据库添加索引,例:
ALTER TABLE departmentADD INDEX dept_name_idx(name);
Oracle和SQL Server添加索引,例:
CREATE INDEX dept_name_idxON department (name);
MySQL '\G'替换';'结果按列打印。唯一索引(UNIQUE)作为一种机制限制索引列出现重复值。将上述中‘INDEX'替换为'UNIQUE' 即可。级联约束,如果父表执行某一操作,外键连接的字表对应行也进行该操作。ON UPDATE CASCADE(级联更新)ON DELETE CASCADE(级联删除),放在设置约束时的最后一行。利用视图填充新表:
CREATE TABLE name ASSELECT * FROM name_vw;重定义视图:CREATE OR REPLACE VIEW name_vw`````
与java编程语言不同,SQL使用=和<>而非==和!=来进行相等比较。给数据库授权,查看数据库中所有用户及其权限,JAVA连接MYSQL:

http://www.cnblogs.com/jifeng/archive/2011/03/06/1972183.html
http://blog.chinaunix.net/uid-21505614-id-302263.html
http://database.51cto.com/art/201006/204217.htm

包含META-INF/services/java.sql.Driver文件的JAR文件可以自动注册驱动器类,否则需要手动注册。在执行SQL命令之前,首先需要创建一个Statement对象。要创建statementd对象,需要使用调用DriverManager.getConnection方法所获得的Connection对象。
    Connection conn = DriverMananger.getConnection(url, username, password);    Statement stat = conn.createStatement();    stat.executeUpdate(command);    ResultSet rs = stat.executeQuery("SELECT ```");
executeUpdate方法用于UPDATE, DELETE之类操作,执行SELECT查询时必须使用executeQuery方法。(另外还有execute语句可以执行任意SQL语句,通常用于用户提供的交互式查询)executeQuery方法返回一个ResultSet对象,分析结果用如下代码:
    while(rs.next()){     look at a row of the result set     }
迭代器初始化时被设定在第一行之前的位置,必须**调用next方法将它移动到第一行**。因为没有hasNext方法,所以需要不断调用next,直至返回false。
    String isbn = rs.getString(1); //返回当前行第一列的值    double price = rs.getDouble("Price"); //返回Price列    //与数据的索引不同,数据库的列序号是从1开始计算的  
**应该使用带资源的try语句来关闭连接,并使用一个单独的try/catch处理异常**SQLException为一个由Throwable对象组成的异常链,所以用循环捕获异常
    for(Throwable t : sqlException)    {        do something with t    }
预备语句PreparedStatement:
    String Query = "SELECT ````" + "FROM ```" + "WHERE Publisher.Name = ?";    PreparedStatement stat = **conn.prepareStatement(Query)**;    stat.setString(1,publisher); //第一个"?"用publisher代替    ResultSet rs = stat.executeQuery();    或者 int r = stat.executeUpdate();    System.out.println(r + "rows updated"); //executeUpdate返回受影响的行数
0 0
原创粉丝点击