Mysql数据库基础操作

mysql数据库

用来进行一个记录


  • 00.MySQL数据库启动

1.启动服务
service mysql start (mysql) systemctl start mariadb
2.连接数据库
mysql 【-h 主机】 【-u 用户】【-p 用户密码】

  • 01.数据库操作

1.创建数据库
create database 【库名】;
2.使用库
use 【库名】;
3.修改库的字符集
方式一:create database 【库名】 charset='utf8'; 方式二:alter database 【库名】 charset='utf8';
4.数据库的备份
mysqldump 【‐u用户 】 【‐p用户密码】 【数据库名】> 【数据库存放路径】
5.查看数据库
show databases; show create database【数据库名】;
6.删除数据库
drop database 【库名】;

  • 02.表的操作

1.创建表
create table 【表名】( 字段1名 字段1类型 ,字段2名 字段2类型,...);
2.修改表结构
a.添加新的字段 alter table 【表名】 add 【字段名】【字段类型】comment ' 备注内容' ;
b.修改表某个字段类型 alter table 【表名】 modify 【字段名】【新字段类型】;
c. 删除表中某个字段 alter table 【表名】 drop 【字段名】;
d. 修改表名 alter table 【旧表名】rename to 【新表名】;
3.表的增删查改
a.插入 insert into 【表名】(字段1,字段2) values(字段1值,字段2值);
b.删除 drop from 【表名】 where 【条件】;
`
c.查找
select 【字段名】from 【表名】 where 【条件】;

  • 代表所有字段

    d.修改
    update 【表名】set 【字段名=字段值】 where 【条件】;
    `
  • 04.select 配合使用

a. order by 按照某一字段进行排序,默认是升序,加上desc 变成降序。 select 【字段名】 from 【表名】order by 【字段名】desc /asc;
b. group by 按照某一字段进行分组,一把还需要配合别的使用如,sum select sum【字段名】 from 【表名】 group by 【字段名】where【条件】;
c. sum 用来求和 select sum【字段名】 from 【表名】group by 【字段名】 where 【条件】;
d. avg用来求平均值 select avg【字段名】from 【表名】group by 【字段名】where 【条件】;
e. count求出某行或者某列的个数 select count【字段名】from 【表名】where 【条件】;
f. max/min 求某一字段的最大值和最小值。 select max【字段名】from 【表名】where 【条件】;
例子:
这里写图片描述
这里写图片描述
这里写图片描述

  • 05.内外连接

1.内连接,就是将连个表进行直接的相连,就是我们知道的笛卡尔积的形式。
2. 外连接,包括左连接,右连接
左连接,以左表为主,右连接以右表为主。
a.左连接 select 【字段名】 from 【表名1】 left join 【表名2】 on 【连接条件】;
b.右连接 select 【字段名】 from 【表名1】right join 【表名2】 on 【连接条件】;
外连接的效果:
这里写图片描述

  • 06.多表查询及子查询

1.多表查询,就是在表1取一行和表2的每一行连接,也就是笛卡尔积,所以我们通常会加上条件。
2.子查询就是在一个查询的结果集中在进行条件的进一步条件的确定,然后进行查询。

1. 多表查询
select * from 【表1】,【表2】;
2. 子查询
MariaDB [base]> select * from stu where stu.id in (select Sno from SC);

多表查询
这里写图片描述
子查询
这里写图片描述

  • 07.视图

1.什么是视图?视图也是一种表,一种虚拟表,不占用磁盘空间,其他的和表也很相似,也是一组一组行列的表。
2.视图是由查询定义的
3.视图的修改会影响表的内容,表的内容修改会影响视图的内容,两个东西像一个实时同步。
4.视图不能建立索引。

1.创建视图
create viem 【视图名】 as select【语句】;
2.例子
MariaDB [base]> create view v as select id,name from stu;
Query OK, 0 rows affected (0.01 sec)

MariaDB [base]> select* from v;
+----+------+
| id | name |
+----+------+
|  1 | a    |
|  2 | b    |
|  3 | c    |
+----+------+
3 rows in set (0.00 sec)

  • 08.索引

1.什么是索引,索引就是下标,我们可以理解为一个数字的下标,有了下标那么查找的时间复杂度就变成O(1)。
2.索引是数据库提高性能一个重要的手段,有了索引在大量数据面前我们就可以很快查找到我们需要数据了,举个例子,在一个有10亿数据面前我们如果查找做了索引的字段那么也就是30次就查找到了【时间复杂度O(lgN)】,十分快的,但是如果我们查找一个没有做索引的字段,那么我们的事件查找的话,那么就比较吓人了【时间复杂度O(N)】。
3.索引原理,实际上对一个字段加上了索引,那么数据库就会在内部将数据变成一颗B*或者B+树,这样就增加了它查找的效率 。
缺点如下 :作为增加了它的查找效率,那么相应的也要损失一点空间,即每个数据都需要一个二叉树的节点进行存储,其次呢每次对其进行插入操作时,速度会有点影响,但是不会很大,所以可见,当你需要多一个字段进行频繁的查找工作时,你就需要增加索引,但是要进行大量插入,而非查找,那就不建议做索引了。
4.常见索引:主键索引(primary key),唯一索引(unique),普通索引(index),全文索引(fulltext)

索引操作:

1.普通索引
alter table t add index(empno);

2.主键索引
a. MariaDB [base]> create table t (id int primary key ,name varchar(20)); 
b. MariaDB [base]> alter table t add primary key(id);

3. 唯一索引
a. MariaDB [base]> create table t (id int unique,name varchar(20));
b. MariaDB [base]> alter table t add unique(id);
c. MariaDB [base]> alter table t drop index id;

这里写图片描述

  • 09.事务

1.什么是事务?事务就是一组dml语句组成,这些语句在逻辑上存在相关性,这一组dml语句要么全部成功,要么全部失败,是一
个整体。
2.事务基本操作
a. 开启一个事物 start transaction;
b.设置回滚点 savepoint 保存点名;
c.回滚到保存点 rollback to 保存点名;
`
d. 提交事务
commit

  1. 注意事务一旦提交了,就无法回滚到保存点了。
  2. InnoDB支持事务,MyISAM不支持事务
    3.事务的隔离级别
    a. 语法:
    set session transaction isolation level read uncommitted;

    b. 概念解释:
  3. 脏读:一个客户端(事务)会读取到另外一个客户端(事务)没有提交的修改数据。
  4. 不可重复读:同一个查询在同一个事务中多次进行,由于其他提交事务所做的修改或删除,每次返回不同的结果集,此时发生不可重复读。
  1. 幻读:同一个查询在同一个事务中多次进行,由于其他提交事务所做的插入操作,每次返回不同的结果集,此时发生幻读。

4.事务的性质(ACID)

  1. 原子性(Atomicity):
    原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生要么都不发生。
  2. 一致性(Consistency):
    事务必须使数据库从一个一致性状态变到另外一个一致性状态。
    3. 隔离性(Isolation):
    事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。
  3. 持久性(Durability):
    持久性是指一个事务一旦被提交,它对数据库中的数据的修改就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响。
    `

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值