学习大数据的第33天(mysql篇)——安装mysql以及一些sql语句
mysql数据库操作:
关系型:以行作为记录,列数相同
非关系型:以列作为记录,行数随便
服务器->数据库->表(行列组成的二维表格)->行
一、Linux上安装 mysql:
1、安装mysql5.7
下载yum Repository(在linux中还得先下载插件 yum install wget )
wget -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
2、安装yum Repository
yum -y install mysql57-community-release-el7-10.noarch.rpm
3、安装mysql5.7
yum -y --nogpgcheck install mysql-community-server
4、开机自启动
systemctl enable mysqld.service
5、启动mysql
systemctl start mysqld.service
查看状态
systemctl status mysqld.service
6、获取临时密码
grep “password” /var/log/mysqld.log
7、登录mysql
mysql -uroot -p
8、关闭密码复杂验证
set global validate_password_policy=0;
set global validate_password_length=1;
9、设置密码
alter user user() identified by “123456”;
10、修改权限
use mysql;
GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION; --修改权限
flush privileges; --刷新权限
select host,user,authentication_string from user; --查看权限
从linux操作
11、卸载yum Repository
因为安装了Yum Repository,以后每次yum操作都会自动更新,需要把这个卸载掉:
yum -y remove mysql57-community-release-el7-10.noarch
如果想要卸载mysql,一定得把注册表中的删除掉
卸载mysql
删除依赖包
rpm -qa |grep -i mysql
yum remove mysql-community mysql-community-server mysql-community-libs mysql-community- common
清理文件
find / -name mysql
rm -rf 文件名
二、mysql的基本命令
开始之前先做好准备工作:解决mysql自带的问题:
在navicate中创建好的数据库中运行:
set@@global.sql_mode=‘STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION’;
然后关闭连接重新打开
SQL语句的学习:
1、展示所有数据库:
show databases;
show create database shujia;
运行结果:CREATE DATABASE shujia
/*!40100 DEFAULT CHARACTER SET latin1 */
字符集改成utf-8,可以在创建数据库的时候更改,或者执行:
create database shujia default character set utf-8;
或者修改mysql的配置文件,改完之后不要再改了,因为mysql服务器的编码集,表的编码集默认和库一致
-
编辑配置文件:```vim /etc/my.cnf``
[client]
default-character-set = utf8mb4
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci -
保存之后重启mysql
systemctl restart mysqld
登陆查看编码集是否正确:
show variables like “%char%”;
2、创建数据库
create database 数据库名称;
create database if not exists shujia; 创建不存在的数据库
3、删除数据库
drop database 数据库名称
注意:如果想要删除的数据库名称不存在,则会报错,所以一般要输出:drop database if exists 数据库名称
4、创建表
create table students(
id int,
name varchar(255),
age int
);
常用的属性:
字段属性:
not null:没给值数据为默认值(varchar默认值为空)
AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1
PRIMARY KEY关键字用于定义列为主键,您可以使用多列来定义主键,列间以逗号分隔
ENGINE 设置存储引擎,CHARSET 设置编码
default null:没给值数据就是null
default 值:设置字段的默认值
注意:主键不重复的列
测试代码:
-- 创建数据库
-- create database test;
-- 删除数据库
-- drop database test;
-- show:可以查看所有的库 所有的表 还可以查看具体的详细信息
-- show 创建语句
-- show tables;
-- CREATE DATABASE `shujia` /*!40100 DEFAULT CHARACTER SET utf8mb4 */
drop database shujia;
create database shujia;
show create database shujia;
-- Date 和 time 的区别
-- 年月日 时分秒
-- 简单的建表语句
use shujia;
-- 格式:
-- create table 表明(
-- 字段名字 字段类型
-- 字段2,
-- ...
-- 字段n
-- )
-- varchar 必须需要给定固定的大小,int 可以不加因为int会默认加上长度为11
-- engine=INNODB DEFAULT CHARSET(utf-8) 设置引擎和编码集,不过我们在mysql的配置文件中设过了
-- create table students(
-- id int,
-- name varchar(255),
-- age int
-- );
-- 自增只能加给数值
-- drop table if exists students;
-- 常用的属性
-- create table students(
-- id int not null AUTO_INCREMENT,
-- name varchar(255) not null,
-- age int,
-- PRIMARY KEY(id)
-- );
--
-- enum 类型 所修饰的字段有固定的值
drop table if exists students;
create table students(
id int AUTO_INCREMENT,
name varchar(255) not null,
age int DEFAULT 18, #无论字段是否为null都可以输入
sex enum('男','女','未知') DEFAULT '未知',
PRIMARY KEY(id)
);