您的位置:首页 > 数据库 > MySQL

MySQL学习笔记 - 查询语句

2012-08-29 00:00 639 查看

常用SQL语句

一、数据定义语言DDL

*CREATE DATABASE database_name
*CREATE TABLE table_name (
column_name datatype [constraint_condition]
[, column_name datatype [constraint_condition]]...
}
*CREATE TABLE table_name AS
SELECT column_name1, column_name2, ...
FROM table_name1, table_name2, ...
[ WHERE conditions GROUP BY column_name1, column_name2, ...
HAVING conditions ORDER BY column_name1, column_name2, ...
]
*CREATE [ UNIQUE ] | [ CLUSTER ] INDEX index_name
ON table_name ( column_name [ ASC | DESC ] )
*CREATE VIEW view_name ( [ column_name1 [, column_name2]...] ) AS
SELECT column_name1, column_name2, ...
FROM table_name1, table_name2, ...
[ WHERE conditions GROUP BY column_name1, column_name2, ...
HAVING conditions
ORDER BY column_name1, column_name2, ...
]
*ALTER TABLE table_name
[ ADD ( column_name datatype [constraint_condition] ) ]
[ MODIFY column_name datatype ]
[ DROP constraint_type ]
*DROP TABLE table_name [ CASCAPE CONSTRAINTS ]
*DROP DATABASE database_name
*DROP INDEX index_name
*DROP VIEW view_name

二、数据查询语句DQL

*SELECT 语句
*SELECT column_name1, column_name2, ...
FROM table_name1, table_name2, ...
[ WHERE conditions GROUP BY column_name1, column_name2, ...
HAVING conditions ORDER BY column_name1, column_name2, ...
]

三、数据操作语句DML

*INSERT INTO table_name [ (column_name1, column_name2, ...) ]
VALUES (value1[, value2]... )
*INSERT INTO table_name [ (column_name1, column_name2, ...) ]
SELECT column_name1, column_name2, ...
FROM table_name1, table_name2, ...
[ WHERE conditions ]
*UPDATE table_name
SET column_name1 = value1[, column_name2 = value2 ... ]
[ WHERE conditions ]
*DELETE FROM table_name
[ WHERE conditions ]

四、数据控制语句DCL

*GRANT authority[, authority] ON TABLE table_name1[, table_name2] ...
TO user1[, user2] ...
[ WITH GRANT OPTION ]
*REVOKE authorty[, authorty] ON TABLE table_name1[, table_name2] ...
FROM user1[, user2] ...

五、事务控制语句

*COMMIT [ routine_name ]
*ROLLBACK [ TO savepoint ]
*CREATE [OR REPLACE] PROCEDURE procedure_name
[ ( argument1 [ IN | OUT | IN OUT ] datatype1 [, argument2 [ IN | OUT | IN OUT ] datatype2 ] ... ) ]
{ IS | AS }
[ local declarations ]
BEGIN
executable statements
[ EXCEPTION
exception handlers ]
END [ procedure_name ];
*CREATE [OR REPLACE] FUNCTION function_name
[ ( argument1 [ IN | OUT | IN OUT ] datatype1 [, argument2 [ IN | OUT | IN OUT ] datatype2 ] ... ) ]
RETURN return_datatype
{ IS | AS }
[ local declarations ]
BEGIN
executable statements
[ EXCEPTION
exception handlers ]
END [ function_name ];
*CREATE [OR REPLACE] PACKAGE package_name
{ IS | AS }
[ variable_declaration ... ]
[ cursor_declaration ... ]
[ exception_declaration ... ]
[ object_declaration ... ]
[ function_declaration ... ]
[ procedure_declaration ... ]
END [package_name];
*CREATE [OR REPLACE] PACKAGE BODY package_name
{ IS | AS }
----
----
END package_name;
* CREATE [OR REPLACE] TRIGGER trigger_name
{ BEFORE | AFTER |INSTEAD OF } trigger_event
ON { table_name | view_name | database | schema }
FOR EACH ROW
[ WHEN ( logical_expression ) ]
[ DECLARE
_declaration_statements; ]
BEGIN
execution_statements;
END [trigger_name];

Java与MySQL

JDBC(Java Database Connection)是Java的数据库连接接口,JDBC方式连接MySQL使用的类和接口包括

DriverManager类、Driver接口、Connection接口、Statement接口、DatabaseMetaData接口和ResultSet接口等。

(1)使用Class类加载当前数据库的驱动程序

Class.forName(driver);

其中,driver表示数据库的驱动程序,MySQL5.0数据库驱动程序为 com.mysql.jdbc.Driver

(2)通过DriverManager类中的getConnection方法建立数据库的连接

conn = DriverManager.getConnection(url,userName,password);

其中,url表示数据库的URL,MySQL数据库的URL为 jdbc:mysql://[HOST]:[PORT]/ database_name 。HOST表示本机,PORT表示端口号,database_name表示数据库名,userName、password表示数据库使用的用户名和密码。

(3)使用Connection接口中的createStatement()方法创建Statement对象

stmt = conn.createStatement();

其中,stmt表示一个Statement对象,通过该对象可以执行相应的SQL语句并将其发送给数据库。

(4)执行SQL语句并将查询结果以ResultSet结果集的形式返回

ResultSet rs = stmt.executeQuery(sqlSelect); //执行SQL查询语句

Int count = stmt.executeUpdate(sqlUpdate); //执行SQL更新语句

其中,sqlSelect是一个用于执行查询的SQL语句,executeQuery()方法是用于执行查询SQL语句的方法,该方法返回一个结果集。sqlUpdate()方法是用于执行更新SQL语句的方法,该方法返回一个整数,表示数据表中更新的数据个数。

(5)使用while循环获取ResultSet结果集中的所有记录

while (rs.next()) {

String str1 = rs.getString(1);

String str2 = rs.getString(2);

//...

}

其中,rs.next()表示将指针的位置向下移动一行,并返回一个布尔值,第一次调用时,指针指向结果集中第一行记录的位置。getString(1)表示取得ResultSet结果集中第一个字段对应的值。当指针指向的下一行记录不存在时,rs.next()返回false,while循环结束。

(6)关闭数据库的连接

在执行完数据库的操作之后,需要将与数据库连接有关的对象关闭,主要包括Statement对象、Connection对象等。

stmt.close();

conn.close();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  SQL语句