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

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

2.1 MySQL 简介

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

搜狗截图20230205154753

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

2.4.3 使用Navicat创建数据库

通过操作向导创建数据库

搜狗截图20230205160037

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

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

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

通过SQL语句创建数据库

搜狗截图20230205155234

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-11字节
SMALLINT较小的数据有符值:-215~215-1 无符号值:0~216-12字节
MEDIUMINT中等大小的数据有符值:-223~223-1 无符号值:0~224-13字节
INT标准整数有符值:-231~231-1 无符号值:0~232-14字节
BIGINT较大的整数有符值:-263~263-1 无符号值:0~264-18字节
FLOAT单精度浮点数±1.1754351e-384字节
DOUBLE双精度浮点数±2.2250738585072014e-3088字节
DECIMAL字符串形式的浮点数Decimal(M,D)M+2个字节

2.6.2 数值属性

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

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

搜狗截图20230205163743

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

搜狗截图20230205163822

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

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

2.6.3 字符串

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

2.6.4 日期类型

日期类型格式取值范围
DATEYYYY-MM-DD,日期格式1000-01-01~ 9999-12-31
DATETIMEYY-MM-DD hh:mm:ss:1000-01-01 00:00:00 ~9999-12-31 23:59:59
TIMEhh:mm:ss:-835:59:59 ~ 838:59:59
TIMESTAMP·1
YEARYYYY格式的年份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 存储引擎比较

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值