MySQL基础教程

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

MySQL

1.安装MySQL

(一)下载MySQL

方法1:通过本机电脑上传,下载地址:MySQL :: Download MySQL Community Server

方法2:在线安装

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.25-linux-glibc2.12-x86_64.tar.xz

(二)解压MySQL

tar zxvf 文件名
tar zxvf mysql-8.0.25-linux-glibc2.12-x86_64.tar.gz

(三)移动目录

mv 文件名 指定目录

目录为:/usr/local/

mv mysql-8.0.15-linux-glibc2.12-i686.tar.xz /usr/local/

(四)修改目录名

mv mysql-8.0.15-linux-glibc2.12-i686 mysql

(五)创建data文件夹

mkdir -p /data/mysqldata/

(六)创建用户组(初始化需要)

groupadd mysql

(七)创建用户(初始化需要)

useradd -r -g mysql mysql

(八)用户赋予权限

chown mysql:mysql -R /data/mysqldata
chmod 750 /data/mysqldata/ -R

(九)配置MySQL环境变量

vi /etc/profile

在最后一行添加环境变量

export PATH=$PATH:MySQL解压路径/mysql-8.0.25/bin:MySQL解压路径/mysql-8.0.25/lib

(十)MySQL配置

vim /etc/my.cnf

添加以下配置信息

[mysql]
# 客户端默认字符集
default-character-set=utf8mb4
[client]
prt=3306
socket=/var/lib/mysql/mysql.sock
[mysqld]
port=3306
server-id=3306
user=mysql
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# 设置mysql的安装目录
basedir=/home/mysql-8.0.25 #你自己的安装路径
# 设置mysql数据库的数据的存放目录
datadir=/data/mysqldata/mysql  #你自己创建的数据库文件存放路径
log-bin=/data/mysqldata/mysql/mysql-bin
innodb_data_home_dir=/data/mysqldata/mysql
innodb_log_group_home_dir=/data/mysqldata/mysql
character-set-server=utf8mb4
lower_case_table_names=1
autocommit=1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]
#设置mysql数据库的日志及进程数据的存放目录
log-error=/data/mysqldata/mysql/mysql.log
pid-file=/data/mysqldata/mysql/mysql.pid

(十一)初始化MySQL

cd /usr/local/mysql-8.0.25/bin/
./mysqld --defaults-file=/etc/my.cnf --basedir=/home/mysql-8.0.25/ --datadir=/data/mysqldata/mysql --user=mysql --initialize

初始化参数详解

--defaults-file=/etc/my.cnf 指定配置文件(一定要放在最前面,至少 --initialize 前面)
--user=mysql 指定用户
--basedir=/home/mysql-8.0.25/ 指定安装目录
--datadir=/data/mysqldata/mysql/ 指定初始化数据目录

保存临时密码

点击查看图片.jpg)

(十二)启动MySQL

# 1.复制 mysql.server 文件
cp /home/mysql-8.0.25/support-files/mysql.server /etc/init.d/mysqld
# 2.赋予权限
chown 777 /etc/my.cnf
chmod +x /etc/init.d/mysql
chmod +x /etc/init.d/mysqld
# 3.检查一下/var/lib/mysql是否存在,否进行创建
mkdir /var/lib/mysql #目录和my.cnf保持一致
# 4.赋予权限
chown -R mysql:mysql /var/lib/mysql/ #目录和my.cnf保持一致
# 5.启动数据库
service mysql start #或者 systemctl mysql start 

(十三)设置密码

mysql -u root -p

输入临时密码

点击查看图片

修改密码

ALTER USER 'root'@'localhost' IDENTIFIED with mysql_native_password BY '新密码';

(十四)MySQL开机自启

#1.查看是否有mysql服务
chkconfig --list
#2.进入mysql软件目录,复制mysql.server文件到 /etc/rc.d/init.d目录下
cp   /home/mysql-8.0.25/support-files/mysql.server  /etc/rc.d/init.d/mysql
#3.给/etc/rc.d/init.d/mysql赋权可执行权限
chmod  +x  /etc/rc.d/init.d/mysql
#4.添加mysql服务
chkconfig --add mysql
#5.使mysql服务开机自启
chkconfig --level 345 mysql on
#6.查看MySQL服务 ,重启服务器,测试是否成功。
chkconfig --list

MySQL语法

(一)登录MySQL数据库

  • 本机登录

    mysql –u用户名 –p密码
  • 远程登录

    mysql --host=ip地址 --user=用户名 --password=密码

(二)SQL语句分类

数据定义语言:简称DDL(Data Definition Language),用来定义数据库对象:数据库,表,列等。关键字:create,alter,drop等

数据操作语言:简称DML(Data Manipulation Language),用来对数据库中表的记录进行更新。关键字:insert,delete,update等

数据控制语言:简称DCL(Data Control Language),用来定义数据库的访问权限和安全级别,及创建用户。

数据查询语言:简称DQL(Data Query Language),用来查询数据库中表的记录。关键字:select,from,where等

(三)数据类型

点击查看图片

(四)数据库操作-DDL

创建数据库

    create database 数据库名

CREATE DATABASE [IF NOT EXISTS] db_name CHARACTER SET charset_name COLLATE collation name;

    参数详解

    db_name:数据库命名

    CHARACTER SET:指定字符集

    COLLATE:指定字符集的校对规则

    IF NOT EXISTS:在创建数据库前查询是否已存在同名的数据库,防止冲突

选择数据库
USE db_name;
修改数据库
ALTER DATABASE db_name DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

    参数详解

    db_name:数据库命名

    utf8:字符编码格式

    utf8_general_ci:排序规则

删除数据库
DROP DATABASE IF EXISTS db_name;
查看数据库
SHOW DATABASES;

(六)表的操作-DDL

创建表
create table 表名(
字段名 类型(长度) 约束,
字段名 类型(长度) 约束
);

例:
CREATE TABLE Student(
 Stu_id INT NOT NULL AUTO_INCREMENT COMMENT '主键(自增长)',
 Stu_name CHAR(50) NOT NULL COMMENT '姓名',
 Stu_sex tinyint(2) NOT NULL DEFAULT 1 COMMENT '性别 1-男,2-女',
 Stu_address CHAR(50) NULL COMMENT '地址',
 Stu_contact CHAR(50) NULL COMMENT '联系方式',
PRIMARY KEY(Stu_id)
)COMMENT = '学生表' ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
注:
PRIMARY KEY 为“主键”
COMMENT为“注释”
查看表
  • 查看所有表   

    SHOW TABLES;
  • 查看表结构

    desc db_name;
删除表
  • 谨慎执行

    drop table 表名;
修改表
  • 增加列

    alter table 表名 add 列名 类型(长度) 约束;
  •  修改表名

    ALTER TABLE 表名 rename to 新表名;
  • 修改表的字符集

    alter table 表名 character set 字符集;
  •  修改列的数据类型

    ALTER TABLE 表名 MODIFY COLUMN Stu_name char(20);
  •    修改列名

    ALTER TABLE 表名 CHANGE COLUMN Stu_sex sex CHAR(1) NULL DEFAULT 'M';
  •     删除列

    ALTER TABLE 表名 DROP COLUMN Stu_contact;

(七)数据操作-DML

  •    插入数据

    INSERT [INTO] tbl_name [(col_name, ...)] {VALUES | VALUE} ({expr | DEFAULT}),(...),,,
    例:
    INSERT INTO tbl_name 
    (id, name, sex, address, contact)
     VALUES
    (123, '小明', 1, '深圳市', '龙岗区');

    插入部分值

INSERT [INTO] tbl_name SET col_name = {expr | DEFAULT}, ...
例:
INSERT INTO tbl_name 
SET name='小红', address='深圳',sex=0;
  •    修改数据

    UPDATE tbl_name SET col_name={expr | DAFAULT} [,col_name2={expr | DEFAULT}].. [WHERE where_condition] [ORDER BY..] [LIMIT row_count]
    例:
    UPDATE tbl_name SET address='北京市' WHERE id=333;
  • 删除数据

    DELETE FROM tbl_name [WHERE where_condition]
    例:
    DELETE FROM tbl_name WHERE id=123;
  • 查询数据

    SELECT语句查询执行顺序:
    1.FROM子句与多表连接查询
    2.WHERE 子句与条件查询
    3.GROUP BY 子句与分组数据
    4.HAVING子句
    5.SELECT阶段
    6.ORDER BY 子句
    7.LIMIT子句
  1. 查询所有字段

    select * from 表名;
  2. 查询去重操作

    select distinct 字段 from 表名;
  3. 别名格式(表别名、列别名)

    1.select * from 表名 as 别名;
    2.select 字段名 as 别名 from 表名;
  4. 查询条件

    1.SELECT * FROM tbale_name WHERE money >1000;
    2.SELECT * FROM tbale_name WHERE money BETWEEN 2000 AND 5000;
    3.SELECT * FROM tbale_name WHERE money =1000 OR money =5000 OR money =3500;
    4.SELECT * FROM tbale_name WHERE money IN(1000,5000,3500);
    5.SELECT * FROM tbale_name WHERE name LIKE "%小明%";
    6.SELECT * FROM tbale_name WHERE name IS NOT NULL;
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
关系型数据库 MySQL Java
centos7安装mysql教程及Navicat平替软件
【8月更文挑战第17天】本教程详述CentOS 7上安装MySQL的过程。首先确保移除任何预装的MySQL组件,然后通过wget获取并安装MySQL的YUM源。可以选择安装特定版本如5.7或8.0。安装MySQL服务器后,启动服务并查找初始密码。登录MySQL后应立即更改密码,并可根据需要设置远程访问权限。此外,还推荐使用免费开源的DBeaver作为数据库管理工具,提供了安装步骤以方便管理和操作MySQL数据库。
|
28天前
|
SQL 关系型数据库 MySQL
PHP与MySQL交互之基础教程
【8月更文挑战第31天】 在数字世界中,数据是推动一切的核心力量。本文将引导你探索PHP与MySQL的协同工作,通过实际代码示例,展示如何建立连接、执行查询以及处理结果集。无论你是初学者还是希望巩固知识的开发者,这篇文章都将为你提供宝贵的实践知识。
|
1月前
|
关系型数据库 MySQL 网络安全
MySQL主从复制详细教程
配置MySQL的主从复制是一个细致的过程,需要仔细遵循上述步骤进行。一旦配置完成并运行正常,主从复制将大大提高数据库的可用性和读写性能。在操作过程中,务必保持谨慎,确保数据的一致性和安全性。
115 0
|
2月前
|
关系型数据库 MySQL Linux
Docker安装mysql详细教程, mysqld: Can‘t read dir of ‘/etc/mysql/conf.d/‘(报错已解决)
Docker安装mysql详细教程, mysqld: Can't read dir of '/etc/mysql/conf.d/' (Errcode: 2 - No such file or directory) 已解决
|
2月前
|
SQL Oracle 关系型数据库
MySQL、SQL Server和Oracle数据库安装部署教程
数据库的安装部署教程因不同的数据库管理系统(DBMS)而异,以下将以MySQL、SQL Server和Oracle为例,分别概述其安装部署的基本步骤。请注意,由于软件版本和操作系统的不同,具体步骤可能会有所变化。
157 3
|
2月前
|
关系型数据库 MySQL 数据库
MySQL 保姆级教程(八):创建计算字段
MySQL 保姆级教程(八):创建计算字段
|
2月前
|
关系型数据库 MySQL
MySQL 保姆级教程(五):数据过滤
MySQL 保姆级教程(五):数据过滤
|
2月前
|
关系型数据库 MySQL
MySQL 保姆级教程(四):过滤数据
MySQL 保姆级教程(四):过滤数据
|
2月前
|
SQL 关系型数据库 MySQL
MySQL 保姆级教程(一):了解 SQL
MySQL 保姆级教程(一):了解 SQL
|
2月前
|
关系型数据库 MySQL
MySQL 保姆级教程(七):用正则表达式进行搜索
MySQL 保姆级教程(七):用正则表达式进行搜索