DBA成长之路---mysql数据库服务基础(一)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

mysql 数据库服务
#主配置文件

/etc/my.cnf 

#查看服务状态

systemctl status mysqld

#数据库目录

/var/lib/mysql      

#数据库进程名

[root@mysql ~]#ps -C mysqld     
    PID TTY          TIME CMD
 5604 ?        00:00:00 mysqld

#默认端口号

[root@mysql ~]#netstat -pantu | grep 3306   
tcp6       0      0 :::3306                 :::*                    LISTEN      5604/mysqld    

#进程所属者

[root@mysql ~]#grep mysql /etc/passwd       
    mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/false

#进程所属组

[root@mysql ~]#grep mysql /etc/group        
mysql:x:27:
[root@mysql ~]# ps aux | grep mysqld
mysql     5604  0.2 16.8 1119216 171772 ?      Sl   21:36   0:00 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
root      5754  0.0  0.0 112660   972 pts/0    R+   21:39   0:00 grep --color=auto mysqld
[root@mysql ~]# ls -ld /var/lib/mysql
drwxr-x--x. 5 mysql mysql 4096 1219 21:36 /var/lib/mysql

#mysql 启动后自动生成的日志文件

[root@mysql ~]# ls /var/log/mysqld.log  
/var/log/mysqld.log

使用sql命令管理数据库

sql 命令分类
DDL数据定义语言     (create  alter  drop)
DML数据操作语言      ( insert  update   delete   select )
DCL数据控制语言      ( grant  revoke )
DTL数据事物语言      ( commit  rollback  savepoint )

把数据存储到数据库服务器上的过程

1,连接数据库服务器
客户端自己提供连接工具

2,创建库(文件夹)
数据库命名规则?
不能纯数字
不能有特殊符号
不能用关键字
唯一性

创建库

create database 库名;
mysql> create database gamedb;
#在对应数据库目录会生成相关文件

[root@mysql4-1 mysql]# ls /var/lib/mysql/gamedb/
db.opt

查看已有库

mysql> show databases;

删除库

mysql> drop database gamedb;
Query OK, 0 rows affected (0.00 sec)

[root@mysql4-1 mysql]# ls /var/lib/mysql/gamedb/
ls: 无法访问/var/lib/mysql/gamedb/: 没有那个文件或目录

切换库

use 库名;

mysql> use mysql;

查看当前所在的库

mysql> select database();
+---------------+
| database()    |
+---------------+
| NULL         |
+---------------+
1 row in set (0.00 sec)

查看库里已有的表

mysql> show tables;

3.建表(文件)

create table 库名.表名(
字段名 字符类型,
字段名 数值类型,
...
);

mysql> create table gamedb.stu(
        -> name char(10),
        -> age int
        -> );

插入表记录
insert into 库名.表名 values(值列表)

mysql> insert into gamedb.stu values ("jim",23),("tom",21);

查看表记录
select * from 库名.表名;

mysql> select * from stu;
+-------+--------+
| name   | age       |
+----------+----------+
| jim      |   23       |
| tom       |   21     |
+----------+----------+

查看表结构
desc 库名.表名

mysql> desc gamedb.stu;

删除表记录
delete from 库名.表名

mysql> delete from gamedb.stu;
Query OK, 2 rows affected (0.03 sec)
mysql> select * from stu;
Empty set (0.00 sec)

删除表
drop table 库名.表名

mysql> drop table gamedb.stu;
Query OK, 0 rows affected (0.24 sec)
mysql> show tables;
Empty set (0.00 sec)

mysql数据类型
支持的数据类型

数值型:整型,浮点型

整型:根据存储数值的范围整型分为:

    tinyint          smallint    mediumint      int               bigint
    1个字节     2个字节     3个字节         4个字节      8个字节

create table t3(age int unsigned);      #unsigned 不允许存储负数

浮点型:根据存储数值的范围分为:

单精度:float (n,m) n表是总位数,m表示小数位位数
        float(7,2) xxxxx.xx
                         99999.99
                        -99999.99 
双精度:double

数值类型 的宽度 是显示宽度,不能限制给字段赋值的大小,大小由类型决定
赋值 宽度为节省空间
宽度不够时:
默认用空格补位
zerofill #宽度不够用零补位
mysql> create table t24(id int(3) zerofill,age int(5) zerofill);
Query OK, 0 rows affected (0.40 sec)

mysql> insert into t24 values(2,2);
Query OK, 1 row affected (0.16 sec)

mysql> select * from t24;
+----------+------------+
| id        | age       |
+----------+------------+
|  002     |   00002    |
+---------+------------+
1 row in set (0.00 sec)
mysql> desc t24;

字符型: 定长 变长 大文本

     char       varchar blob/text
定长长度固定  空间换时间
变长长度随字符大小而改变    时间换空间

日期时间型

年 yesr  YYYY            1901-2155 可以使用两位数字给yesr赋值
日期 date     YYYYMMDD
时间 time     HHMMSS
日期时间
datetime    YYYYMMDDHHMMSS  如果不给其赋值 默认赋值NULL
timestamp   YYYYMMDDHHMMSS  如果不给其赋值 默认自动赋值当前时间

使用时间函数给日期赋值
now()       #当前时间

mysql> select now();
+-------------------------------------+
| now()                                  |
+-------------------------------------+
| 2017-12-20 03:49:11           |
+-------------------------------------+
1 row in set (0.00 sec)

year()  指定日期中的年

    mysql> select year( now());

month() 指定时间中的月份
day()       指定时间中的日子
date()  指定时间中的日期
time()  指定时间中的时刻

insert into t10 values ('tom',19,year(now()), time(now()),date(now()),now());

枚举型:字段的值只能在列举的范围内选择

字段名  enum(值列表) 单选
字段名  set (值列表) 多选

字段约束条件

设置字段约束条件:作用
Null  允许未空,默认设置
NOT NULL 不允许为空
Key     索引类型
Default 设置默认值,缺省为NULL

mysql> create table t13 (
        -> name char(10) not null,
        -> age tinyint default 23,
        -> sex enum('man','woman') not null default 'man'
        -> );
Query OK, 0 rows affected (0.37 sec)
mysql> desc t13;

修改表结构

alter table 表名 执行动作;

添加新字段

add 字段  类型(宽度)约束条件;         #添加末尾
add 字段  类型(宽度)约束条件 first;       #添加开头
add 字段  类型(宽度)约束条件 after 字段名;   #添加到某个字段后
mysql> alter table t11 add name char(10) first;
mysql> alter table t11 add mail varchar(30) default 'stu@tedu.cn';
mysql> alter table t11 add class char(10) default 'nsd1709' after name;

删除字段

drop 字段名
mysql> alter table t11 drop party,drop mail;

不修改的地方照抄原有的

修改字段类型

modify 字段  类型(宽度)约束条件;
mysql> alter table t11 modify name varchar(15) ;

修改字段名
change 源字段名 新字段名  类型(宽度)约束条件;
mysql> alter table t11 change meetting party timestamp not null;
修改表名
mysql> alter table t11 rename stuinfo;

mysql> use information_schema;
过滤某个数据库的约束
mysql> select * from table_constraints where table_schema='数据库名';









本文转自 Xuenqlve 51CTO博客,原文链接:http://blog.51cto.com/13558754/2057324,如需转载请自行联系原作者
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
122 3
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
166 2
|
2月前
|
存储 NoSQL MongoDB
基于阿里云数据库MongoDB版,微财数科“又快又稳”服务超7000万客户
选择MongoDB主要基于其灵活的数据模型、高性能、高可用性、可扩展性、安全性和强大的分析能力。
|
2月前
|
关系型数据库 MySQL 数据库
vertx 的http服务表单提交与mysql验证
本文介绍了如何使用Vert.x处理HTTP服务中的表单提交,并通过集成MySQL数据库进行验证,包括项目依赖配置、表单HTML代码和完整的Vert.x服务代码。
29 2
|
1月前
|
SQL 关系型数据库 数据库连接
"Nacos 2.1.0版本数据库配置写入难题破解攻略:一步步教你排查连接、权限和配置问题,重启服务轻松解决!"
【10月更文挑战第23天】在使用Nacos 2.1.0版本时,可能会遇到无法将配置信息写入数据库的问题。本文将引导你逐步解决这一问题,包括检查数据库连接、用户权限、Nacos配置文件,并提供示例代码和详细步骤。通过这些方法,你可以有效解决配置写入失败的问题。
87 0
|
3月前
|
SQL JavaScript 关系型数据库
Node服务连接Mysql数据库
本文介绍了如何在Node服务中连接MySQL数据库,并实现心跳包连接机制。
50 0
Node服务连接Mysql数据库
|
4月前
|
SQL 数据管理 关系型数据库
SQL与云计算:利用云数据库服务实现高效数据管理——探索云端SQL应用、性能优化、安全性与成本效益,为企业数字化转型提供全方位支持
【8月更文挑战第31天】在数字化转型中,企业对高效数据管理的需求日益增长。传统本地数据库存在局限,而云数据库服务凭借自动扩展、高可用性和按需付费等优势,成为现代数据管理的新选择。本文探讨如何利用SQL和云数据库服务(如Amazon RDS、Google Cloud SQL和Azure SQL Database)实现高效的数据管理。通过示例和最佳实践,展示SQL在云端的应用、性能优化、安全性及成本效益,助力企业提升竞争力。
80 0
|
4月前
|
关系型数据库 MySQL Java
【Azure 应用服务】App Service 无法连接到Azure MySQL服务,报错:com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
【Azure 应用服务】App Service 无法连接到Azure MySQL服务,报错:com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
187 0
|
4月前
|
Kubernetes 关系型数据库 MySQL
k8s练习--通过NFS+PV+PVC+POD,部署一个MySQL服务,并将MySQL的数据进行持久化存储
本文档介绍了如何使用Kubernetes (K8s)、NFS、PersistentVolume (PV)、PersistentVolumeClaim (PVC)和Pod来部署并实现MySQL服务的数据持久化存储。Kubernetes是一个用于自动化部署、扩展和管理容器化应用的强大平台。NFS作为一种网络文件系统协议,能够使Kubernetes集群中的Pod跨节点访问共享文件。PV和PVC机制则提供了持久化的存储解决方案,确保数据即使在Pod生命周期结束后仍得以保留。
227 0
|
4月前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用问题之连接到MySQL的从库时遇到其他服务也连接到了从库,该如何处理
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。