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/ 指定初始化数据目录

保存临时密码

在这里插入图片描述

(十二)启动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`:<u>数据库命名</u>

`CHARACTER SET`:<u>指定字符集</u>

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

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

选择数据库

USE db_name;

修改数据库

ALTER DATABASE db_name DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
**参数详解**:

`db_name`:<u>数据库命名</u>

`utf8`:<u>字符编码格式</u>

`utf8_general_ci`:<u>排序规则</u>

删除数据库

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;
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Litch_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值