您的位置:首页 > 数据库

SQL小结(三)

2015-07-15 19:36 477 查看
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返回受影响的行数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sql unique