关于myspl数据库安装及基本用法
发布日期:2022-03-02 13:23:43 浏览次数:38 分类:技术文章

本文共 4012 字,大约阅读时间需要 13 分钟。

myspl数据库

顾名思义是存储数据的地方,数据库是按照数据结构来组织,存储和管理数据的仓库,是关系型的数据库,和之前学的redis数据库不同,redis数据库是非关系型数据库,想怎么存就怎么存

常用的关系型数据库

Oracle Mysql SqlServer DB2 Postgresql Sqlite access
最常用的为Mysql 因为免费及开源 Oralce也很顶 但收费

主键不能重复 唯一的 就像身份证一样

外键用于关联两张表

centos7中mysql下载

https://blog.csdn.net/qq_36582604/article/details/80526287
可以看上方链接大佬的教程,极其详细,试了众多教程中,终于在这位大佬中解决了
tips温馨提示
mysql的所有操作都要加;;;这个符号
进入mysql数据库

mysql -uroot -p

执行以上命令 然后输入密码 然后输入下方命令`

use mysql;

一开始是进入数据库,后面是选择进入哪个数据库

(一开始mysql是没有密码的,上方链接大佬会教如何设置mysql密码)
在这里插入图片描述
查看有多少数据库

show databases;

在这里插入图片描述

查看数据库表

show tables;

结果为如图

在这里插入图片描述
查看表的结构

desc user;

在这里插入图片描述

mysql图中的1号区域相当于列表中的列名,下面我展示一个列表列名,方便大家理解,红色箭头指向即列名在这里插入图片描述

mysql图中2号区域相当于列表的数据的类型,也就是说是存的是数字还是字符串在这里插入图片描述
mysql图中的3号区域是规定当前字段是否可以为空,比如上方的name下的空必须填

Key下方的PRI primary中文主键的意思

Default即默认值 填一个默认值
Extra额外的数据额外的参数
**作用:**通过这个表可得知表结构各个数据要求及类型

查看所有表的内容

select * from user\G;

在这里插入图片描述

ps-ef为查看所有进程ps-ef |grep mysql查看所有mysql进程

在这里插入图片描述

查看表中的内容

select User from user;

在这里插入图片描述

创建新的数据库

mysql> create database name; name为创建的数据库名(只支持英文)create database name charset utf8; 创建支持中文的数据库

删除数据库

drop database oldboy;

通过show create database test; 可以看到我刚创建的test数据库,默认只支持英文存储 如果想中文,只能删除再重新创建,支持中文的创建语法上方有

 

在这里插入图片描述

创建数据库用户

grant all on test.* to 'tzy'localhost'%' identified by '123456'; 意思是tzy这个用户只能本机访问test数据库 密码为123456

查看我对数据库的权限

show grants for tzy;

在这里插入图片描述

在这里插入图片描述
给系统赋值权限,然后该用户只能访问指定数据库了

使用用户访问数据库

首先新建一个会话

mysql -utzy -p-u后为你前面设置的用户名 -p是密码的意思 可以回车然后输入密码

在这里插入图片描述

如图我们就成功的用户登录了,下面我们看看是不是只能访问特定的数据库
在这里插入图片描述
创建数据库表
学会了如何查看数据库,结构,表,name我们就来创建一下数据库表吧,为了方便查找创建的表,我们可以通过 use name 进入到我们刚才创建的数据库中进行创建表# 下图students手误打成studets
在这里插入图片描述

studets为表名 id name等为列名 列名后接的为每个字段的类型anto_increment为自增not null为不能为空primary key为主键

插入数据

insert into 表名 (列名,列名) values(对应的内容)通过图中代码我们成功创建了数据,并且重复创建会实现上方创建时定义的自增,如果创同一id的数据,会报错,因为数据库保证数据唯一性

在这里插入图片描述

查询数据

查看单独的列下数据为 select 列名 from 表名 ;

添加过滤查询

select 列名 from 表名 limet num offset num;limet num为返回几条记录数 offset为起始值的偏移量就是从第几个开始查询的意思 例如图 跳过前两个查3条数据

在这里插入图片描述

同时还可以添加条件查询

select * from studets where xx>3 and xx

在这里插入图片描述

修改数据

例如我们修改studets表中第4个id的名字跟年龄update 表名 set name="tanzhiyong",age=23 where id=4;

在这里插入图片描述

删除数据

delete from 表名 where name=xx;如图就成功删除了该name的人

在这里插入图片描述

数据排序

select * from 表名 order by 列名;这样子打印 默认是打印升序by后方加入desc 即降序排列 如图所示

在这里插入图片描述

分组统计

select 列名,count(*) from 表名 group by 列名;count(*)指的是将此表所有的都作统计 结果如图所示可以给count起名 后接 as 名字(输入你想打印的东西的名字)

在这里插入图片描述

统计总数

select sum(列名) from 表名; 下面我们统计一个年龄总和看看

在这里插入图片描述

例如下图统计了两人在表里出现的年龄加起来各是多少,例如tanyoujie出现了2次 他是24岁 那么两次就是48 代码后方 加with rollup即可统计两个总和

在这里插入图片描述

同时还可以对总年龄名字进行赋值 下图红线name后方输入你想赋的值,蓝色横线为统计总年龄数 如果你不修改年龄
图中 all age 将打印 null 空的意思
在这里插入图片描述
修改表本身

插入列名:alter table 表名 add 新列名 enum("类型","类型")下图例子看图表可得我们插入了一个性别列 enum里我定义为enum("M","F")男女的意思

在这里插入图片描述

删除一整列

alter table 表名 drop 列名;

修改数据类型

alter table studets modify sex enum('M','F') not null;注意sex的数据类型必须也跟着阐述即enum后的('M','F'),原来sex这个字段可以填空的值 现在改为not null 不可空,改不可空时,sex字段里必须都有空才可以修改

在这里插入图片描述

修改列名即字段名

alter table 表名 change 原列名 新列名 数据类型;

在这里插入图片描述

modify 改数据类型 change改数据列名

修改表名

aleter table 原表名rename 新表名;我这个错误的students终于可以改了

查看表的创建记录

show create table 表名;

在这里插入图片描述

创建外键

  • 图为我创建一个新的表 方便前面另一张表使用外键关联起来
  • 前面几步,步骤都一样 我来说说下面几步没出现过的
  • KEY fk_students_key (stu_id),
    CONSTRAINT fk_students_key FOREIGN KEY (stu_id) REFERENCES students (id)
    KEY 取名(哪个字段是外键)
    CONSTRAINT 给外键取名 可以不写 FOREIGN KEY (谁是外键)
    REFERENCES 被关联的表名(被指向的列名)

在这里插入图片描述

mysql连接查询

  • 首先我们先依靠上面学的知识,简单创建两张表,如图所示
  • 在这里插入图片描述
    查看两张表共同的数据即交集
第一种:select * from 表名 inner join 表名 表名.字段=表名.字段inner join为内部链接 连接两个表 然后定义在哪个表里查什么数据
第二种:select 表名.* 表名.*from 表名,表名 where表名,字段=表名,字段

在这里插入图片描述

差集

select * from 表名 left或right 表名 on 表名,字段=表名,字段left就求第一个表名与第二个的差集 差集相当于两个集合相减right 的意思就是反过来 求第二个与第一个的差集

在这里插入图片描述

并集
mysql中没有直接求并集的语句 我们可以用两个差集代表,就是说求a跟b的差集,再求b跟a的差集 即为并集

select * from A left join B on A.a=B.b union select * from A right join B on A.a=B.b;

在这里插入图片描述

事务与索引
事务:
事务用于处理操作量大,复杂度高的数据,比如你是房东,租客退房,要他退房,退押金等操作 多步操作构成一个事务!copy一段老师的解释
在这里插入图片描述

  • 事务的操作为begin即开始事务
  • 如果出现问题或者中途断机,操作都不会真正保存
  • 出现问题可以如图一样rollback回滚 会撤销之前操作
  • 没有问题则输入commit提交 这才真正保存
  • 在图中可以看到 rollback后上面操作没有真正的保存,如果rollback是commit即保存了
  • 在这里插入图片描述
    索引:
    索引是用来查找数据时更快的,在小数据上看不出来变化,但是如果上亿个数据就有天差地别的变化了,大大的提升为了查询速度,索引好处随多,但是滥用索引,会降低更新表的速度,对表进行修改时,mysql要保存数据,还要保存索引文件,带来方便的同时也会占据空间。
    普通索引的创建
create index index名 on 表名(列名);

在这里插入图片描述

查看索引

show index from 表名;

删除索引

drop index 索引名 on 表名; index为索引的意思

唯一索引

create unique index 索引名 on 表名(列名);与上方普通索引差不多,唯一索引的字段区域内不能有重复的值,可以为空

在这里插入图片描述

好了,本章就记录到这 每走一步都算数

转载地址:https://blog.csdn.net/WOSHIBEIZHE/article/details/118055264 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:小白笔记-RabbitMQ消息队列
下一篇:小白笔记-Redis安装及基本操作

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月17日 01时03分40秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

app运行提示Unable to Initialize Unity Engine 2019-04-27
spring boot 与 Ant Design of Vue 实现修改按钮(十七) 2019-04-27
spring boot 与 Ant Design of Vue 实现删除按钮(十八) 2019-04-27
spring boot 与 Ant Design of Vue 实现角色管理布局以及角色的列表(十九) 2019-04-27
spring boot 与 Ant Design of Vue 实现新增角色(二十) 2019-04-27
spring boot 与 Ant Design of Vue 实现修改角色(二十一) 2019-04-27
spring boot 与 Ant Design of Vue 实现删除角色(补二十一) 2019-04-27
spring boot 与 Ant Design of Vue 实现组织管理布局的实现(二十二) 2019-04-27
spring boot 与 Ant Design of Vue 实现左侧组织树(二十三) 2019-04-27
spring boot 与 Ant Design of Vue 实现新增组织(二十四) 2019-04-27
spring boot 与 Ant Design of Vue 实现修改组织(二十五) 2019-04-27
spring boot 与 Ant Design of Vue 实现删除组织(二十六) 2019-04-27
spring boot 与 Ant Design of Vue 实现获取用户列表(二十七) 2019-04-27
spring boot 与 Ant Design of Vue 实现删除用户(三十) 2019-04-27
spring boot 与 Ant Design of Vue 鉴权体系获取用户信息的实现(三十二) 2019-04-27
Druid连接池实现自定义场景的多数据库的连接 2019-04-27
PL/SQL数据库管理工具的使用 2019-04-27
带你玩转属于自己的spring-boot-starter系列(一) 2019-04-27
带你玩转属于自己自己的spring-boot-starter系列(二) 2019-04-27
带你玩转属于自己的spring-boot-starter系列(三) 2019-04-27