阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Ubuntu中MySQL数据库操作详解

373次阅读
没有评论

共计 6534 个字符,预计需要花费 17 分钟才能阅读完成。

1.Ubuntu 安装 MySQL客户端流程:

-  登录 navicat 官网下载

-  将压缩包拷贝 ubuntu 中进行解压,解压命令:tar zxvf navicat.tar.gz

Ubuntu 中 MySQL 数据库操作详解 

-  进入解压目录,运行命令./start_navicatt

Ubuntu 中 MySQL 数据库操作详解

Ubuntu 中 MySQL 数据库操作详解

-  如果试用是灰色的则进行下一步

-  删除 .navicat64/ 隐藏文件,再次运行即可

Ubuntu 中 MySQL 数据库操作详解

Ubuntu 中 MySQL 数据库操作详解

-  如果试用界面是乱码的则修改配置文件 , 改成如下形式 (vim 常用操作请查看我的另一篇随记)

  Ubuntu 中 MySQL 数据库操作详解

Ubuntu 中 MySQL 数据库操作详解

-  再次执行第三步操作即可,试用到期可再次删除那个隐藏文件

2.ubuntu下安装 mysql 服务端

-  sudo apt-get install mysql-server

3. 验证安装结果

-  命令:ps aux|grep mysql,跟下图一样则说明安装成功

Ubuntu 中 MySQL 数据库操作详解

4.mysql数据库运行状态

- 4.1  sudo service mysql status  查看数据库运行状态

- 绿点 正在运行  

Ubuntu 中 MySQL 数据库操作详解

- 白点 停止运行

Ubuntu 中 MySQL 数据库操作详解

- 4.2  sudo service mysql start   启动数据库服务

  Ubuntu 中 MySQL 数据库操作详解

- 4.3  sudo service mysql stop    停止数据库服务

  Ubuntu 中 MySQL 数据库操作详解

- 4.4  sudo service mysql restart 重启数据库服务

Ubuntu 中 MySQL 数据库操作详解

 5. 登录数据库

- 5.1  通过客户端软件登录,详见步骤1

- 5.2  通过命令登录

  - 登录远程主机:mysql [-h 192.168.205.129 –P 3306] –uroot -p

- h 连接服务端数据库的 IP 地址

- P(大写 ) 连接的端口号,一般为3306

- u 用户权限

- p(小写 ) 输入密码,一般为mysql

登陆成功:  

  Ubuntu 中 MySQL 数据库操作详解

6. 退出数据库客户端

-  exit、quit、ctrl+d

7. 配置 msyql 服务允许远程登录访问

- 7.1 数据文件夹:

Ubuntu 中 MySQL 数据库操作详解

 

 

- 7.2 数据库配置文件:

Ubuntu 中 MySQL 数据库操作详解

- 7.3 关闭防火墙

- sudo apt-get install ufw 安装防火墙

- sudo ufw enable 打开防火墙

- sudo ufw status 查看防火墙状态

- sudo ufw disable 关闭防火墙

- 7.4 更改配置文件的 bind-address

- 进入配置文件

 Ubuntu 中 MySQL 数据库操作详解

- 修改 mysqld.cnf 中的bind-addres,首先给用户可执行权限

  Ubuntu 中 MySQL 数据库操作详解

- 再次使用 vim 修改bind-address

  Ubuntu 中 MySQL 数据库操作详解

- 修改成功

- 再把文件权限改回去

Ubuntu 中 MySQL 数据库操作详解

-7.5 修改权限

- 权限 update `user` set host=”%”where user=”root”

- 允许指定用户访问:

GRANT ALL PRIVILEGES ON *.* TO ‘root’@’10.10.11.12’ IDENTIFIED BY ‘FEFJay’ WITH GRANT OPTION; flush privileges;(IP这里,可以使用 % 来表示所有IP)

- 重启服务即可

8. 创建数据库

- 8.1 使用客户端软件创建数据库

- 8.2 使用命令创建数据库

-  create database 数据库名

-  create database 数据库名 character set utf8

-  show create database 数据库名

- 8.3 修改数据库编码

-  alter database 数据库名 character set utf8

- 8.4 删除数据库

-  drop database 数据库名

- 8.5 切换、使用数据库

 –  use 数据库名

- 8.6 显示当前数据库

-  select database()

- 8.7 展示所有数据库

-  show databases

9. 创建数据表

- 9.1 使用命令创建数据表

-  create table 表名

(

字段 1 字段类型,

字段 2 字段类型,

字段 3 字段类型……

)

- 9.2 常用数据字段类型

- 整数

  Ubuntu 中 MySQL 数据库操作详解

- 小数

  Ubuntu 中 MySQL 数据库操作详解

- 字符串

  Ubuntu 中 MySQL 数据库操作详解

- 日期时间类型

  Ubuntu 中 MySQL 数据库操作详解

Ubuntu 中 MySQL 数据库操作详解

- 枚举

10. 查询

- 10.1 查询数据表中全部的行和列

- select col1,col2,col3….from table

- select * from table

- 10.2 查询表的部分列

- select col1,col2,col3…from table

- 10.3 给查询出来的数据列设置别名

- select col1 as“别名 1”,col2 as‘ 别名2’…from table

- select col1‘别名 1’,col2‘ 别名2’….from table

- 注意多表查询重名问题

- 10.4 DISTINCT关键字的使用

- 作用:消除结果集中的重复数据

- 语法:select distinct col from table

- 注意:要求所有的字段都相同才会去重

- 10.5 LIMIT关键字的使用

- 作用:指定结果的显示范围

- 语法:

-  select * from table limit m,n

m:起始的位置

n:显示的数量

-  select * from table limit m

m:从第一条开始共显示 m 条数据 

11. 插入数据

- 11.1 所有列都插入值

- 语法:insert into table values(v1,v2,v3….)

- 特点:列值同数,列值同序

- 11.2 为指定列插入值

- 语法:insert into table(col1,col2,col3) values(v1,v2,v3)

- 特点:指定顺序,列值对应

- 11.3 一次性插入多条记录

- 语法:insert into table(co1,col2,col3…)values

(v1,v2,v3),

(v1,v2,v3),

(v1,v3,v3)…..

12.修改数据

- 12.1 修改指定数据

- 语法:update table set {col1=value1}[…n]where expressioin

- 12.2 修改全部数据

- 语法:update table set {col1=value1}[…n]

13. 删除数据

- 13.1 使用 delete 命令删除数据

- 语法:delete from table where expression

- 13.2 逻辑删除

- 13.3 使用 truncate 命令删除数据

- truncate table

- 13.4 区别

Delete语句删除数据,自动编号没有恢复到默认值。但是 truncate 重新设置了自动编号

通过 truncate 语句删除数据表数据,不能根据条件删除,而是一次性删除,delete语句可以根据条件进行删除

- truncate在清空表中数据的时候,速度要比 delete 语句快的多

14. 对列进行增删改查

- 14.1  增加一列

- alter table tablename add 列名 数据类型

- 14.2  删除一列

- alter table tablename drop column 列名

- 14.3 修改列的数据类型

- alter table tablename modify 列名 数据类型

-14.4 修改列的数据类型并且改名

- alter table tablename change old_colname new_colname 数据类型

15. 约束

- 问题1:数据冗余

Ubuntu 中 MySQL 数据库操作详解

- 问题 2:失去了完整性

  Ubuntu 中 MySQL 数据库操作详解

- 问题 3:数据缺少唯一标识

Ubuntu 中 MySQL 数据库操作详解

- 问题 4:失去了实体完整性

Ubuntu 中 MySQL 数据库操作详解

- 问题 5:失去了引用完整性

Ubuntu 中 MySQL 数据库操作详解

- 问题 6:失去了域完整性

Ubuntu 中 MySQL 数据库操作详解

- 15.1 约束概念:限定数据库中数据的一套规则

- 15.2 约束作用:保证数据的准确性、完整性、可靠性、联动性

- 15.3 数据库常用约束:

- 主键约束

- 作用:让数据具有唯一标识
- 语法:
create table table_primarykey
(
id int primary key
)
- 特点:自动设置非空约束

- 自动增长

- 作用:使数据自动增长,一般给主键设置
- 语法:
create table table_autoincrement
(
id int primary key auto_increment
)

- 唯一约束

- 作用:保证数据的准确性
- 语法:
create table table_unique
(
qqnumber int unique
)
- 特点:可以为多列设置唯一约束

- 非空约束

- 作用:保证数据不为空
- 语法:
create table table_notnull
(
name varchar(30) not null
)

- 默认约束

- 作用:给字段设置默认值
- 语法:
create table table_default
(
sex char(2) default‘男’
)

- 检查约束

- 作用:检查数据的完整性
- 语法:
create table table_check
(
sex char(2) check(‘男’or‘女’)
)
create table table_enum
(
sex enum(‘男’,’女’) 
)

- 外键约束

- 作用:让两表之间产生联动关系
- 语法:
create table class
(
id int primary key auto_increment,
classname varchar(30) not null
create table score
(
id int primary key auto_increment,
chinese_score int not null,
foreign key(id) references class(id)
)
- 要想删除 class 表和 score 表,首先要删除 score

16. 为数据增补约束

- 16.1 添加 / 删除主键约束

- 添加主键约束

- 语法:alter table table_name add constrain con_name primary key(col_name)

- 删除主键约束

- 16.2 外键约束

- 添加外键约束

- 语法:alter table table_name add constrain con_name foreign key(col_name) references table(col_name)

- 删除外键约束 

- 16.3 检查约束

- 添加检查约束

- 语法:alter table table_name add constraint con_name check(expression)

- 删除检查约束

- 16.4 默认约束

- 添加默认约束

- 语法:alter table table_name alter col_name default value

- 删除默认约束

- 16.5 自动增长

- 添加自动增长

- 语法:alter table table_name modify column col_name type auto_increment

- 删除自动增长

17. 条件查询

- 17.1 普通条件查询

- 语法:select * from table where expression

- where:将查询到的数据,通过 where 后的 expression 一条一条的进行筛选,符合要求则显示,不符合要求则去除。

Ubuntu 中 MySQL 数据库操作详解

Ubuntu 中 MySQL 数据库操作详解

- 17.2 模糊查询

- 语法:

-  between….and….

-  范围查询  in or

-  like 通配符 %_

- 17.3 查询空值的运算符

- is null

18. 数据排序

- 作用:对查询出的数据进行升序或降序排列

- 语法:select col11,col2,col3…from table order by order_by_collist[asc/desc]

- 18.1 多列排序:

- 关注点:升序、降序、优先级

Ubuntu 中 MySQL 数据库操作详解

 19. 数据分组

- 语法:select col1..col2.. from table Group by col分组配合排序

- 注意:如果使用了 group by 分组,那么 select 不允许出现其他列,除非这些列包含在分组中

20. 聚合函数

- 作用:对多条数据做统计功能

- 注意:在使用聚合函数后,select后不允许出现其他列,除非这些列包含在分组中或者聚合函数中

  Ubuntu 中 MySQL 数据库操作详解

- 20.1 常用聚合函数

Ubuntu 中 MySQL 数据库操作详解

- 20.2 聚合函数与 Group by 语句配合使用

 Ubuntu 中 MySQL 数据库操作详解

21. Having by语句

- 作用:having bygroup by 之后得到数据进行进一步的筛选

- 类似于 select where的关系。Whereselect 后的数据进行进一步的筛选。

- Having by group by 后的数据进行筛选

22. Limit关键字的使用

- 语法:

select * from table limit m

select * from table limit m,n

23. sql语句执行顺序

— from 表名

— where

— group by

— select distinct *

— having

— order by

— limit

24. 连接查询

- 当查询结果的数据来自多张表的时候,需要将多张表连接成一个大的数据集,再选择合适的列进行返回。

Ubuntu 中 MySQL 数据库操作详解

Ubuntu 中 MySQL 数据库操作详解

Ubuntu 中 MySQL 数据库操作详解

- 24.1 内连接:选择两种表中交叉的数据进行返回

- 24.2 左连接:选择左表全部数据以及右边中和左表相同的数据

- 24.3 右连接:选择右表全部数据以及左表中和右表相同的数据

- 24.4 笛卡尔积:两张表数据行的乘积

25. 自关联

- 概念:让某张表自己和自己进行连接。

26. 子查询

- 概念:将一个查询结果在另一个查询中使用,称之为子查询。

- 语法:select * from (select col1,col2,col3 from table) as t

- 26.1 子查询分类

- 独立子查询:

- 子查询可以独立运行

- 相关子查询:

- 子查询中引用了父查询的结果或者父查询中引用了子查询的结果,子查询和父查询都不可以独立运行

-26.2 子查询注意点:

- 如果主查询使用到子查询的数据,则必须给子查询起一个表名。

- 在子查询使用关系运算符的时候要注意,因为子查询有可能返回多个值。

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计6534字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7973969
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY 公司之前花钱购买的 ssl 证书快...
星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛 NAS-7:手把手教你免费内网穿透 -Cloudflare tunnel 前言 大家好,我是星...
安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装 Black 群晖 DSM7.2 系统安装教程(在 Vmware 虚拟机中、实体机均可)! 前言 大家好,...
仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

还在忍受动辄数百兆的“全家桶”监控软件?后台偷占资源、界面杂乱冗余,想查个 CPU 温度都要层层点选? 今天给...
2025年11月28日-Cloudflare史诗级事故:一次配置失误,引爆全球宕机

2025年11月28日-Cloudflare史诗级事故:一次配置失误,引爆全球宕机

2025 年 11 月 28 日 -Cloudflare 史诗级事故: 一次配置失误,引爆全球宕机 前言 继今...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站 - 手机博物馆 -CHAZ 3D Experience 一句话介绍:一个用 3D 方式重温...
星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

  星哥带你玩飞牛 NAS-16:飞牛云 NAS 换桌面,fndesk 图标管理神器上线! 引言 哈...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...
星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的 NAS 中! 大家对「数据安全感」的需求越来越高 ...
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...