BCSP-玄子JAVA开发之JAVA数据库编程CH-02_ MySQL初体验笔记

BCSP-玄子JAVA开发之JAVA数据库编程CH-02_ MySQL初体验笔记

2.1 MySQL 简介

是一款流行的开源数据库,也是一个关系型数据库管理系统

2.1.1 发展历史

  • 由瑞典MySQL AB公司开发

  • 2008年, MySQL AB公司被SUN公司收购

  • 2009年,SUN公司被Oracle公司收购

2.1.2 优势

  • 运行速度快

  • 使用成本低

  • 容易使用

  • 可移植性强

  • 适用用户广

2.1.3 MySQL 安装

官网 https://downloads.mysql.com/archives/community/

安装教程 https://blog.csdn.net/qq_62283694/article/details/128853617

推荐使用 MySQL5.7

2.2 命令行连接 MySQL

首先检查是否启动服务

电脑按下Win + R 输入 cmd打开 DOS 窗口

2.2.1 启动服务命令

net start mysql

2.2.2 停止服务命令

net stop mysql

2.2.3 登录数据库命令

mysql –h服务器主机地址 –u用户名 –p密码

–h服务器主机地址 本机登录可以省略

[外链图片转存中…(img-xGNceQrn-1675598138161)]

2.2.4 查看版本信息和当前用户

SELECT VERSION(),USER();

分号为结束符,不可缺

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vUx6WoSE-1675598138163)(./assets/%E6%90%9C%E7%8B%97%E6%88%AA%E5%9B%BE20230205152928.png)]

2.3 常用指令

2.3.1 创建数据库

CREATE DATABASE 数据库名;

Query OK:SQL语句执行成功

1 row affected:操作影响的行数

(0.00 sec):操作执行时间

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tmESy12j-1675598138163)(./assets/%E6%90%9C%E7%8B%97%E6%88%AA%E5%9B%BE20230205153046.png)]

2.3.2 查看数据库列表

SHOW databases;

student:用户数据库

其他的是系统数据库

[外链图片转存中…(img-OWk3Ise2-1675598138164)]

2.3.3 选择数据库

USE 数据库名;

使用数据前,必须先选择该数据库!

ERROR 1049 (42000): Unknown database 'a'

数据库不存在,报错

[外链图片转存中…(img-wQulWvPT-1675598138164)]

2.3.4 删除数据库

DROP DATABASE 数据库名;

[外链图片转存中…(img-h2RWrutq-1675598138165)]

2.4 Navicat 数据库管理工具

[外链图片转存中…(img-n7S2T34Y-1675598138165)]

Navicat Premium是一款功能强大的、可支持多连接的数据库管理工具

允许在单一程序中同时连接多达7种数据库

  1. MySQL

  2. MariaDB

  3. MongoDB

  4. SQL Server

  5. SQLite

  6. Oracle

  7. PostgreSQL

官网 https://www.navicat.com/en/products

推荐使用:Navicat Premium 16

2.4.1 安装教程

企鹅:3336392096

2.4.2 使用 Navicat 连接 MySQL

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xqsAtUxZ-1675598138166)(./assets/%E6%90%9C%E7%8B%97%E6%88%AA%E5%9B%BE20230205154815.png)]

2.4.3 使用Navicat创建数据库

通过操作向导创建数据库

[外链图片转存中…(img-Q4eZ4VAi-1675598138166)]

字符集要选择utf8点击 SQL 预览可以查看建表语句

[外链图片转存中…(img-wU9fOdMT-1675598138166)]

通过SQL语句创建数据库

2.5 结构化查询语言

名称 解释 命令举例
DML (数据操作语言) 操作数据库中所包含的数据 INSERT UPDATE DELETE
DDL (数据定义语言) 创建和删除数据库对象等操作 CREATE DROP ALTER
DQL (数据查询语言) 对数据库中的数据进行查询 SELECT
DCL (数据控制语言) 控制数据库组件的存取许可、存取权限等 GRANT COMMIT ROLLBACK

2.6 MySQL数据类型

2.6.1 数值类型

类型 说明 取值范围 存储需求
TINYINT 非常小的数据 有符值:-27~27-1 无符号值:0~28-1 1字节
SMALLINT 较小的数据 有符值:-215~215-1 无符号值:0~216-1 2字节
MEDIUMINT 中等大小的数据 有符值:-223~223-1 无符号值:0~224-1 3字节
INT 标准整数 有符值:-231~231-1 无符号值:0~232-1 4字节
BIGINT 较大的整数 有符值:-263~263-1 无符号值:0~264-1 8字节
FLOAT 单精度浮点数 ±1.1754351e-38 4字节
DOUBLE 双精度浮点数 ±2.2250738585072014e-308 8字节
DECIMAL 字符串形式的浮点数 Decimal(M,D) M+2个字节

2.6.2 数值属性

**UNSIGNED 属性:**标识为无符号数,非负数

**ZEROFILL 属性:**宽度(位数)不足以0填充

若某数值字段指定了 ZEROFILL 属性,将自动添加 UNSIGNED 属性

数值位数小于宽度,以0填充

数值位数大于宽度,显示实际位数

2.6.3 字符串

字符串类型 说明 长度
CHAR[(M)] 定长字符串 M字节
VARCHAR[(M)] 可变字符串 可变长度
TINYTEXT 微型文本串 0~28–1字节
TEXT 文本串 0~216–1字节

2.6.4 日期类型

日期类型 格式 取值范围
DATE YYYY-MM-DD,日期格式 1000-01-01~ 9999-12-31
DATETIME YY-MM-DD hh:mm:ss: 1000-01-01 00:00:00 ~9999-12-31 23:59:59
TIME hh:mm:ss: -835:59:59 ~ 838:59:59
TIMESTAMP · 1
YEAR YYYY格式的年份 1901~2155

若某日期字段默认值为系统当前日期,可指定为TIMESTAMP类型

2.7 创建表

CREATE TABLE [IF NOT EXISTS] 表名 (
    字段 1 数据类型 [ 字段属性 | 约束 ][ 索引 ][ 字段备注 ],
    字段 2 数据类型 [ 字段属性 | 约束 ][ 索引 ][ 字段备注],
    字段 n 数据类型 [ 字段属性 | 约束 ][ 索引 ][ 字段备注]
)[ 表类型 ][ 表字符集 ][ 表备注];

多字段使用逗号分隔,保留字用撇号括起来,

2.8 注释

#  单行注释
-- 单行注释
/** 
	多行注释
*/

2.9 字段的约束及属性

名称 关键字 说明
主键约束 PRIMARY KEY(PK) 设置该字段为表的主键 可唯一标识该表记录
外键约束 FOREIGN KEY(FK) 用于在两表之间建立关系, 需要指定引用主表的哪一字段
自动增长 AUTO_INCREMENT 设置该列为自增字段 默认每条自增1 通常用于设置主键
非空约束 NOT NULL 字段不允许为空
默认约束 DEFAULT 赋予某字段默认值
唯一约束 UNIQUE KEY(UK) 设置字段的值是唯一的 允许为空,但只能有一个空值

2.9.1 主键约束

主键:使用数据库表中某一字段或某几个字段唯一标识所有记录

单字段主键

CREATE TABLE [IF NOT EXISTS] 表名 (
    字段 1 数据类型 PRIMARY KEY,
    #……
);
-- 定义字段的同时指定主键
CREATE TABLE [IF NOT EXISTS] 表名 (
    字段 1 数据类型 ,
    #……
    [CONSTRAINT< 约束名 >] PRIMARY KEY[ 列名 ]
);
-- 定义所有字段之后指定主键

多字段联合主键

CREATE TABLE [IF NOT EXISTS] 表名 (
    #……
    PRIMARY KEY [字段1,字段2,…… ]
);

2.10 注释与字符集编码

2.10.1 注释

  • COMMENT关键字

  • 在表结构中可以看到,与代码注释不同、

CREATE TABLE test (
    id int(11) UNSIGNED COMMENT '编号'
)COMMENT='测试表';

2.10.2 设置字符集编码

  • 默认情况下,MySQL所有数据库、表、字段等使用MySQL默认字符集

  • 为了存储独特的数据,可在创建表时指定字符集

CREATE TABLE [IF NOT EXISTS] 表名(
     #……CHARSET = 字符集名;

2.11 查看表

2.11.1 查看数据库中存在的表

SHOW tables;

2.11.2 查看数据库中已存在的表

DESCRIBE 表名;
DESC 表名;

为了避免DOS窗口出现中文乱码,可执行SET NAMES gbk;

2.12 删除表

2.12.1 删除表及表中数据

DROP TABLE [IF  EXISTS] 表名;

在删除表之前,先使用IF EXISTS语句验证表是否存在

执行 DROP TABLE 的表是空表,则可以直接删除

如果表中已存储了业务数据,则需和数据库管理员联系,先对数据库数据进行备份并确认,再执行删除表及数据的操作

2.13 MySQL 的存储引擎

数据库对同样的数据有着不同的存储方式和管理方式,MySQ L中称之为存储引擎

是存储数据的核心组件,指定了表的存储类型和存储形式

2.13.1 存储引擎的类型

  • uInnoDB
  • MyISAM
  • Memory
  • CSV
  • 等9种

2.13.2 查看系统所支持的存储引擎类型

SHOW ENGINES;

默认情况,未开启状态

2.13.3 常用的MySQL存储引擎

InnoDB存储引擎

  • 支持具有提交、回滚和崩溃恢复能力的事务控制

MyISAM存储引擎

  • 不支持事务,也不支持外键约束,访问速度比较快

2.13.4 InnoDB 和 MyISAM 存储引擎比较

功能 InnoDB MyISAM
事务处理 支持 不支持
外键约束 支持 不支持
表空间大小 较大 较小
数据行锁定 支持 不支持

2.13.5 适用场合

  • 使用 MyISAM:不需事务,空间小,以查询访问为主
  • 使用InnoDB:多删除、更新操作,安全性高,事务处理及并发控制

2.13.6 设置默认存储引擎

MySQL 5.7版本默认的存储引擎是InnoDB

查看当前默认存储引擎

SHOW VARIABLES LIKE 'default_storage_engine%';
-- default_storage_engine% 默认存储引擎

2.13.7 修改存储引擎

修改my.ini配置文件

default-storage-engine=MyISAM
-- MyISAM 改为其他类型的存储引擎

修改配置文件后,需要重启MySQL服务设置才会生效

2.13.8 设置表的存储引擎

数据表默认使用当前 MySQ L默认的存储引擎

创建表时,可以设置表的存储引擎类型

CREATE TABLE 表名 (
# ……
) ENGINE= 存储引擎 ;

2.13.9 数据表的存储位置

MyISAM 类型表文件

  • *.frm:表结构定义文件

  • *.MYD:数据文件

  • *.MYI:索引文件

uInnoDB 类型表文件

  • *.frm:表结构定义文件

  • ibdata1文件

2.13.9 存储位置

因操作系统而异,可查my.ini

datadir="C:\ProgramData\MySQL\MySQL Server 5.7\Data"
innodb_data_home_dir="D:/MySQL Datafiles/"

2.14 MySQL系统帮助

 HELP 查询内容;
HELP contents;                     
#查看帮助文档目录列表
HELP Data Definition;           
#查看数据定义
HELP CREATE DATABASE; 
#查看CREATE DATABASE的帮助信息

BCSP-玄子JAVA开发之JAVA数据库编程CH-02_ MySQL初体验笔记 2.5

你可能感兴趣的:(MySQL,数据库,mysql)