SQL小结(三)

MySQL在数据库添加索引,例:
ALTER TABLE department
ADD INDEX dept_name_idx(name);
Oracle和SQL Server添加索引,例:
CREATE INDEX dept_name_idx
ON department (name);
MySQL '\G'替换';'结果按列打印。
唯一索引(UNIQUE)作为一种机制限制索引列出现重复值。将上述中‘INDEX'替换为'UNIQUE' 即可。级联约束,如果父表执行某一操作,外键连接的字表对应行也进行该操作。ON UPDATE CASCADE(级联更新)ON DELETE CASCADE(级联删除),放在设置约束时的最后一行。

利用视图填充新表:
CREATE TABLE name 
AS
SELECT * 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返回受影响的行数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值