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`:<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子句
查询所有字段
select * from 表名;
查询去重操作
select distinct 字段 from 表名;
别名格式(表别名、列别名)
1.select * from 表名 as 别名; 2.select 字段名 as 别名 from 表名;
查询条件
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;