java第二阶段之MySQL数据库

本文详细介绍了MySQL数据库的三大操作类别:DDL(数据定义语言)、DML(数据操作语言)和DQL(数据查询语言)。涵盖了从创建和管理数据库、表,到数据的增删改查,再到事务处理的各个关键命令。此外,还提及了子查询和连接查询等高级操作,是学习MySQL数据库操作的全面指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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:大于最大的

                <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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皇正经

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值