是一款流行的开源数据库,也是一个关系型数据库管理系统
由瑞典MySQL AB公司开发
2008年, MySQL AB公司被SUN公司收购
2009年,SUN公司被Oracle公司收购
运行速度快
使用成本低
容易使用
可移植性强
适用用户广
官网 https://downloads.mysql.com/archives/community/
安装教程 https://blog.csdn.net/qq_62283694/article/details/128853617
推荐使用 MySQL5.7
首先检查是否启动服务
电脑按下Win + R 输入 cmd
打开 DOS 窗口
net start mysql
net stop mysql
mysql –h服务器主机地址 –u用户名 –p密码
–h服务器主机地址
本机登录可以省略
[外链图片转存中…(img-xGNceQrn-1675598138161)]
SELECT VERSION(),USER();
分号为结束符,不可缺
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vUx6WoSE-1675598138163)(./assets/%E6%90%9C%E7%8B%97%E6%88%AA%E5%9B%BE20230205152928.png)]
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)]
SHOW databases;
student:用户数据库
其他的是系统数据库
[外链图片转存中…(img-OWk3Ise2-1675598138164)]
USE 数据库名;
使用数据前,必须先选择该数据库!
ERROR 1049 (42000): Unknown database 'a'
数据库不存在,报错
[外链图片转存中…(img-wQulWvPT-1675598138164)]
DROP DATABASE 数据库名;
[外链图片转存中…(img-h2RWrutq-1675598138165)]
[外链图片转存中…(img-n7S2T34Y-1675598138165)]
Navicat Premium是一款功能强大的、可支持多连接的数据库管理工具
允许在单一程序中同时连接多达7种数据库
MySQL
MariaDB
MongoDB
SQL Server
SQLite
Oracle
PostgreSQL
官网 https://www.navicat.com/en/products
推荐使用:Navicat Premium 16
企鹅:3336392096
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xqsAtUxZ-1675598138166)(./assets/%E6%90%9C%E7%8B%97%E6%88%AA%E5%9B%BE20230205154815.png)]
通过操作向导创建数据库
[外链图片转存中…(img-Q4eZ4VAi-1675598138166)]
字符集要选择utf8
点击 SQL 预览可以查看建表语句
[外链图片转存中…(img-wU9fOdMT-1675598138166)]
通过SQL语句创建数据库
名称 | 解释 | 命令举例 |
---|---|---|
DML (数据操作语言) | 操作数据库中所包含的数据 | INSERT UPDATE DELETE |
DDL (数据定义语言) | 创建和删除数据库对象等操作 | CREATE DROP ALTER |
DQL (数据查询语言) | 对数据库中的数据进行查询 | SELECT |
DCL (数据控制语言) | 控制数据库组件的存取许可、存取权限等 | GRANT COMMIT ROLLBACK |
类型 | 说明 | 取值范围 | 存储需求 |
---|---|---|---|
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个字节 |
**UNSIGNED 属性:**标识为无符号数,非负数
**ZEROFILL 属性:**宽度(位数)不足以0填充
若某数值字段指定了 ZEROFILL 属性,将自动添加 UNSIGNED 属性
数值位数小于宽度,以0填充
数值位数大于宽度,显示实际位数
字符串类型 | 说明 | 长度 |
---|---|---|
CHAR[(M)] | 定长字符串 | M字节 |
VARCHAR[(M)] | 可变字符串 | 可变长度 |
TINYTEXT | 微型文本串 | 0~28–1字节 |
TEXT | 文本串 | 0~216–1字节 |
日期类型 | 格式 | 取值范围 |
---|---|---|
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类型
CREATE TABLE [IF NOT EXISTS] 表名 (
字段 1 数据类型 [ 字段属性 | 约束 ][ 索引 ][ 字段备注 ],
字段 2 数据类型 [ 字段属性 | 约束 ][ 索引 ][ 字段备注],
字段 n 数据类型 [ 字段属性 | 约束 ][ 索引 ][ 字段备注]
)[ 表类型 ][ 表字符集 ][ 表备注];
多字段使用逗号分隔,保留字用撇号括起来,
# 单行注释
-- 单行注释
/**
多行注释
*/
名称 | 关键字 | 说明 |
---|---|---|
主键约束 | PRIMARY KEY(PK) | 设置该字段为表的主键 可唯一标识该表记录 |
外键约束 | FOREIGN KEY(FK) | 用于在两表之间建立关系, 需要指定引用主表的哪一字段 |
自动增长 | AUTO_INCREMENT | 设置该列为自增字段 默认每条自增1 通常用于设置主键 |
非空约束 | NOT NULL | 字段不允许为空 |
默认约束 | DEFAULT | 赋予某字段默认值 |
唯一约束 | UNIQUE KEY(UK) | 设置字段的值是唯一的 允许为空,但只能有一个空值 |
主键:使用数据库表中某一字段或某几个字段唯一标识所有记录
单字段主键
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,…… ]
);
COMMENT关键字
在表结构中可以看到,与代码注释不同、
CREATE TABLE test (
id int(11) UNSIGNED COMMENT '编号'
)COMMENT='测试表';
默认情况下,MySQL所有数据库、表、字段等使用MySQL默认字符集
为了存储独特的数据,可在创建表时指定字符集
CREATE TABLE [IF NOT EXISTS] 表名(
#……
)CHARSET = 字符集名;
SHOW tables;
DESCRIBE 表名;
DESC 表名;
为了避免DOS窗口出现中文乱码,可执行
SET NAMES gbk;
DROP TABLE [IF EXISTS] 表名;
在删除表之前,先使用
IF EXISTS
语句验证表是否存在执行 DROP TABLE 的表是空表,则可以直接删除
如果表中已存储了业务数据,则需和数据库管理员联系,先对数据库数据进行备份并确认,再执行删除表及数据的操作
数据库对同样的数据有着不同的存储方式和管理方式,MySQ L中称之为存储引擎
是存储数据的核心组件,指定了表的存储类型和存储形式
SHOW ENGINES;
默认情况,未开启状态
InnoDB存储引擎
MyISAM存储引擎
功能 | InnoDB | MyISAM |
---|---|---|
事务处理 | 支持 | 不支持 |
外键约束 | 支持 | 不支持 |
表空间大小 | 较大 | 较小 |
数据行锁定 | 支持 | 不支持 |
MySQL 5.7版本默认的存储引擎是InnoDB
查看当前默认存储引擎
SHOW VARIABLES LIKE 'default_storage_engine%';
-- default_storage_engine% 默认存储引擎
修改my.ini
配置文件
default-storage-engine=MyISAM
-- MyISAM 改为其他类型的存储引擎
修改配置文件后,需要重启MySQL服务设置才会生效
数据表默认使用当前 MySQ L默认的存储引擎
创建表时,可以设置表的存储引擎类型
CREATE TABLE 表名 (
# ……
) ENGINE= 存储引擎 ;
MyISAM 类型表文件
*.frm:表结构定义文件
*.MYD:数据文件
*.MYI:索引文件
uInnoDB 类型表文件
*.frm:表结构定义文件
ibdata1文件
因操作系统而异,可查my.ini
datadir="C:\ProgramData\MySQL\MySQL Server 5.7\Data"
innodb_data_home_dir="D:/MySQL Datafiles/"
HELP 查询内容;
HELP contents;
#查看帮助文档目录列表
HELP Data Definition;
#查看数据定义
HELP CREATE DATABASE;
#查看CREATE DATABASE的帮助信息
BCSP-玄子JAVA开发之JAVA数据库编程CH-02_ MySQL初体验笔记 2.5