Mysql快速入门 1

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

1 数据库的基本概念

1.1 为什么要学数据库?

  • 之前我们如果想将一些数据实现永久化存储,可以怎么做呢?没错。使用IO流的技术将数据保存到本地文件中
  • 但是接下来我有这样一个需求:将下面的user.txt文件中的王五年龄修改为35
张三 23 男
李四 24 男
王五 25 女
赵六 26 女
周七 27 男

我们要如何实现呢?

  • 可以采用字符缓冲流,将每一行数据读取出来,封装为User对象。将多个User对象保存到集合中
  • 然后遍历集合,将王五对象的年龄修改为35,再重新将集合中的对象信息写回到文件中
  • 这一套操作太麻烦了,而现在我们有一种更加方便的方式来完成这个需求了,这种方式就是数据库!

1.2 什么是数据库?

  • 用于存储和管理数据的仓库
  • 英文单词为:DataBase,简称DB

1.3 数据库的好处?

  • 可以持久化存储数据
  • 方便存储和管理数据
  • 使用了统一的方式操作数据库 – SQL

1.4 常见的数据库有哪些?

2 MySQL数据库的介绍和安装

2.1 MySQL数据库介绍

  • 小型的数据库
  • 开源免费(6版本之前免费)
  • 所属于Oracle公司

2.2 MySQL数据库安装

1.通过secureCRT工具连接Linux系统

2.上传 mysql 的安装包

2.1 在/usr/local下新建mysql目录,用于存放mysql的安装包

cd /usr/local

mkdir mysql

2.2 将文件上传到/usr/local/mysql目录

alt + p —>cd /usr/local/mysql -------> put d:/setup/mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar


3.进入mysql目录,解压缩mysql 的安装包

cd /usr/local/mysql

tar -xvf mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar


4.进入mysql目录,安装客户端

cd /usr/local/mysql

rpm -ivh mysql-community-client-5.7.27-1.el7.x86_64.rpm --force --nodeps


5.进入mysql目录,安装服务端

cd /usr/local/mysql

rpm -ivh mysql-community-server-5.7.27-1.el7.x86_64.rpm --force --nodeps


6.修改mysql默认字符集 按i启用编辑,esc->:wq 保存退出

vi /etc/my.cnf


在文件最后添加如下内容:

[mysqld]

character-set-server=utf8

collation-server=utf8_general_ci

[client]

default-character-set=utf8


7.启动mysql服务

systemctl start mysqld.service


8.登录mysql

查看初始mysql密码:cat /var/log/mysqld.log

在root@localhost: 后面的就是初始密码

mysql -u root -p 敲回车,输入密码


9.修改mysql登录密码

set global validate_password_policy=0;

set global validate_password_length=1;

set password=password(‘root’);


10.授予远程连接权限

授权

grant all privileges on . to ‘root’ @’%’ identified by ‘root’;


刷新

flush privileges;


退出mysql客户端界面

exit


11.关闭Linux系统防火墙

systemctl status firewalld.service

systemctl stop firewalld.service

systemctl disable firewalld.service

12.重启虚拟机,使用SQLYog工具连接mysql

2.3 MySQL数据库登录

  • sqlyog工具登录mysql

3 SQL语句

3.1 数据库、数据表、数据的关系介绍

  • 数据库
  • 用于存储和管理数据的仓库
  • 一个库中可以包含多个数据表
  • 数据表
  • 数据库最重要的组成部分之一
  • 它由纵向的列和横向的行组成(类似excel表格)
  • 可以指定列名、数据类型、约束等
  • 一个表中可以存储多条数据
  • 数据
  • 想要永久化存储的数据

3.2 SQL介绍

  • 什么是SQL

Structured Query Language:结构化查询语言

其实就是定义了操作所有关系型数据库的规则。每一种数据库操作的方式可能会存在一些不一样的地方,我们称为“方言”。

SQL通用语法


SQL 语句可以单行或多行书写,以分号结尾。

可使用空格和缩进来增强语句的可读性。

MySQL 数据库的 SQL 语句不区分大小写,关键字建议使用大写。

数据库的注释:

单行注释:-- 注释内容 #注释内容(mysql特有)

多行注释:/* 注释内容 */

SQL分类


DDL(Data Definition Language)数据定义语言

用来定义数据库对象:数据库,表,列等。关键字:create, drop,alter 等

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

用来对数据库中表的数据进行增删改。关键字:insert, delete, update 等

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

用来查询数据库中表的记录(数据)。关键字:select, where 等

DCL(Data Control Language)数据控制语言(了解)

  • 用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT, REVOKE 等

3.3 DDL-操作数据库

  • R(Retrieve):查询
  • 查询所有数据库
-- 查询所有数据库
SHOW DATABASES;
  • 查询某个数据库的创建语句
-- 标准语法
SHOW CREATE DATABASE 数据库名称;
-- 查看mysql数据库的创建格式
SHOW CREATE DATABASE mysql;

C(Create):创建

  • 创建数据库
-- 标准语法
CREATE DATABASE 数据库名称;
-- 创建db1数据库
CREATE DATABASE db1;  
-- 创建一个已存在的数据库会报错
-- 错误代码:1007  Can't create database 'db1'; database exists
CREATE DATABASE db1;
  • 创建数据库(判断,如果不存在则创建)
-- 标准语法
CREATE DATABASE IF NOT EXISTS 数据库名称;
-- 创建数据库db2(判断,如果不存在则创建)
CREATE DATABASE IF NOT EXISTS db2;
  • 创建数据库、并指定字符集
-- 标准语法
CREATE DATABASE 数据库名称 CHARACTER SET 字符集名称;
-- 创建数据库db3、并指定字符集utf8
CREATE DATABASE db3 CHARACTER SET utf8;
-- 查看db3数据库的字符集
SHOW CREATE DATABASE db3;
  • 练习:创建db4数据库、如果不存在则创建,指定字符集为gbk
-- 创建db4数据库、如果不存在则创建,指定字符集为gbk
CREATE DATABASE IF NOT EXISTS db4 CHARACTER SET gbk;
-- 查看db4数据库的字符集
SHOW CREATE DATABASE db4;

U(Update):修改

  • 修改数据库的字符集
-- 标准语法
ALTER DATABASE 数据库名称 CHARACTER SET 字符集名称;
-- 修改数据库db4的字符集为utf8
ALTER DATABASE db4 CHARACTER SET utf8;
-- 查看db4数据库的字符集
SHOW CREATE DATABASE db4;

D(Delete):删除

  • 删除数据库
-- 标准语法
DROP DATABASE 数据库名称;
-- 删除db1数据库
DROP DATABASE db1;
-- 删除一个不存在的数据库会报错
-- 错误代码:1008  Can't drop database 'db1'; database doesn't exist
DROP DATABASE db1;
  • 删除数据库(判断,如果存在则删除)
-- 标准语法
DROP DATABASE IF EXISTS 数据库名称;
-- 删除数据库db2,如果存在
DROP DATABASE IF EXISTS db2;

使用数据库

  • 查询当前正在使用的数据库名称
-- 查询当前正在使用的数据库
SELECT DATABASE();
  • 使用数据库
-- 标准语法
USE 数据库名称;
-- 使用db4数据库
USE db4;

3.4 DDL-操作数据表

  • R(Retrieve):查询
  • 查询数据库中所有的数据表
-- 使用mysql数据库
USE mysql;
-- 查询库中所有的表
SHOW TABLES;
  • 查询表结构
-- 标准语法
DESC 表名;
-- 查询user表结构
DESC user;
  • 查询表字符集
-- 标准语法
SHOW TABLE STATUS FROM 库名 LIKE '表名';
-- 查看mysql数据库中user表字符集
SHOW TABLE STATUS FROM mysql LIKE 'user';

C(Create):创建

  • 创建数据表
  • 标准语法
CREATE TABLE 表名(
    列名1 数据类型1,
    列名2 数据类型2,
    ....
    列名n 数据类型n
);
-- 注意:最后一列,不需要加逗号
  • 数据类型
1. int:整数类型
  * age int
2. double:小数类型
  * score double(5,2)
  * price double
3. date:日期,只包含年月日     yyyy-MM-dd
4. datetime:日期,包含年月日时分秒  yyyy-MM-dd HH:mm:ss
5. timestamp:时间戳类型  包含年月日时分秒   yyyy-MM-dd HH:mm:ss  
  * 如果将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值
6. varchar:字符串
  * name varchar(20):姓名最大20个字符
  * zhangsan 8个字符  张三 2个字符
   char 字符
- 创建数据表
  ```sql
  -- 使用db3数据库
  USE db3;
  -- 创建一个product商品表
  CREATE TABLE product(
    id INT,       -- 商品编号
    NAME VARCHAR(30), -- 商品名称
    price DOUBLE,   -- 商品价格
    stock INT,      -- 商品库存
    insert_time DATE    -- 上架时间
  );

复制表

-- 标准语法
CREATE TABLE 表名 LIKE 被复制的表名;
-- 复制product表到product2表
CREATE TABLE product2 LIKE product;

U(Update):修改

  • 修改表名
-- 标准语法
ALTER TABLE 表名 RENAME TO 新的表名;
-- 修改product2表名为product3
ALTER TABLE product2 RENAME TO product3;
  • 修改表的字符集
-- 标准语法
ALTER TABLE 表名 CHARACTER SET 字符集名称;
-- 查看db3数据库中product3数据表字符集
SHOW TABLE STATUS FROM db3 LIKE 'product3';
-- 修改product3数据表字符集为gbk
ALTER TABLE product3 CHARACTER SET gbk;
-- 查看db3数据库中product3数据表字符集
SHOW TABLE STATUS FROM db3 LIKE 'product3';
  • 添加一列
-- 标准语法
ALTER TABLE 表名 ADD 列名 数据类型;
-- 给product3表添加一列color
ALTER TABLE product3 ADD color VARCHAR(10);
  • 修改列名称和数据类型
-- 修改数据类型 标准语法
ALTER TABLE 表名 MODIFY 列名 新数据类型;
-- 将color数据类型修改为int
ALTER TABLE product3 MODIFY color INT;
-- 查看product3表详细信息
DESC product3;
-- 修改列名和数据类型 标准语法
ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;
-- 将color修改为address,数据类型为varchar
ALTER TABLE product3 CHANGE color address VARCHAR(30);
-- 查看product3表详细信息
DESC product3;
  • 删除列
-- 标准语法
ALTER TABLE 表名 DROP 列名;
-- 删除address列
ALTER TABLE product3 DROP address;

D(Delete):删除

  • 删除数据表
-- 标准语法
DROP TABLE 表名;
-- 删除product3表
DROP TABLE product3;
-- 删除不存在的表,会报错
-- 错误代码:1051  Unknown table 'product3'
DROP TABLE product3;
  • 删除数据表(判断,如果存在则删除)
-- 标准语法
DROP TABLE IF EXISTS 表名;
-- 删除product3表,如果存在则删除
DROP TABLE IF EXISTS product3;


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
存储 关系型数据库 MySQL
【mysql】MySQL 分区快速入门
【mysql】MySQL 分区快速入门
177 0
|
SQL 安全 关系型数据库
云数据库 RDS SQL Server 快速入门(二)
云数据库 RDS SQL Server 快速入门(二)
151 0
|
7月前
|
关系型数据库 MySQL 数据库
Web 框架 Flask 快速入门(三)数据库-MySQL
数据库 1、数据库的安装与配置 这节用到flask的两个扩展,使用pip安装扩展就行
222 0
uiu
|
SQL 存储 分布式计算
Hive 快速入门与平台搭建 | 结合Mysql(一)
Hive 快速入门与平台搭建 | 结合Mysql(一)
uiu
533 0
Hive 快速入门与平台搭建 | 结合Mysql(一)
|
7月前
|
Web App开发 JavaScript 关系型数据库
百度搜索:蓝易云【NodeJS 了解和快速入门 - 实现 http 服务 & 操作 mysql教程。】
通过使用上述示例代码,您可以快速入门并实现Node.js的HTTP服务和操作MySQL数据库。您可以根据需要进一步扩展和定制这些代码以满足您的具体要求。
68 0
|
关系型数据库 数据库 PostgreSQL
云数据库RDS PostgreSQL 快速入门(二)
云数据库RDS PostgreSQL 快速入门(二)
169 1
|
关系型数据库 MySQL 网络安全
云数据库 RDS MySQL 快速入门(二)
云数据库 RDS MySQL 快速入门(二)
158 0
|
关系型数据库 MySQL
Mysql快速入门 2
Mysql快速入门
37 0
|
NoSQL 关系型数据库 MySQL
PHP快速入门13-MySQL数据库与Redis操作
PHP快速入门与实战,本篇文章介绍的内容,MySQL数据库与Redis操作,后续更多内容将收录在专栏PHP快速入门与实战。
131 0
|
SQL 安全 关系型数据库