MySQL基础(一) 前置安装以及DDL详解

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MySQL基础(一) 前置安装以及DDL详解

前言

MySQL 具有开源免费、跨平台性、可扩展性、安全性和社区支持等优点,这些优势使得它成为当今最主流的数据库之一,如今的互联网时代我们难免会与各种数据打交道。因此,学习一些数据库相关知识也是必要的。


一.数据库的相关概念

1.1数据库定义:

数据库就是按照一定的规律将数据(文本类型的数据,图像、音乐、声音等各种数据)存储和管理数据的计算机软件系统。简言之,可以理解为存放数据的“仓库”。

1.2数据库(管理系统)类型:

数据库管理系统是用来管理数据库而设计的电脑软件系统,常被称为数据库,如mysql数据库。

1.2.1:关系数据库管理系统

全名(Relational Database Management System:RDBMS)

主要特点是采用表格的储存方式, 数据以行和列的方式进行存储,要读取和查询都十分方便,具有灵活性

例如:MySQL、Microsoft SQL Server(仅支持windows下运行)、Oracle、MariaDB(MySQL的代替品,英文维基百科从MySQL转向MariaDB)、Sybase等。

1.2.2: 非关系型数据库(NoSQL):

分类:
键值(Key-Value)存储数据库:主要用到一个有特定的键和指针指向特定数据的哈希表。
                    优点:简单、易部署.  缺点:对其中部分值进行查询或更新时效率比较低.
                    例如:Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB.
列存储数据库: 键指向了多个列,这些列是由列家族来安排的。
         如:Cassandra, HBase, Riak.
文档型数据库:数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。 
             同第一种键值存储相类似,可
             以看作是键值数据库的升级版.允许之间 嵌套键值.
         如:CouchDB, MongoDb,SequoiaDB(国内开源)
图形(Graph)数据库:使用灵活的图形模型,并且能够扩展到多个服务器上。NoSQL数据库没有标
                 准的查询语言(SQL),因此进行数据库查询需要制定数据模型。
              如:Neo4J, InfoGrid, Infinite Graph。

相比之下去掉了关系数据库的关系型特性,数据之间无关系,通常以数据集的方式,大量的数据集中存储在一起,类似于键值对、图结构或者文档。增强了架构可拓展性,高性能,数据库结构简单。

二.MySQL数据库安装和配置

2.1:MySQL下载:

进入MySQL官网下载适合操作系统版本的压缩文件,然后将压缩文件解压到一个非中文的目录中。(由于路径识别的时候出现中文可能会报错)

可以下载5.7.24这个版本 ,原因是各个库支持的最完善且相对于最新版本更加的稳定。

2.2:MySQL安装与配置:

方法一:MySQL具体安装方法可参见MySQL技能树,这里就不再赘述了。

方法二:通过phpstudy直接安装MySQL的,比较方便。phpstudy下载官网

2.3:MySQL登录与退出:

1.cmd命令行启动(添加环境变量后):

在命令提示符窗口中运行net start mysql,此时,我们已经成功启动MySQL服务。

net start mysql   

运行net stop mysql即可停止MySQL服务。

net stop mysql

可以通过运行mysqladmin -u root password 1234修改默认账户密码,这里的1234指默认管理员(即root账户)的密码。

mysqladmin -u root password 1234

在命令行中输入:mysql -uroot -p,按照提示输入密码 ,即登录成功。

登录命令中的参数:mysql -u用户名 -p密码 -h要连接的mysql服务器的ip地址(默认127.0.0.1) -P端口号(默认3306);

退出MySQL时输入:exit或quit.

2.phpstudy启动图形化mysql界面:

输入用户名,密码,执行即可

也可以将mysql安装路径加入环境变量用命令行启动mysql,不过要先通过phpstudy启动mysql服务。

2.4:MySQL卸载(cmd):

第一步:运行net stop mysql

第二步:运行mysqld -remove mysql

第三步:删除MySQL目录及相关的环境变量。

三.MySQL语句学习

3.1:SQL简介:

SQL是Structured Query Language的缩写,是一种用于管理关系型数据库的语言。它可以用于创建、修改和查询数据库中的数据,以及控制数据库的访问权限和安全性。

优点:因其简单、易学、灵活、高效等

被广泛应用于企业级应用、Web应用、移动应用等领域。

3.2:SQL类型:

SQL语言包括数据定义语言(DDL)数据操作语言(DML)数据查询语言(DQL)数据控制语言(DCL) 等多种类型,每种类型都有不同的语法和用途。(sql语句结尾以分号";"结束)

3.2.1 数据定义语言DDL

全名(Data Definition Language):

用来对进行数据库对象的创建,删除和修改的,所以DDL主包括create(创建)drop(删除)alter(修改)truncate (清空)show(查询)use(使用)

其中数据库对象包含数据库(database)、表(table)、列(column)、索引(index)、约束(constraint)、视图(view)、触发器(trigger)、存储过程(StoredProcedure)和函数(function).这里仅以库,表,列进行阐述。

SQL语句中关键词(如create,database,select等单词)建议使用时候都用大写,否则可能不能正常执行

3.2.1.1:show:

查所有库名:show databases;

查某个库下所有表名:show tables;

查询表结构:desc 表名称;

拓:(select * from 表名;查询表中内容)

3.2.1.2:create:

创建数据库: create database 数据库名;

创建表:create table 表名称(

字段名1 数据类型,

字段名2 数据类型,

字段名n 数据类型 #这里是不需要加上,的

);

补充:      
SQL创建表时可以定义多种数据类型,常见的数据类型包括:
1. 整数类型(INT、INTEGER):用于存储整数,可以指定长度和是否有符号。
2. 小数类型(DECIMAL、NUMERIC、FLOAT、DOUBLE):用于存储小数,可以指定精度和范围。
3. 字符串类型(CHAR、VARCHAR、TEXT):用于存储字符串,可以指定长度和字符集。
4. 日期时间类型(DATE、TIME、DATETIME、TIMESTAMP):用于存储日期和时间,可以指定格式和时区。
5. 布尔类型(BOOLEAN):用于存储真假值。
6. 二进制类型(BLOB、BINARY、VARBINARY):用于存储二进制数据,如图片、音频等。
需要注意的是,不同的数据库管理系统可能支持不同的数据类型,而且在定义数据类型时需要考虑数据的实际需求和存储
空间的限制。
3.2.1.3:use:

使用(进入某个数据库):use 数据库名; (分号可以不加,还是建议加上养成习惯…)

3.2.1.4:alter:

关于MySQL对于数据库的重命名:

在MySQL中,尽管有RENAME命令,但是它并不支持重命名数据库1。如果需要更改一个数据库

的名称,可以使用下列步骤进行:

1. 创建一个新的数据库,并将源数据库中的数据导入到新数据库中。
2.  删除原数据库。
下面是具体的步骤:
1.  创建一个新的数据库:

CREATE DATABASE new_database_name;

2.  将原数据库中的数据导入到新数据库中:

USE new_database_name;

SOURCE /path/to/old_database.sql;

其中,将SOURCE后的路径改为源数据库的.sql文件所在路径。

3.  删除原数据库:

DROP DATABASE old_database_name;

通过以上步骤,可以把原数据库重命名为一个新的数据库名了。注意在重命名数据库的过程中,务必要先备份数据,新数据库的名称不要与已存在的数据库重名。该方法也适用于其他关系型数据库软件。
• 1

对表操作:

修改表名:

alter table 表名 rename to 新的表名;

增加一列:

alter table 表名 add 列名 数据类型;

修改数据类型:

alter table 表名 modify 列名 新数据类型;

修改列名和数据类型:

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

删除列:

alter table 表名 drop 列名;

(修改表名时要注意命名规范,否则会报错,比如数字,下划线等的位置通常有要求)

(其他命令可以自行演示)

3.2.1.5:drop:

drop table 表名; drop database 数据库名;

删除表(判断表/数据库是否存在):

drop table if exists 表名; drop table if exists 数据库名;

3.2.1.6:truncate:

truncake 表示清空,具体表现为把一个表结构摧毁然后重构,只剩表头。

使用语法
truncate的作用是清空表或者说是截断表,只能作用于表。truncate的语法很简单,后面直接跟表名即可。
例如: truncate table     tbl_name 或者 truncate tbl_name 。执行truncate语句需要拥有表的drop权限,
从逻辑上讲,truncate table类似于delete删除所有行的语句或drop table然后再create table 语句的组合。
为了实现高性能,它绕过了删除数据的DML方法,因此,它不能回滚。尽管truncate table与delete相似,
但它被分类为DDL语句而不是DML语句。

3.2.2:数据操作语言 DML(Data Manipulation Language)

用于对数据库中的数据进行增、删、改等操作,以INSERT、UPDATE、DELETE三种指令为核心,分别代表插入(意指新增或创建)、更新(修改)与删除(销毁)。

3.2.3:数据查询语言DQL(Data Query Language)

用于从数据库中查询数据,包括SELECT等命令。

基本结构是由SELECT子句,FROM子句,WHERE

子句组成的查询块:

SELECT <字段名表>

FROM <表或视图名>

WHERE <查询条件>

3.2.4:数据控制语言DCL(Data Control Language):

对数据访问权进行控制的指令,它可以控制特定用户账户对数据表、查看表、存储程序、用户自定义函数等数据库对象的控制权,包括GRANT、REVOKE等命令。

拓展:

1.(DDL)自增列值

创建表:create table 表名称(

字段名1 数据类型 (PRIMARY KEY AUTO_INCREMENT),

字段名2 数据类型,

字段名n 数据类型 #最后不需要逗号了

)(ENGINE INNODB);

如果在 MySQL 建表时设置了某一列为自增列,那么在插入数据时,可以不用指定该列的值,MySQL 会自动为该列生成一个唯一的自增值。例如,建立一个名为 users 的表,其中 id 列为自增列,可以按照以下方式插入数据:

INSERT INTO users (name, age) VALUES ('John', 25);

在这个例子中,我们没有指定 id 列的值,MySQL 会自动为其生成一个唯一的自增值。如果需要获取插入数据后的自增值,可以使用 LAST_INSERT_ID() 函数,例如:

INSERT INTO users (name, age) VALUES ('John', 25);
SELECT LAST_INSERT_ID();

这样可以获取到插入数据后 id 列的自增值。需要注意的是,只有在插入数据时才会生成自增值,如果直接修改该列的值,MySQL 不会自动为其生成自增值。

在 MySQL 中,自增值是由系统自动生成的,一般情况下是不能手动修改的。如果需要修改自增值的规则,
可以通过修改表结构来实现。具体来说,可以使用 `ALTER TABLE` 命令来修改自增值的起始值和步长。
例如,以下命令可以将 `users` 表的自增值起始值设置为 100,步长设置为 2:
ALTER TABLE users AUTO_INCREMENT = 100, AUTO_INCREMENT_INCREMENT = 2;

需要注意的是,修改自增值的规则可能会影响到已有数据的自增值,因此需要谨慎操作。如果需要修改已有数据的自增值,可以使用 UPDATE 命令手动修改。但是需要注意,手动修改自增值可能会导致数据不一致,因此需要谨慎操作。



  1. 虽然有些文章说可以用rename重命名,但是我试了他们的命令会报错…
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
关系型数据库 MySQL 数据安全/隐私保护
MySQL8.0生产环境二进制标准安装
MySQL8.0生产环境二进制标准安装
|
1月前
|
安全 关系型数据库 MySQL
Linux(CentOS6)安装MySQL5.6
Linux(CentOS 6)系统上安装MySQL 5.6版本的详细步骤,包括准备数据存放目录、创建用户、下载安装包、初始化数据库、配置服务脚本、设置环境变量等操作。
136 1
|
1月前
|
关系型数据库 MySQL Java
centos7安装mysql教程及Navicat平替软件
【8月更文挑战第17天】本教程详述CentOS 7上安装MySQL的过程。首先确保移除任何预装的MySQL组件,然后通过wget获取并安装MySQL的YUM源。可以选择安装特定版本如5.7或8.0。安装MySQL服务器后,启动服务并查找初始密码。登录MySQL后应立即更改密码,并可根据需要设置远程访问权限。此外,还推荐使用免费开源的DBeaver作为数据库管理工具,提供了安装步骤以方便管理和操作MySQL数据库。
|
8天前
|
存储 SQL 关系型数据库
MySQL的安装&数据库的简单操作
本文介绍了数据库的基本概念及MySQL的安装配置。首先解释了数据库、数据库管理系统和SQL的概念,接着详细描述了MySQL的安装步骤及其全局配置文件my.ini的调整方法。文章还介绍了如何启动MySQL服务,包括配置环境变量和使用命令行的方法。最后,详细说明了数据库的各种操作,如创建、选择和删除数据库的SQL语句,并提供了实际操作示例。
49 13
MySQL的安装&数据库的简单操作
|
1天前
|
关系型数据库 MySQL Linux
Linux 安装 mysql 【使用 tar.gz | tar.xz安装包-离线安装】
在Linux系统中使用tar.xz压缩包安装MySQL数据库的详细步骤。包括下载MySQL压缩包,解压到指定目录,创建mysql用户和组,设置目录权限,初始化MySQL,配置my.cnf文件,启动服务,以及修改root用户密码。此外,还提供了如何设置Windows远程登录MySQL服务器的方法。
Linux 安装 mysql 【使用 tar.gz | tar.xz安装包-离线安装】
|
1天前
|
关系型数据库 MySQL Linux
Linux 安装 mysql【使用yum源进行安装】
这篇文章介绍了在Linux系统中使用yum源安装MySQL数据库的步骤,包括配置yum源、安装MySQL服务、启动服务以及修改root用户的默认密码。
Linux 安装 mysql【使用yum源进行安装】
|
29天前
|
弹性计算 关系型数据库 MySQL
centos7 mysql安装及配置
本文详细介绍了在阿里云服务器ECS上通过yum源安装MySQL 8.0.12的过程,包括更新yum源、下载并安装MySQL源、解决安装过程中可能遇到的问题等步骤。此外,还介绍了如何启动MySQL服务、设置开机自启、配置登录密码、添加远程登录用户以及处理远程连接异常等问题。适合初学者参考,帮助快速搭建MySQL环境。
139 8
centos7 mysql安装及配置
|
25天前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
1月前
|
存储 关系型数据库 MySQL
2022年最新最详细的MYSQL数据库安装(详细图解过程、毕成功)
这篇文章提供了2022年最新最详细的MYSQL数据库安装教程,包括下载、安装步骤图解、初始化配置文件创建、登录密码修改注意事项,并分享了作者在安装过程中遇到的常见问题及其解决方法。
2022年最新最详细的MYSQL数据库安装(详细图解过程、毕成功)
|
1月前
|
关系型数据库 MySQL Linux
在Linux中,新安装mysql后怎样提升mysql的安全级别?
在Linux中,新安装mysql后怎样提升mysql的安全级别?