A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

数据库:
        弄清  数据库管理系统与数据库与表与表数据都是什么含义

会安装与卸载数据库
会使用DOS登录mysql/会使用sqlyog(或者类似工具)连接数据库,进行可视化操作

SQL代码:
        数据库相关:
                创建、删除、使用、查看、查看创建语句
                *create database 数据库名;                        创建数据库
                *show databases;                                        查看数据库
                show create database 数据库名;                查看建库语句
                *drop database 数据库名;                        删除数据库
                *use 数据库名;                                        使用指定数据库
        表结构相关:
                创建、删除、修改、查看、查看创建语句
                ***
                create table 表名(
                                        字段1        类型,
                                        字段2        类型,
                                        ...
                )
                注意主键唯一非空:id int primary key, 将id设置为主键
                自动增长:auto_increment

                *desc 表名;                                                查看某个现有表的结构
                *show tables;                                                查看当前数据库下所有的表
                *show create table 表名;                                        查看建表语句
                rename table 旧表名 to 新表名                                修改表名
                *alter table 表名 add 列名 类型;                                添加列操作
                *alter table 表名 modify 列名 类型;                        修改列类型
                *alter table 表名 drop 列名;                                        删除列
                alter table 表名 change 旧列名 新列名 类型;        修改列名称
                *drop table 表名;                                                        删除表
                ***truncate 表名;                                                          摧毁表(删除表)



        表数据相关
                增:
                ***insert into 表名(列名1,列名2, ...) values(列值1, 列值2, ...);指定列插入
                ***insert into 表名 values(列值1, 列值2, ...);        不指定列插入(所有列)

                删:
                ***delete from 表名 where 条件                        删除指定条件的数据
                ***delete from 表名                                                删除表内所有数据
                ***truncate table 表名                        摧毁表再重新创建表,达到删除表内所有数据

                改:
                ***update 表名 set 字段=值 ,... where 条件
                查:
                        普通查询:
                                ***** select 字段1,字段2,...from 表名;                查询指定字段信息                                                               
                                ***** select * from 表名;                        查询表中所有字段
                        where子句 *****
                        order by与别名 ***
                        函数        ***
                        count:统计指定列不为NULL的记录行数;
                        sum:计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;
                        max:计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;
                        min:计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
                        avg:计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0

                        goup by ***
                        分组查询是指使用group by字句对查询信息进行分组。即以某个字段作为分组依据,将这个字段值相同的数据分到一组,以组为单位查询数据。

JDBC:
        概念:java连接数据库的工具,java提供了JDBC的接口规范,数据库厂商提供给了针对各种数据库的具体实现类
        步骤:
                1:注册驱动
                        DriverManager:驱动控制管理类
                                registerDriver(java.sql.Driver driver)
                        方式一:
                                手动调用registerDriver注册驱动,不建议,因为如果是mysql的驱动Driver中已经在静态代码块中注册过一遍了。我们无需二次注册,所以不建议。
                        方式二:
                                Class.forName("驱动的全名");建议,因为避免了二次注册。
                2:获取连接
                        DriverManager的方法:
                        public static Connection getConnection(String url,String user, String password)
                        url:数据库资源地址   jdbc:mysql://localhost:3306/mydatabase
                        user:账号   
                        password:密码
                3:获取执行平台
                4:执行语句
                        普通执行平台:
                                Statement:sql执行平台类,我们通过连接获取这个连接的执行平台,在平台上执行SQL语句
                                Connection提供了获取执行平台的方法:
                                                Statement createStatement() throws SQLException
                                               
                                Statement提供了执行SQL语句的方法
                                int executeUpdate(String sql); --执行insert update delete语句.
                                ResultSet executeQuery(String sql); --执行select语句.
                               
                        预处理平台:
                                PreparedStatement:预处理平台类
                                Connection提供了获取预处理执行平台对象的方法:
                                PreparedStatement prepareStatement(String sql) 通过SQL语句获取预处理执行平台对象,给予的sql语句中,用户输入的值可以使用?替代,可以避免SQL注入问题
                               
                                PreparedStatement提供了执行sql的方法
                               
                                void setString(int parameterIndex, String x) 为指定编号的?赋值  字符串的值
                                setXxx(int index,Object value) 为指定编号的?赋值
                               
                                int executeUpdate() 执行增删改语句
                                ResultSet executeQuery()  执行查询语句
                5:处理结果
                        ResultSet:结果集类
                       
                        boolean next()
                        getXXX(int col)  通过第几列获取该行该列的值  注意:从1开始
                        getXXX(String colName)  通过列名获取该行该列的值
                6:释放资源
                        如果使用异常捕获,则释放资源应该在finally代码块中,需要释放的资源有:结果集、平台对象、连接对象
        工具类:
                方便我们获取连接的工具类
                在静态代码块中注册驱动,为常用的数据库属性值赋值
                提供获取连接对象的方法,该方法通常为静态方法
                还可以在未属性赋值时使用配置文件properties

DBUtils:
        Apache提供的简化JDBC操作的工具类
       
        QueryRunner:用于执行SQL语句
                构造方法:
                        空参:创建一个不带连接/连接池的QueryRunner对象,如果用这种对象,在执行sql操作时,需要传入一个连接对象
                        带参:接收DataSource(连接池)参数创建的QueryRunner对象,如果用这种对象,在执行sql操作时,不需要再传入连接对象,因为连接池已经提供了连接
                普通方法:
                        Connection conn:连接
                        String sql:语句
                        ResultSetHandler handler:结果集处理对象
                        Object... param:如果sql中有?则传入?对应的值
                       
                        query(Connection conn,String sql,ResultSetHandler handler)
                        query(String sql,ResultSetHandler handler)
                        query(String sql,ResultSetHandler handler,Object... param)
                        update(Connection conn,String sql)
                        update(String sql)
                        update(String sql,Object... param)
                       
        ResultSetHandler:结果集处理类
                参见文档表格,这里主要基础BeanListHandler
连接池:
        用于存放并组织多个连接DataSource接口
        我们学习DBCP,实现类为BasicDataSource
        连接池使用:
                创建对象
                设置属性值
                        1:获取连接,使用连接 Connection getConnetion();
                        2:通过连接池,创建QueryRunner对象

评分

参与人数 1黑马币 +3 收起 理由
水月灬清影 + 3 干货!

查看全部评分

10 个回复

倒序浏览
抢沙发 还能学到数据库  虽然还没学习到这一块
回复 使用道具 举报
很好很干货!友情赞助几个黑马币给你!
回复 使用道具 举报
感觉数据库好难  
回复 使用道具 举报
水月灬清影 发表于 2016-8-22 21:40
很好很干货!友情赞助几个黑马币给你!

{:2_42:}谢了
回复 使用道具 举报
水月灬清影 发表于 2016-8-22 21:40
很好很干货!友情赞助几个黑马币给你!

谢谢了,我会继续努力的,Fighting
回复 使用道具 举报
DML好好整
回复 使用道具 举报
嗯  总结和很好  我都想保存下来
回复 使用道具 举报
数据库 刚好 快学了
回复 使用道具 举报

数据库 刚好 学了
回复 使用道具 举报
收藏了,总结的不错
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马