代码改变世界

数据库2

2016-12-03 11:10  backyyan  阅读(331)  评论(0编辑  收藏  举报

SQL语句
SQL语句全称是结构化查询语言(Structure Query Language),对数据库中的数据进行各种操作是很方便的,SQL语言主要为各种数据库建立连接,并进行数据库之间的通信。SQL语言被定义
为关系数据库管理系统的标准语言。
SQL语句的分类
SQL语句用来执行数据库中的各种操作,例如,对数据库的增加、删除、修改和更新等。在一个数据库中可以包含很多个表。每个表由行和列组成,并通过这些行和列来存储具体的数据信息。
一行代表一条数据记录。SQL语言主要由数据定义语言、数据操作语言、数据控制语言和其他语言要素这几个部分组成。
在数据库中使用最多的就是数据库操作语言,包含常用的SQL语句,其中包括了SELECT,INSERT,UPDATE,DELETE,CREATE和DROP语句基本操作。

SELECT语句
SELECT语句是用来查询语句,作用是从表中查找符合条件的语句记录。格式语法如下:
SELECT 列名 FROM 数据库表名

SELECT 列名 FROM 数据库表名 WHERE条件表达式
列名表示要查找和显示的字段,FROM表示这个字段从哪里来,查的是哪个数据表。WHERE后面跟具体查找信息的相关表达式。例如,数据表为User,列名有id(编号)、name(姓名)、age(
年龄)和sex(性别)。要查找User表中年龄为20的所有用户的数据记录,那么,SQL语句如下:
SELECT name FROM User WHERE age=20
INSERT语句
INSERT是插入数据语句,作用是在表中添加新的数据记录。语法格式如下:
INSERT INTO表名(字段1 字段2 字段3.。。字段N)VALUES(字段1 字段2 字段3 。。。字段n)
相关字段是表示数据表中的列,插入数据字段要与数据表中字段的数据类型相符。例如,数据表中为User,列名有id(编号)、name(姓名)、age(年龄)和sex(性别)。在User表中添加
一条新纪录,SQL语句如下:
INSERT INTO User(id,name,age,sex)VALUES(001,‘张三’,‘20’,‘男’)

UPDATE语句
UPDATE语句是修改语句,作用是将数据表中符合条件表达式的某些字段修改。语法格式如下:
UPDATE 数据表名 SET 列名=表达式 WHERE 条件表达式
SET表示要修改的字段,WHERE后面跟着需要修改字段的条件表达式。例如,数据表为User,列名有id(编号),name(姓名)、age(年龄)和sex(性别)。在User表中进行修改,将用户名
“张三”的name字段的值 改为“李四”。SQL语句如下:
UPDATE User SET name=‘李四’WHERE name=‘张三’

DELETE语句
DELETE语句时删除语句,作用是删除表中符合条件的一行或多行数据记录。语法格式如下:
DELETE FROM 数据表名 WHERE 条件表达式
根据相关条件表达式来找到相关表中的数据进行删除。例如,数据表为User,列名有id(编号),name(姓名)、age(年龄)和sex(性别)。在User表中删除name值‘李四’的数据记录,
SQL语句如下:
DELETE FROM User WHERE name=‘李四’

CREATE语句
CREATE Table是创建一个新的数据表,语法格式如下:
CREATE TABLE表名(列名1 数据类型,列名2 数据类型,列名3 数据类型。。。)
使用上面语句新建数据表People,字段有id(编号)、name(姓名)和age(年龄)。
SQL语句如下:
CREATE TABLE People
{
id int,
name varchar(10),
age int
}

DROP语句
DROP语句是删除语句,作用是删除已经存在的表,语法格式如下:
DROP TABLE 表名
例如我们把刚才使用的User数据表删除掉。SQL语句如下:
DROP TABLE User

访问数据库
下面通过一个例子来演示Java数据库应用程序访问数据库的全过程
创建数据库连接
通过JDBC对数据库进行访问,首先需要在Java数据库应用程序中导入java.sql包。代码如下:
import java.sql.*;
这样,在程序中就可以进行数据库连接了,编写连接数据库TestDB()方法,代码如下:

import java.sql.Connection;
import java.sql.DriverManager;


public class TestDB {
private Connection con=null; //数据库的连接
public TestDB(){
//桥连接
try{
//声明驱动程序
String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";
//user就是数据源的名称
String ds="jdbc:sqlserver://localhost:1433;databaseName=users";
String user="login"; //login就是数据源的登录名
String password="login"; //login就是数据源的密码
//连接数据库
Class.forName(diver); //加载数据库驱动程序
con =DriverManager.getConnection(ds,user,password);
if(con !=null){
System.out.println("数据库连接成功");
}
}catch(Exception e)
{
System.out.println("数据库连接失败!"+e.toString());
}

}
}

 

通过“Class.forName(driver);”语句加载了数据驱动程序,通过“private Connection con=null;”与“con=DriverManager.getConnection(ds,user,login)”语句,可以连接上数据库。
下面测试一下,看数据库是否连接上,代码如下:
public static void main(String[] args){
TestDB td=new TestDB();
}
若输出结果为“数据库连接成功”,则表明可以对student数据库进行操作了。若“数据库连接失败!+错误提示信息”,则表明连接有错误。

对数据库进行查询
和数据库建立连接以后,就可以对数据库进行各种操作了。在使用SQL语句对数据库进行操作之前,需要创建SQL声明对象与结果集对象。在“private Connection con=null;”语句后加上如下代码:
private Statement st=null;//执行SQL语句对象
private ResultSet rs=null;//结果集对象
通过Connection对象的createStatement()方法可以得到Statement实例,然后通过Statement的executeQuery()方法进行查询,将查询结果放到ResultSet结果集中,最后输出查出的数据,代码如下:

//普通查询
public void query(String sql){
try{
Connection con=null;
Statement st=con.createStatement();//得到statement实例
ResultSet rs=st.executeQuery(sql);//得到SQL语句,返回结果集
//当返回结果集不为空时,并且还有记录时
while (rs !=null&&rs.next()){
int stu_num=rs.getInt(1);//获得当前记录的第一个字段的值
//获得当前记录中"name"字段的值
String name=rs.getString("name");
int age=rs. getInt("age");//获得当前记录中age字段的值
int math=rs.getInt("math");//获得当前记录中math字段的值
//获得当前记录中“English”字段的值
int english=rs.getInt("english");
System.out.println("学号="+stu_num+"\t姓名="+name+"\t年龄="+age+
"\t数学成绩="+math+"\t英语成绩="+english);

}
}catch (Exception e){
System.out.println("查询数据时出错"+e.toString());
}

}
}

 


下面进行测试。在main()方法中输入如下代码:

String name="李四";
String sql="select *fron stu_info where name='"+name+"'";
td.query(sql);

 

增加、修改、删除数据库中的数据
若要对数据库进行增加、修改或删除数据的操作,可以通过Statement的executeUpdate()方法,如果在executeUpdate()方法中的SQL语句为INSERT语句,即可向数据库中增加数据;如果在executeUpdate方法中的SQL语句为UPDATE语句,则更改数据库中的数据。代码如下:

//添加,删除、更新

public class add_update_Del(String sql) {
try{
Connection con=null;
Statement st=con.createStatement();//生成Statement对象
int x=st.executeUpdate(sql);
System.out.println("操作成功"+x);
}catch(Exception e){
System.out.println("数据修改时有误"+e.toString());
}
}
}

 

下面向数据库添加一条记录,代码如下:
String sql="insert into stu_info values(7,'张三',17,89,84)";
td.add_update_Del(sql);
这时使用SQL语句进行查询,代码如下:
String name="张三";
String sql="select *from stu_info where name='"+name"'";
td.query(sql);
若想改变表中数据,可以使用如下语句:
Sring sql ="update stu_info set math=95 where name='张三'";
td.add_update_Del(sql);
这时就将张三的数学成绩更改为95,。若要删除一条记录,可以使用如下语句:
String sql="delete from stu_info where name='张三'";
td.add_update_Del(sql);