黑马程序员-JavaWeb

注:文章过于繁琐  请看图片!!


第一天

    MySQL数据类型( 常用 ):
        int    整数类型
        double( 参数1,参数2 )   小数类型 参数1为总长度 参数2为小数点后保留几位
        char    定长字符串  耗时短  空间占用大
        varchar     变长字符串  耗时长  空间占用小
        date    日期 用单引号修饰  年月日中间用 -
    
    DDL:数据定义语言  用来定义数据库对象:数据库、表、列等
        show databases;    查看所有数据库
        create database if not exists 数据库名;   创建数据库
        select database( );    查看当前使用的数据库
        use 是数据库名;    使用数据库
        drop database if exists 数据库名;    删除数据库
        create table 表名( 列名1 数据类型 约束, ... ( 最后一个不写逗号) );    创建表
        show tables;    查看当前数据库内的所有表格
        desc 表名;    查看该表的结构
        drop table if exists 表名;     删除表
        alter table 表名 rename to 新表名;    更改表名
        alter table 表名 add 列名 数据类型;    增加列
        alter table 表名 modify 列名 新数据类型;   修改列的数据类型
        alter table 表名 change 列名 新列名 新数据类型; 修改列名与数据类型
        alter table 表名 drop 列名;    删除列

    DML:数据操作语言  用来对数据库中表的数据进行增删改
        insert into 表名( 列名列表 ) values( 数值列表 );   添加数据
        delete from 表名 where 条件;      删除数据
        update 表名 set 列名1=数值1, ... where 条件;    修改数据

    DQL:数据查询语言  用来查询数据库中表的记录( 数据 )
    单表查询:
        基础查询:select 列名列表 from 表名
        条件查询:
            select 列名列表 from 表名 where 条件;
            模糊查询:
                select 列名列表 from 表名 where 列名 like 通配符;
                通配符: 
                    _    代表单个任意字符
                    %    代表任意个数字符
        分组查询:
            select 字段名 from 表名 group by 列名;
            聚合函数:
                account( 列名 )    统计数量
                sum( 列名 )    求和
                max( 列名 )    求最大值
                min( 列名 )    求最小值
                avg( 列名 )    求平均值
                注意事项:null值不参与所有聚合函数运算
            注意:分组之后  查询的字段为聚合函数和分组字段  查询其他字段五任何意义
        排序查询:
            select 列名列表 from 表名 order by 列名 排序方式;
            注意:这里的排序条件 排序列名 一般为 数字与日期  如果有多个排序条件  当前边的条件值一样时 才会根据第二条件进行排序
            排序方式:
                ASC    升序排列( 默认 )
                DESC    降序排列
        分页查询:
            select 列名列表 from 表名 limit 开始索引,每页展示的数据个数
            开始索引 = ( 当前页数 - 1 )* 每页展示的数据个数
        查询顺序( 表名后从前到后 ):where -> group by -> having -> order by -> limit
        where 与 having 的区别:
            1.使用位置不同:
                where 用在分组前
                having 用在分组后
            2.可判断条件不同:
                where 不可用聚合函数
                having 可用聚合函数
            3.执行顺序:where > 聚合函数 > having

黑马程序员-JavaWeb_第1张图片

 


第二天

    列的约束
        primary key    主键 非空且唯一
        auto_increment    自增长 在赋值null或者不赋值的情况下会自动赋值
        not null        非空
        unique        唯一
        default        默认赋值
        foreign key    外键
    
    外键
        一对一:在任意以方建立外键 关联另一方的主键 并且设置外键唯一
        一对多/多对一:在多的以方建立外键 关联一的一方的主键
        多对多:借助第三张表 该表至少包含两个列 分别关联两个主表的主键
        建立外键:
            在表中:constraint 外键名 foreign key ( 本表外键列名 ) references 主表( 主表主键 );
            在表外:alter table 表名 constraint 外键名 foreign key ( 本表外键列名 ) references 主表 ( 主表主键 );
        删除外键:alter table 表名 drop foreign key 外键名;

    多表查询
        内连接:
            显示内连接:select 字段列表 from 表1 inner join 表2 on 条件;( inner 可省略 )
            隐式内连接:select 字段列表 from 表1,表2 where 条件;
        外连接:
            左外连接:select 字段列表 from 表1 left join 表2 on 条件;查询左边表的全部信息以及与右边表有联系的信息
            右外连接:select 字段列表 from 表1 right join 表2 on 条件;查询右边表的全部信息以及与左边表有联系的信息
        子查询:
            当结果是单行单列时:可以作为条件值 使用 = > <等等 进行条件判断
            当结果是多行单列时:可以作为条件值 用于in( ) 与 not in( )            
            当结果是多行多列时:可以把结果作为虚拟表 起个别名进行调用

    事务
        简介:事务把所有的命令作为一个整体一起向系统提交或撤销操作请求  即这一组数据库命令要么同时成功 要么同时失败
        流程:
            begin;    开启事务  除非收到rollback 或者commit 不然不停止
            rollback;    回滚事务 如果数据没有同时成功或者同时失败时  可以进行事务回滚 恢复初始数据 并且此时事务停止
            commit;    提交事务  如果数据同时成功或者同时失败 可以对事务提交 此时事务停止
        四大特征:
            1.原子性( Atomicity ):事务是不可分割的最小操作单位  要么同时成功 要么同时失败
            2.一致性( Consistency ): 事务完成时  必须使所有的数据都保持一致状态
            3.隔离性( Isolation ): 多个事务之间  操作的可见性
            4.持久性( Durability ):事务一旦提交或回滚  它对数据库中的数据的改变就是永久的

黑马程序员-JavaWeb_第2张图片

 

你可能感兴趣的:(JavaWeb,java,数据库,mysql)