最近在上一门课 java语言高级开发, 其实主要在讲java服务器的,也有jsp的相关内容。然后服务器肯定要经常的和数据库打交道,这时就会不可避免的用上SQL语句。目前才刚开始接触数据库,暂且只用了选择、插入、修改、删除这样几条语句。
常用的SQL语句
SQL语句是大小写不敏感的,所以SELECT等同于select或是SElect。
选择语句
SELECT 列名称 FROM 表名称
SELECT * FROM 表名称
这个插入语句可以获得表中的部分需要的数据。通过借助WHERE语句来实现
SELECT 列名称 FROM 表名称 WHERE 列 运算符 值
其中操作符有如下几种
操作符 | 描述 |
---|---|
= | 等于(和编程语言不一样的是不需要双等于号) |
<> | 不等于(这里也和常用的编程语言不一样)有的版本的SQL中也可以写为!= |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
BETWEEN | 在某个范围内 |
LIKE | 搜索某种模式 |
插入语句
使用INSERT INTO语句表示向表格中插入新的行。
INSERT INTO 表名称 VALUES (值1, 值2,....)
INSERT INTO 表名称 (列1, 列2,...) VALUES (值1, 值2,....)
如果你不写 (列1, 列2, ...)
的话,VALUES内的值默认是从第一列开始向后排序。
修改语句
UPDATE 语句用于修改表中的数据。
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
这里也是要借助WHERE来判断修改哪条数据的,如果几条数据的列名称内容都相同的话,会全部被修改。
删除语句
DELETE 语句用于删除表中的行。
DELETE FROM 表名称 WHERE 列名称 = 值
借助WHERE判断删除那一条数据,同上,如果几条数据的列名称内容相同,全部会被删除,使用时需要注意。
“与” 和 “或”语句
使用 AND
和OR
表示“与”和“或”的逻辑运算符。
这个运算符通常用在WHERE语句中,用来连接多个条件。
AND运算符自然是,多个条件从头到尾都满足的记录。
OR运算符是多个条件中,至少满足一个的记录
排序语句
ORDER BY 语句用于对结果集进行排序。
ORDER BY 语句用于根据指定的列对结果集进行排序。
ORDER BY 语句默认按照升序对记录进行排序。
如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。
这个通常用在选择语句,选择时,返回的结果按照要求进行排序。
例:
SELECT Company, OrderNumber FROM Orders ORDER BY Company
可以使用DESC表示逆序排序,用ASC表示顺序排序。
例:
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC
JAVA中使用SQL语句
java中通常使用JDBC API来访问数据库。
在执行语句时,使用Statement对象
Connection conn = DbUtils.getConnection(); // 获得与自己的数据库的连接
Statement st = null; // Statement 用来执行语句
ResultSet rs = null; // ReslutSet 查询返回的结果
String sql="select * from BookInfo where bookId="+book.getBookId();
rs = st.executeQuery(sql); // 执行SQL语句
while(rs.next()){
// 代码操作
}
上述方式,是通过拼出一条完整的SQL语句来实现的,不是很安全,也可以通过使用预编译方式来使用SQL语句。
Connection conn = DbUtils.getConnection(); // 获得与自己的数据库的连接
PreparedStatement ps = null; // PreparedStatement 用来执行语句
ResultSet rs = null; // ReslutSet 查询返回的结果
conn=DbUtils.getConnection();
String sql="insert into UserInfo(userName,userSex,birthday ) " + " values( ? , ? , ? )";
ps=conn.prepareStatement(sql); // 获得预编译语句
ps.setString(1, "user01"); // 将第一个 '?' 替换为 "user01"
ps.setString(2, "男"); // 将第二个 '?' 替换为 "男"
ps.setDate (3, new java.sql.Date() ); // 将第三个 '?' 替换为 Date数据
int ret=ps.executeUpdate(); // 执行预编译语句
预编译语句通过使用 ‘?’作为一个占位符,不是去硬拼一条SQL语句,因而更容易理解,也更安全,关于预编译语言的更细节的教程,请移步更全的博客。