Java学习笔记(十七)

来源:互联网 发布:淘宝网店退押金 编辑:程序博客网 时间:2024/06/05 03:53
一、今天的内容
    1、sql语句DML语言(增、删、改、查):
       1-1、添加记录到数据库表:
            insert [into] tableName(colName1,colName2,...) values(value1,value2...);
            value的格式:
            如果是数值类型的,直接写;
            如果文本类型的,要加单引号;
            时间格式:‘2012-01-01’
            注意:
            1)添加记录时,如果想用某个列的,默认值作为添加数据时,在
            tableName(colName1,colName2,...)中的,列名列表中不要书写默认值列的列名,
            其对应的values(value1,value2...)集合中,也不要再给默认值列指定值。
            2)添加记录时,标识列,列名不需要写出,值也不需要人为给定。
            
        1-2、查询记录:
            select <colName1,...(*是指所有的列)> from tableName [where condition];
                1)查询出学生表中班级编号这一项信息,不显示重复记录
                select distinct colName1... from tableName [where condition];
                2)查询时排序
                select colName1... from tableName [where condition] order by 列名1 DESC降序
                 (ASC升序,等同于默认时) [,列名 DESC || ASC];
                注意:
                关键词:order by 列名,可以和where一起使用,也可以单独使用,但是如果
                同时出现,只能where在前,order by在后。
                可以按照多个列排序,当前面列值一样时,按照后面的列排序。
                3)查询记录(行)个数,用内置函数
                   count(*) count(列名)返回的是整数,行的个数。
                   max(列名),求表的记录中列的最大值。
                   min(列名),求表的记录中列的最小值。
                   avg(列名),求表的记录中指定列平均值。
                   sum(列名),求表的记录中指定列和。
                4)分组查询:关键词group by
                   select 列... from tableName [where conditon]
                   group by 列
                   [having condition];
                   注意:
                   4-1、where、group by、having可以同时出现,但是同时出现时必须按照
                   where > group by > having,相当于先过滤、再分组,分组后再过滤,
                   where可以没有。
                   4-2、出现在select后的列表,要么是出现在group by 之后的列,要么是能够为
                   分组结果行返回唯一值的表达式。
                   4-3、按照多列分组时,当分组中提到的列值都一样时,才是一个组。
                 5)多表连接查询:
                    5-1、内链接:指不同表,通过相同的列(名字可以不一样,但应该是同一
                                 个意思)的关联查询。
                         5-1-1:
                         select colName1,... from tableName1,tableName2
                         where tableName1.colName=tableName2.colName
                         and condition;
                     5-1-2:
                     select  colName1,... from tableName1 inner join tableName2
                     on(tableName1.colName=tableName2.colName)
                     and condition;
                     
                     
                    5-2、外链接:
                         左外链接:
                         假如表A示左表,表B是右表。
                         select colName1,... from leftTableName left join
                         rightTableName on(条件);
                                                  
                         右外链接:
                         right join
                         
                         交叉外链接:
                         cross join
                         左右各一次
                         完整外链接:
                         full cross join
                         相当于内链接
        1-3、通配符:一些表达特定意义的原型符号。
             %:若干个字符,可以是0个。
             _:一个字符位。
             []:表达一个范围。
             [^]:表示不在这个范围。
             在构造通配符表达式的时候,一般使用 (not) like '表达式'格式。
             可以实现模糊查询。
        1-4、修改:
             update tableName set colName1=value1,colName2=value2... [where conditon];
             注意:
             1)一次修改多个列时,用set 列名1=value1,列名2=value2...
             2)条件如果不写,意味着表中的每一条记录都满足条件。
        1-5、删除:
             delete from tableName [where condition];
             注意:
             1)delete后不能写列的名字
             2)条件如果没有写时,意味着表中所有的记录都要删除。
             
        题目:创建一个电子商务数据库,创建一个商品表,购物表,通过sql语句,实现
              增删改查的操作。
              
        1-6、JDBC:统一访问数据库的类和接口集合。
             通过JDBC访问数据库步骤:
             1、装载驱动:
                jar包,class文件,如果想访问某种类型的数据库的时候,要用到的类型
                
             2、创建数据库链接对象
                Connection con
             3、创建操作数据库对象
                PreparedStatement pstl
                
             4、对数据进行操作(增删改查)
                pstl调用相关的方法
                
             5、关闭数据库链接
                pstl.close();
                con.close();
                
             
            
原创粉丝点击