Mysql基础
------------恢复内容开始------------
数据库的基本概念
为什么要学习数据库?
更加方便的对开发中的数据进行管理!
我们之前是如何对数据进行管理的呢?IO流。
但是接下来我有这样一个需求:将下面的user.txt文件中的王五年龄修改为35
张三 23 男 李四 24 男 王五 25 女 赵六 26 女 周七 27 男
我们要如何实现呢?
这一套操作太麻烦了,而现在我们有一种更加方便的方式来完成这个需求了,这种方式就是数据库!
数据库的介绍
用于存储和管理数据的仓库
英文单词为DataBase,简称DB!
它的存储空间很大,可以存放百万条,千万条,上亿条数据。
使用一种统一的方式操作数据库------SQL
MySQL是一个最流行的关系型数据库管理系统之一。由瑞典MySql AB公司开发。后被Oracle公司收购
关系型数据库是将数据保存在不同的数据表中,而不是将所有数据放在一个大仓库内,而且表与表之间
还可以有关联关系,这样就提高了访问速度以及提高了灵活性。
MySQL所使用的SQL语句是用于访问数据库最常用的标准化语言。
免费(6版本之前)。
数据库的安装
为了能狗更好的体现真实开发环境,我们将MySQL安装在Linux系统上,以此来模拟公司的数据库服务器。
2.MySQL数据库安装
alt + p -------> put d:/setup/mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar
解压 mysql 的安装包
mkdir mysql tar -xvf mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar -C mysql/
安装客户端
cd mysql/ rpm -ivh mysql-community-client-5.7.27-1.el7.x86_64.rpm --force --nodeps
安装服务端
rpm -ivh mysql-community-server-5.7.27-1.el7.x86_64.rpm --force --nodeps
修改mysql默认字符集
vi /etc/my.cnf 添加如下内容: [mysqld] character-set-server=utf8 collation-server=utf8_general_ci -- 需要在最下方填写 [client] default-character-set=utf8
启动mysql服务
service mysqld start
登录mysql
mysql -u root -p 敲回车,输入密码 初始密码查看:cat /var/log/mysqld.log 在root@localhost: 后面的就是初始密码
修改mysql登录密码
set global validate_password_policy=0; set global validate_password_length=1; set password=password('密码');
授予远程连接权限
//授权 grant all privileges on *.* to 'root' @'%' identified by '密码'; //刷新 flush privileges;
关闭Linux系统防火墙
systemctl stop firewalld.service
DDL操作数据库和数据表
数据库,数据表,数据的关系
MySQL服务器中可以创建多个数据库
每个数据库中可以包含多张数据表
每个数据表中可以存储多条数据记录
客户端通过数据库管理系统来操作MySQL数据库
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.DDL-操作数据库
-
R(Retrieve):查询
-
查询所有数据库
-
-- 查询所有数据库 SHOW DATABASES;
查询某个数据库的创建语句
-- 标准语法 SHOW CREATE DATABASE 数据库名称; -- 查看mysql数据库的创建格式 SHOW CREATE DATABASE mysql;
-- 标准语法 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;
-- 标准语法 ALTER DATABASE 数据库名称 CHARACTER SET 字符集名称; -- 修改数据库db4的字符集为utf8 ALTER DATABASE db4 CHARACTER SET utf8; -- 查看db4数据库的字符集 SHOW CREATE DATABASE db4;
-- 标准语法 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;