栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java第二阶段之MySQL数据库

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java第二阶段之MySQL数据库

MySQL数据库基本操作命令 一、DDL

        库的基本操作。

        关键字:create、drop、alter

        [ ]中的内容代表可写可不写

        1、show databases; 查看所有的数据库         2、create database [if not exsists] 库名; 创建数据库         3、drop database [if exsists] 库名; 删除数据库         4、use 库名; 选中库/跳转库         5、show create database 库名; 查看创建数据库的语句         6、show tables; 查看所有表         7、create table [if not exsists] 表名(列名 数据类型 【约束】,列名 数据类型 【约束】,......); 创建表         8、drop table [if exsists] 表名; 删除表         9、desc 表名; 查看表结构         10、show create table 表名; 查看创建表语句         11、alter table 原表名 rename 新表名; 修改表名         12、alter table 表名 change [column] 原列名 新列名 数据类型; 修改列名         13、alter table 表名 modify [column] 列名 新类型; 修改列的类型         14、alter table 表名 add [column] 列名 类型; 添加列         15、alter table 表名 drop [column] 列名; 删除列         16、alter table 表名 modify [column] 字段名 类型 约束; 添加约束万能公式  二、DML

        数据操作语言

        关键字:insert,delete,update

        1、insert into 表名(列名1,列名2,...) values(值1,值2,......),(值1,值2,......),......;向表中插入数据         2、delete from 表名 where 条件; 根据条件删除数据         3、delete from 表名; /truncate table 表名; 删除所有         4、update 表名 set 列名1=新值1,列名2=新值2,,... where 条件; 修改值  三、DQL         1、select 列名,列名...from 表名; 基本查询         2、select 查询列表 from 表名 where 条件; 条件查询

        and :两个条件要同时满足

        or: A or B 当只有满足A时,只获取A的数据,当只有满足B时,只要B的数据,如果A,B的数据都有满足的时候,满足A或者满足B的数据都要

        not :表示否定

        in(A,B,C...) or的简写,在A,B,C之间取值,如果有满足的就查询,有多个满足就差个查询

        between A and B:在A和B范围之间取值,A,B都能取到

        not null:不是null

        like:模糊查询

        _ :一个字符   % :任意个字符

        3、select 查询列表 from 表名 where 条件 order by 排序列表 asc|desc; 排序查询         4、select 分组字段和分组函数 from 表名 where 条件 group by 分组字段 having 分组后筛选 order by 排序列表 asc|desc; 分组查询

        执行顺序:

        select 分组字段和分组函数 ---- ④

        from 表名   ---- ①

        where 条件   ---- ②

        group by 分组字段 ---- ③

        having 分组后筛选 ---- ④

        order by 排序列表 asc|desc; ---- ⑤

        5.聚合查询

        sum(列名/值) 求和   数字类型

        avg(列名/值) 求平均 数字类型

        max(列名/值) 最大值 数字、日期

        min(列名/值) 最小值 数字、日期类型

        count(列名/值) 计数  count(*)

        6.分页查询

        select 查询列表

        from 表名

        where 条件

        group by 分组字段

        having 分组后筛选

        order by 排序列表 asc|desc

        limit 偏移量,查询个数

        7.连接查询

        ①隐式内连接

        select 查询列表

        from 表1 别名1,表2 别名2,...

        where 连接条件

        and 其他条件

        group by 分组字段

        having 分组后筛选

        order by 排序列表 asc|desc

        limit 偏移量,查询个数

        ②显式内连接

        select 查询列表

        from 表1 别名1

        inner join 表2 别名2 on 连接条件

            ...

        where 条件

        group by 分组字段

        having 分组后筛选

        order by 排序列表 asc|desc

        limit 偏移量,查询个数

        ③外连接

        select 查询列表

        from 表1 别名1

        left|right outer join 表2 别名2

        on 连接条件

        where 条件

        group by 分组字段

        having 分组后筛选

        order by 排序列表 asc|desc

        limit 偏移量,个数;

        8.子查询

        select 列名 from 表名 where 列名 符号 (select 列名from 表名 where 条件...)..

        select 列名 from (select 列名 from 表名 where 条件)where 条件...

        特点

                  1. 子查询 必须写在小括号中

                  2. 子查询 优先执行 ,主查询需要用到子查询的结果

                  3. 子查询结果

                单行子查询:结果只有一个 搭配的符号 = > < >= <= <>

                多行子查询:结果多个     搭配的符号 in / not in /

                any / all

                >any:大于最小的

                >all:大于最大的

                

                 四、事务         1、特性 【面试题】

                ① 原子性 整个事务不可分割,要么全部成功,要么全部失败

                ② 一致性 整个事务过程中数据保持一致的

                ③ 持久性 数据持久化保存

                ④ 隔离性:事务与事务之间的隔离关系

                commit 事务提交  rollback 事务回滚

                面试题:简述事务的隔离级别:

                一般情况引发隔离安全问题的都是在事务并发状态下发生的。

                隔离级别:低 --- 高

                1. 读未提交 read uncommitted

                引发问题:脏读 模拟买家和卖家之间

                A,B两个事务,A事务能够看到B事务没有提交的数据

                解决:提升隔离级别

                2. 读已提交 read committed

                引发问题:不能读重复数据 模拟银行查账

                解决:提升隔离级别

                3. 可重复读 repeatable read(mysql的默认隔离级别)

                引发问题:幻读  

                解决:提升隔离级别

                4. 串行化 serializable

         2、实现事物的过程

                ①将事务的提交方式设置手动

                set autocommit = 0;

                ②开启事务

                start transaction;

                ④指定当前事务的命令

                update account set money = money - 100 where username = '小明';

                update account set money = money + 100 where username = '小红';

                ⑤成功提交,失败回滚

                commit;

                rollback;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/462864.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号