sql数据库常见的应用语句

一、通过java代码新建链接,通过加载驱动,获取链接来进行数据库的链接
二、通过java的框架,配置中间件 从而进行数据库的链接

原理:使用jdbc-odbc桥进行连接   :
 try{    
	Connection con;       
	Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");  //注册驱动   
 	con = DriverManager.getConnection("jdbc:microsoft:sqlserver://你的IP:1433;databaseName=数据库名","sa","你的密码");//         
 	Statement sta = con.createStatement(); //执行sql语句的容器   
	String str = "select * from 表名";     
	ResultSet re = sta.executeQuery(str); //执行完的结果赋给 ResultSet   
	while(re.next()){
 	//通过游标对数据进行访问    
	String 字段名= re.getString("字段名");    
	System.out.println(字段名); 
  } catch(Exception e){ 
  System.out.println(e.toString()); 
 } 


直接连接:
try{ 
   	Connection conn; 
  	 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
  	 conn=DriverManager.getConnection("jdbc:odbc:Driver={SQL Server};Server=你的IP;uid=sa;pwd=密码;Database=Northwind"); 
   	String sql="select * from Categories";    
	Statement st=conn.createStatement();   
	 ResultSet rs=st.executeQuery(sql);   
	//通过游标对数据进行访问    
 	while (rs.next())    { 
   	 String CategoryName=rs.getString("CategoryName");    
	 System.out.println(CategoryName)
 	} 
  } catch(Exception e){ 
  System.out.println(e.toString()); 
 } 



建立好连接后用相对于的语句对数据库进行操作:
 
 
(1) 数据记录筛选:
sql="select * from 数据表 where 字段名=字段值 order by 字段名[desc]"(按某个字段值降序排列。默认升序ASC)
sql="select * from 数据表 where 字段名like '%字段值%' order by 字段名 [desc]"
sql="select top 10 * from 数据表 where 字段名=字段值 order by 字段名 [desc]"
sql="select top 10 * from 数据表 order by 字段名 [desc]"
sql="select * from 数据表 where 字段名in ('值1','值2','值3')"
sql="select * from 数据表 where 字段名between 值1 and 值2"
(2) 更新数据记录:
sql="update 数据表 set 字段名=字段值 where 条件表达式"
sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"
(3) 删除数据记录:
sql="delete from 数据表 where 条件表达式"
sql="delete from 数据表" (将数据表所有记录删除)
(4) 添加数据记录:
sql="insert into 数据表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)"
sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表)
(5) 数据记录统计函数:
AVG( 字段名) 得出一个表格栏平均值
COUNT(*; 字段名) 对数据行数的统计或对某一栏有值的数据行数统计
MAX( 字段名) 取得一个表格栏最大的值
MIN( 字段名) 取得一个表格栏最小的值
SUM( 字段名) 把数据栏的值相加
引用以上函数的方法:
sql="select sum( 字段名) as 别名 from 数据表 where 条件表达式"
set rs=conn.excute(sql)
用 rs("别名") 获取统计的值,其它函数运用同上。
查询去除重复值:select distinct * from table1
(6) 数据表的建立和删除:
CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… )
(7) 单列求和:
SELECT SUM( 字段名) FROM 数据表
 
测试数据库连接的一个实例:
public class message {
    public static void main(String[] args) {
        Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		try {
			Class.forName("com.mysql.jdbc.Driver");


			conn = DriverManager
					.getConnection("jdbc:mysql://localhost/自己的数据库?user=root&password=(自己的密码)");
			stmt = conn.createStatement();
			rs = stmt.executeQuery("select * from dept");
			while (rs.next()) {
				System.out.println(rs.getString("deptno"));	//取出数据
			}


		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException ex) {
			// handle any errors
			System.out.println("SQLException: " + ex.getMessage());
			System.out.println("SQLState: " + ex.getSQLState());
			System.out.println("VendorError: " + ex.getErrorCode());
		} finally {
			try {
				if(rs != null) {
					rs.close();
					rs = null;
				}
				if(stmt != null) {
					stmt.close();
					stmt = null;
				}
				if(conn != null) {
					conn.close();
					conn = null;
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}


            
    }
}
 


一些操作实例:
import java.sql.Connection;  
import java.sql.DriverManager;  
import java.sql.ResultSet;  
import java.sql.SQLException;  
import java.sql.Statement;  
  
public class JDBC_Test {  
    // 创建静态全局变量  
    static Connection conn;  
  
    static Statement st;  
  
    public static void main(String[] args) {  
        insert();   //插入添加记录  
        update();   //更新记录数据  
        delete();   //删除记录  
        query();    //查询记录并显示  
    }  
      
    /* 插入数据记录,并输出插入的数据记录数*/  
    public static void insert() {  
          
        conn = getConnection(); // 首先要获取连接,即连接到数据库  
  
        try {  
            String sql = "INSERT INTO staff(name, age, sex,address, depart, worklen,wage)"  
                    + " VALUES ('Tom1', 32, 'M', 'china','Personnel','3','3000')";  // 插入数据的sql语句  
              
            st = (Statement) conn.createStatement();    // 创建用于执行静态sql语句的Statement对象  
              
            int count = st.executeUpdate(sql);  // 执行插入操作的sql语句,并返回插入数据的个数  
              
            System.out.println("向staff表中插入 " + count + " 条数据"); //输出插入操作的处理结果  
              
            conn.close();   //关闭数据库连接  
              
        } catch (SQLException e) {  
            System.out.println("插入数据失败" + e.getMessage());  
        }  
    }  
      
    /* 更新符合要求的记录,并返回更新的记录数目*/  
    public static void update() {  
        conn = getConnection(); //同样先要获取连接,即连接到数据库  
        try {  
            String sql = "update staff set wage='2200' where name = 'lucy'";// 更新数据的sql语句  
              
            st = (Statement) conn.createStatement();    //创建用于执行静态sql语句的Statement对象,st属局部变量  
              
            int count = st.executeUpdate(sql);// 执行更新操作的sql语句,返回更新数据的个数  
              
            System.out.println("staff表中更新 " + count + " 条数据");      //输出更新操作的处理结果  
              
            conn.close();   //关闭数据库连接  
              
        } catch (SQLException e) {  
            System.out.println("更新数据失败");  
        }  
    }  
  
    /* 查询数据库,输出符合要求的记录的情况*/  
    public static void query() {  
          
        conn = getConnection(); //同样先要获取连接,即连接到数据库  
        try {  
            String sql = "select * from staff";     // 查询数据的sql语句  
            st = (Statement) conn.createStatement();    //创建用于执行静态sql语句的Statement对象,st属局部变量  
              
            ResultSet rs = st.executeQuery(sql);    //执行sql查询语句,返回查询数据的结果集  
            System.out.println("最后的查询结果为:");  
            while (rs.next()) { // 判断是否还有下一个数据  
                  
                // 根据字段名获取相应的值  
                String name = rs.getString("name");  
                int age = rs.getInt("age");  
                String sex = rs.getString("sex");  
                String address = rs.getString("address");  
                String depart = rs.getString("depart");  
                String worklen = rs.getString("worklen");  
                String wage = rs.getString("wage");  
                  
                //输出查到的记录的各个字段的值  
                System.out.println(name + " " + age + " " + sex + " " + address  
                        + " " + depart + " " + worklen + " " + wage);  
              
            }  
            conn.close();   //关闭数据库连接  
              
        } catch (SQLException e) {  
            System.out.println("查询数据失败");  
        }  
    }  
  
    /* 删除符合要求的记录,输出情况*/  
    public static void delete() {  
  
        conn = getConnection(); //同样先要获取连接,即连接到数据库  
        try {  
            String sql = "delete from staff  where name = 'lili'";// 删除数据的sql语句  
            st = (Statement) conn.createStatement();    //创建用于执行静态sql语句的Statement对象,st属局部变量  
              
            int count = st.executeUpdate(sql);// 执行sql删除语句,返回删除数据的数量  
              
            System.out.println("staff表中删除 " + count + " 条数据\n");    //输出删除操作的处理结果  
              
            conn.close();   //关闭数据库连接  
              
        } catch (SQLException e) {  
            System.out.println("删除数据失败");  
        }  
          
    }  
      
    /* 获取数据库连接的函数*/  
    public static Connection getConnection() {  
        Connection con = null;  //创建用于连接数据库的Connection对象  
        try {  
            Class.forName("com.mysql.jdbc.Driver");// 加载Mysql数据驱动  
              
            con = DriverManager.getConnection(  
                    "jdbc:mysql://localhost:3306/myuser", "root", "root");// 创建数据连接  
              
        } catch (Exception e) {  
            System.out.println("数据库连接失败" + e.getMessage());  
        }  
        return con; //返回所建立的数据库连接  
    }  
}  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值