命令
#启动命令
net start mysql
#关闭命令
net stop mysql
#进入MySQL服务
mysql -u root -p密码 --default-character-set=utf8
#执行mysql脚本
source 地址/xx.sql。
#推出mysql
exit
--创建表格式
CREATE TABLE [IF NOT EXISTS] `表名`(
'字段名' 列类型 [属性] [索引] [注释],
......
'字段名' 列类型 [属性] [索引] [注释],
PRIMARY KEY(`id`)
)[表类型] [字符集设置] [注释]
/*
例子:
*/
DROP TABLE IF EXISTS `表名`;
CREATE TABLE `表名` (
`id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建日期',
`age` int(11) NULL DEFAULT NULL COMMENT '年龄',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
------------其它操作-----------
--查看创建数据库的语句
SHOW CREATE DATABASE `数据库名`
--查看数据表的定义语句
SHOW CREATE TABLE `表名`
--显示表的结构
DESC `表明`
数据表的类型
--关于数据库引擎
INNODB --默认使用
MYISAM --早些年使用
MYISAM | INNODB | |
---|---|---|
事务支持 | 不支持 | 支持 |
数据行锁定 | 不支持 | 支持 |
外键约束 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表空间的大小 | 较小 | 较大,约为两倍 |
常规使用操作:
INNODB :安全性较高,事务的处理,多表多用户操作
MYISAM :节约空间,速度较快
事务
要么都成功,要么都失败。
四大特性:ACID
参考链接:https://baijiahao.baidu.com/s?id=1698925556545895402&wfr=spider&for=pc
索引
添加索引可以加快查询速度。
命名规则:id _ 表名 _ 字段名
索引分类:
主键索引(PRIMARY KEY) ,唯一标识,不可重复,只能有一个列作为主键。
唯一索引(UNIQUE KEY) ,避免重复的列出现,唯一索引可重复,多个列都可以标识 唯一索引。
常规索引 (KEY/INDEX),默认的,index。key关键字来设置。
全文索引 (FullText),在特定的数据库引擎下才有,MyISAM,快速定位数据。
#显示所有索引信息
SHOW INDEX FROM `表名`
索引原则:
索引不是越多越好
不要对进程变动数据加索引
小数据量的表不要加索引
索引一般加在常用的查询字段上
备份
1、通过数据库管理软件,导出或者导入sql语句。
2、使用命令行导出数据库或者数据空中的表
#导出
#mysqldump -h 主机 -u 用户名 -p 密码 数据库 表明 >物理磁盘位置/文件名
mysqldump -hlocalhost -uroot -p123456 数据库名 [表名] >D:/A.sql
#导入
#在命令行进入mysql
source 地址/xx.sql。
规范数据库设计
为什么数据要规范化:
避免数据重复
更新异常
插入异常(无法正常显示信息)
删除异常
三大范式:
第一范式:要求数据库表的每一列都是不可分割的原子数据项。
第二范式:前提,满足第一范式。 每张表只描述一件事情。
第三范式:前提,满足第一范式和第二范式。确保数据表中的每一列数据都和主键直接相关,而不能间接相关。
规范性与性能问题?
关联查询的表不得超过三张。(阿里的规范)
考虑商业化的需求和目标,数据库的性能更加重要。
在规范性能的问题的时候,需要适当考虑一下 规范性!
故意给某些表增加一些冗余的字段。(从多表查询中变为单表查询)
故意增加一些计算列(从大数据量降低为小数据量的查询:索引)
JDBC
SUN公司为了简化开发人员的对数据库的统一操作,提供了一个Java操作数据库的规范,俗称 JDBC。
这些规范的实现由具体的厂商去做。
参考链接:JDBC-KuangStudy-文章