暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL01:MySQL配置及简单操作

Hu说编程 2021-07-10
301

1、初识MySQL

  • JavaEE:企业级Java开发 Web

  • 前端(页面:用于展示数据)

  • 后台(连接点:连接数据库JDBC,链接前端(控制试图的跳转,给起前端传递数据等))

  • 数据库(DB)(存数据,txt,Excel,Word等)

代码+数据库 ==> 操作系统+数据结构与算法 ==> 体系结构、编译原理、实践经验等

1.1、数据库流行?

1 、岗位需求

2、大数据时代,每天产生数据量足够大,如何有效处理大数据

3、被迫需求:产生的数据如何高效存放

4、数据库是各个软件体系中最核心的存在:即如何获取数据、操作数据、存放数据、使用数据等

1.2、数据库简介

数据仓库,是一个软件,安装在操作系统之上。SQL,可以存储大量数据

作用:存储数据、管理数据

1.3、数据库分类

关系型数据库:SQL

  • MySQL,Oracle,Sql Server,DB2,SQLlite

  • 通过表跟表之间,行和列之间的关系进行数据存储。学生信息表,课程表等

非关系型数据库: NoSQL   (not noly)

  • Redis,MongDB

  • 对象存储,通过对象的属性来决定数据

DBMS(数据库管理系统)

  • 数据库的管理软件,科学有效的管理、维护和获取数据

  • MySQL,是当下最流行的关系型数据库管理系统

1.4、MySQL简介

MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

体积小、速度快,总体拥有成本低。必会的一个SQL

大中小型网站均有在用。集群扩大

1.5、安装MySQL

1、官网下载zip安装包并解压到指定目录

2、配置环境变量:我的电脑->属性->高级->环境变量->Path

选择Path后,在最后添加:MySQL安装文件(zip解压文件)下的bin目录

即将此目录D:\Environment\mysql-8.0.25-winx64\bin添加到环境变量中

3、在mysql-8.0.25-winx64目录下新建并编辑my.ini配置文件,编辑内容如下:

[mysqld]basedir=D:\Environment\mysql-8.0.25-winx64\ #此路径为MySQL安装文件路径datadir=D:\Environment\mysql-8.0.25-winx64\data\ # 此目录在后面配置时会自动生成port=3306skip-grant-tables #这里是初始安装时跳过密码检查,用户名默认root

4、管理员模式下启动CMD,并将路径切换到MySQL下的bin目录,然后输入mysql-install
安装mysql

cd /d D:\Environment\mysql-8.0.25-winx64\bin

5、接着输入mysql --initialize-insecure --user=mysql
初始化数据文件

6、使用命令mysql -u root -p
启动mysql,注意-p后没有空格。进入mysql后直接回车即可(my.ini文件中设置了跳过密码检查)

7、进入mysql界面后更改root密码

  • 注意:MySQL8.0版本及以上需要使用命令设置:alter user 'root'@'localhost' identified by '123456';
    SQL语句后分号必不可少

  • MySQL8.0版本以下:update mysql.user set authentication_string=password('123456') where user='root'and Host = 'localhost';

8、刷新权限flush privileges;

9、删除my.ini配置文件中跳过检查语句skip-grant-tables

10、重启MySQL并测试(先停止再重启)

net stop mysql

net start mysql

重启后使用mysql -u root -p123456
登录,登录成功如下:

注意:必须在管理员权限下的CMD执行以上步骤

如果电脑上以前装过MySQL,必须要把环境清理干净再重装

1.6、安装SQLyog

1、下载安装

2、连接本地MySQL数据库

3、创建school数据库

每一个sqlyog的执行操作,对应着SQL语句,在历史记录中查看

4、创建一个表

字段:id(主键),name,age

5、添加表记录

1.7、连接数据库

命令行连接

 mysql -u root -p123456 --连接数据库
 alter user 'root'@'localhost' identified by '123456'; -- 8.0以上版本修改密码
 flush privileges; -- 刷新权限
 
 -- 所有SQL语句使用 ; 结尾
 show databases; -- 查看所有数据库
 
 use school; -- 切换数据库 use 数据库名
 show tables; -- 查看数据库中所有的表
 describe student; -- 显示数据库中student表的信息
 
 create database product; -- 创建一个product数据库
 
 exit; -- 退出连接
 
 -- SQL中单行注释
 /* SQL多行注释
 a
 b
 c
 */
复制

数据库 xxx 语言

DDL 定义 定义和管理数据对象,如数据库 数据表等 CREATE, DROP, ALTER

DML 操作 操作数据库中对象所包含的数据 INSERT, UPDATE, DELETE

DQL 查询 查询数据库数据 SELECT

DCL 控制 管理数据库语言,包括管理权限修改即数据更改 GRANT, commit, rollback

2、操作数据库

操作数据库 -> 操作数据库中的表 -> 操作表中数据

2.1、操作

1、创建数据库

 CREATE DATABASE IF NOT EXISTS product
复制

2、删除数据库

 DROP DATABASE IF EXISTS product
复制

3、使用数据库

 USE `school` -- 如果表名或字段名是一个特殊字符, 该字符需要写为 `xxx`
复制

4、查看数据库

 SHOW DATABASES
复制

对照sqlyog历史记录学习。掌握关键字

2.2、数据库的列类型

数值

  • tinyint 十分小的数据 1个字节

  • smallint     较小的数据 2个字节

  • mediumint    中等大小的数据    3个字节

  • int    标准整数    4个字节(常用)

  • bigint    较大的数据    8个字节

  • float    浮点数   4个字节

  • double   浮点数   8个字节

  • decimal   字符串形式浮点数   金融计算一般使用decimal,需要精度

字符串

  • char 固定大小字符串 0~255

  • varchar 可变长字符串 0~65535

  • tinytext 微型文本 2^8-1

  • text 文本串 2^16-1 保存大文本

时间日期

java.util.Date

  • date YYYY-MM-DD 日期格式

  • time HH: mm: ss 时间格式

  • datetime YYYY-MM-DD HH: mm: ss 最常用的时间格式

  • timestamp 时间戳 1970.1.1 到现在时间的毫秒数

  • year 年份

NULL值

  • 没有值,未知

  • 不要使用NULL进行运算,结果为NULL

2.3、数据库的字段属性(重点)

UnSigned

  • 无符号的,声明该数据列不允许为负数

ZEROFILL

  • 0填充的,不足位数的用0来填充。如int(3),1为001

Auto_InCrement

  • 自动递增,每添加一条数据,默认自动在上一个记录上加1

  • 通常用于设置主键,且为整数类型

  • 可定义起始值和步长

NULL和NOT NULL

  • 默认为NULL,表示该列没有插入数值

  • 如果设置为NOT NULL,则必须添加该值

DEFAULT

  • 默认的,用于设置默认值,若无指定该列值,则为默认值

 /* 工程中每一个表都必须存在以下五个字段
 id主键
 `version`乐观锁
 is_delete伪删除
 gmt_create创建时间
 gmt_update修改时间
 */
复制

2.4、创建数据库表(重点)

创建表

 -- 表的 名称 和 字段 尽量使用 `` 阔起来
 -- AUTO_INCREMENT 自增
 -- 字符串使用 单引号 括起来
 -- 所有语句后面使用 ,(英文逗号) 最有一个语句不用
 CREATE TABLE `student` (
   `id` int NOT NULL AUTO_INCREMENT COMMENT '学号',
   `name` varchar(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
   `sex` varchar(2) NOT NULL DEFAULT '男' COMMENT '性别',
   `birthday` datetime DEFAULT NULL COMMENT '出生日期',
   `address` varchar(100) DEFAULT NULL COMMENT '地址',
   `email` varchar(50) DEFAULT NULL COMMENT '邮箱',
   PRIMARY KEY (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8
复制

格式

 create TABLE IF NOT EXISTS `表名` (
  '字段名' 列类型 属性 索引 注释,
     '字段名' 列类型 属性 索引 注释,
    ...
     '字段名' 列类型 属性 索引 注释,
 )表类型 字符集设置 注释
复制

常用命令

 SHOW CREATE DATABASE school -- 查看创建数据库的语句
 SHOW CREATE TABLE student -- 查看创建表的语句
 DESC student -- 显示表的结构
复制

2.5、数据表类型

 -- 数据库引擎
 /*
 INNODB 默认使用
 MYISAM 早些年使用
 */
复制

MYISAMINNODB
事务支持不支持支持
数据行锁定不支持支持
外键约束不支持支持
全文索引支持不支持
表空间大小较小较大,约为MYISAM2倍

常规使用:

  • MYISAM 节约空间,速度较快

  • INNODB    安全性高,事务处理,多表多用户操作

物理空间

所有数据库文件都存储在/mysql/data目录下,一个文件夹对应一个数据库

本质是文件在计算机上的存储

设置数据库表的字符集编码

 CHARSET=utf8
复制

MySQL中默认编码是Latin1,不支持中文。建表时需要更换

也可以在配置文件my.ini中配置如下

 character-set-server=utf8
复制

2.6、修改删除表

 -- 修改表名:ALTER TABLE 旧表名 RENAME AS 新表名
 ALTER TABLE student1 RENAME AS student
 -- 增加表的字段:ALTER TABLE 表名 ADD 字段 字段列属性
 ALTER TABLE student ADD age INT(3)
 
 -- 修改表的字段(重命名、修改约束)
 -- ALTER TABLE 表名 MODIFY 字段 列属性
 ALTER TABLE student MODIFY age VARCHAR(3) -- 修改约束
 -- ALTER TABLE 表名 CHANGE 字段旧名 字段新名 INT(3)
 ALTER TABLE student CHANGE age age1 INT(3) -- 重命名
 
 -- 删除表的字段:ALTER TABLE 表名 DROP 字段
 ALTER TABLE student DROP age1
 
 -- 删除表(先判断是否存在)
 DROP TABLE IF EXISTS student
复制

所有创建和删除操作尽量先判断,避免报错

注意:

  • 尽量使用  `` 符号将(库名、表名、字段名、索引、别名)括起来,以避免与关键字重名

  • 单行注释  -- 注释内容
    ,多行注释/*注释内容*/

  • 大小写不敏感

  • 所有符号全部使用英文

文章转载自Hu说编程,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论