MySQL数据库之一
数据库简介
数据库分类
关系型数据库(SQL):(狭义可以理解为行和列)
- MySQL,Oracle,Sql Server, DB2
- 通过表和表之间,行和列之间的关系进行存储
非关系型数据库(NoSQL Not Only SQL):(狭义可以理解为键值对)
- Redis, MongDB
- 非关系行数据库已对象存储,通过对象的属性决定操作
概念
DBSM(database management system)数据库管理系统
- 数据库的管理软件
- 区分,数据库存数据,数据库管理系统管理数据
安装建议
- 不要使用exe方式安装,会走注册表,卸载起来比较麻烦
- 建议使用压缩包安装,压缩包安装方便卸载
数据库MySQL的安装
注意:解压压缩包就安装好了,关键是后面的注册部分
- 从官网https://dev.mysql.com/downloads/mysql/5.7.html下载压缩包,
- 解压,得到一个文件夹,把这个文件夹放到自己的开发目录
- 配置环境变量
- 我的电脑-->属性-->高级设置-->环境变量
- 选择PATH,在后面添加:你的mysql安装文件夹下面的bin文件夹
- 在MySQL安装目录下新建
my.ini
配置文件- 编辑my.ini
[mysqld]
basedir=D:\\Drawer\\develop\\soft\\mysql-5.7.32-winx64\
datadir=D:\\Drawer\\develop\\soft\\mysql-5.7.32-winx64\data\
port=3306
skip-grant-tables
- 管理员模式启动CMD,切换到安装的MySQL的bin目录下
cd /d D:\Drawer\develop\soft\mysql-5.7.32-winx64\bin
- 然后输入
mysqld -install
再输入一下命令,初始化数据文件
mysqld --initialize-insecure --user=mysql
- 启动MySQL
net start mysql
也可以从任务管理器发现MySQL启动起来了
- 用命令进入管理界面
mysql -u root -p
接下来他会要求你输入密码,第一次登录,没有密码,所以点击回车就可以了
- 设置用户名为root的初始密码为123456
update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost';
- 刷新权限
flush privileges;
- 在my.ini里注释跳过密码命令
[mysqld]
basedir=D:\\Drawer\\develop\\soft\\mysql-5.7.32-winx64\
datadir=D:\\Drawer\\develop\\soft\\mysql-5.7.32-winx64\data\
port=3306
#skip-grant-tables
- 退出MySQL
exit
- 重启MySQL就可以正常使用了
net stop mysql
net start mysql
- 输入用户名root,密码123456 登录
mysql -uroot -p123456
遇到的问题
问题:执行mysqld --initialize-insecure --user=mysql 报错(errcode: 2 - no such file or directory)
原因:路径名称需要写成//
,比如下面
[mysqld]
basedir=D:\\Drawer\\develop\\soft\\mysql-5.7.32-winx64\
datadir=D:\\Drawer\\develop\\soft\\mysql-5.7.32-winx64\data\
port=3306
skip-grant-tables
注意:windows安装mysql默认自动启动
更换数据库版本
原先数据库的地址D:\develop\MySQL Server\bin
基本命令操作
连接数据库(命令行)
mysql -uroot -p
修改密码
修改密码其实就是操作数据库的表,也就是修改mysql数据库的user表的authentication_string字段
UPDATE mysql.`user` SET authentication_string=PASSWORD('123456') WHERE `user` = 'root' AND `Host` = 'localhost'; --修改用户密码
注意,所用的sql都是以;结尾
查看所有数据库
SHOW DATABASES;
切换数据库
- 切换到school数据库
USE `school`;
查看数据库中所有的表
SHOW TABLES;
查看表结构
- 查看student表结构
DESCRIBE `student`;
- 也可是省略将
DESCRIBE
student;
省略为DESC
student;
DESC `student`;
创建数据库
- 创建teacher数据库
CREATE DATABASE `teacher`;
删除数据库
- 删除teacher数据库
DROP DATABASE `teacher`;
退出mysql
EXIT;
SQL的本来注释
- 单行注释
-- 单行注释内容
- 多行注释
/*
多行注释内容
*/
操作数据库
1. 创建数据库
- 创建teacher数据库
CREATE DATABASE `teacher`;
- 如果创建前数据库成立,会报错,可以加一个判断
IF NOT EXISTS
表示当他不存在时执行创建数据库语句
CREATE DATABASE IF NOT EXISTS `teacher`;
- 我们把可选部分用
[ ]
包裹,表示可以选择或者不选择,例如
CREATE DATABASE [IF NOT EXISTS] `teacher`;
2. 移除数据库
- 删除teacher数据库
DROP DATABASE `teacher`;
- 同样,如果删除内容如果不存在,也会报错,我们可以加一个判断
IF EXISTS
,表示当他存在执行删除语句
DROP DATABASE IF EXISTS `teacher`;
3.使用数据库
- 使用teacher数据库
USE `teacher`;
4. 查看所有数据库
SHOW DATABASES;
可以通过查看历史日志的方式查看操作的sql语句
列的数据类型
数值
类型 | 描述 | 大小 | 备注 |
---|---|---|---|
tinyint | 十分小的数据 | 1个字节 | |
smallint | 较小的数据 | 2个字节 | |
mediumint | 中等大小的数据 | 3个字节 | |
int | 标准的整数 | 4个字节 | 常用 |
bigint | 较大的整数 | 8个字节 | |
float | 浮点数 | 4个字节 | 存在精度问题 |
double | 浮点数 | 8个字节 | 存在精度问题 |
decimal | 字符串形式的浮点数 | 5-17字节 | 解决精度问题,金融计算一般用 |
参考https://www.w3schools.com/sql/sql_datatypes.asp
字符串
类型 | 描述 | 大小 | 备注 |
---|---|---|---|
char | 字符串固定大小 | 0-255 | |
varchar | 可变字符串 | 0-65535 | 常用 |
text | 文本串 | 2^16-1 | 用于保存大文本 |
时间日期
类型 | 描述 | |
---|---|---|
date | YYYY-MM-DD, 日期格式 | |
time | HH:mm:ss 时间格式 | |
datetime | YYYY-MM-DD HH:mm:ss | 最常用的时间格式 |
timestamp | 时间戳,1970.1.1到现在的毫秒数 |
null值不建议参与运算
字段的属性
Unsigned
- 无符号整数,该列不能声明为负数
zerofill
- 0填充,不足的位数,用零来填充
- 比如声明 int(3) 之后,数值5会填充为 005
自增
- 在上一条记录的基础+1
- 通常设计为唯一主键
- 可是定义起始值和步长
非空
当设置为not null, 不赋值会报错
默认
设置默认的值
每一个表都应该包括以下5个字段
id -- 主键
version -- 乐观锁
is_delete -- 伪删除
gmt_create -- 创建时间
gmt_update -- 修改时间
MySQL数据库之一的更多相关文章
- nodejs进阶(6)—连接MySQL数据库
1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...
- 当忘记mysql数据库密码时如何进行修改
因为长时间没有使用数据库了,或者把密码改完之后就忘了数据库密码,不能正常进入数据库,也无法修改密码,有一个简单的常用修改密码方式: 1.首先找到和打开mysql.exe和mysqld.exe所在的文件 ...
- MySQL数据库和InnoDB存储引擎文件
参数文件 当MySQL示例启动时,数据库会先去读一个配置参数文件,用来寻找数据库的各种文件所在位置以及指定某些初始化参数,这些参数通常定义了某种内存结构有多大等.在默认情况下,MySQL实例会按照一定 ...
- 一起学微软Power BI系列-使用技巧(1)连接Oracle与Mysql数据库
说起Oracle数据库,以前没用过Oracle不知道,但是这1年用Oracle后,发现真的是想狂吐槽,特别是那个.NET驱动和链接字符串,特别奇葩.总归是和其他数据库不一样,标新立异,不知道为何.另外 ...
- CentOS下mysql数据库常用命令总结
mysql数据库使用总结 本文主要记录一些mysql日常使用的命令,供以后查询. 1.更改root密码 mysqladmin -uroot password 'yourpassword' 2.远程登陆 ...
- [原创]java使用JDBC向MySQL数据库批次插入10W条数据测试效率
使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(100000),如何提高效率呢?在JDBC编程接口中Statement 有两个方法特别值得注意:通过使用addBatch( ...
- mysql数据库主从同步
环境: Mater: CentOS7.1 5.5.52-MariaDB 192.168.108.133 Slave: CentOS7.1 5.5.52-MariaDB 192.168. ...
- PDO连接mysql数据库
1.PDO简介 PDO(PHP Data Object) 是PHP 5 中加入的东西,是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接 ...
- mysql数据库开发常见问题及优化
mysql 数据库是被广泛应用的关系型数据库,其体积小.支持多处理器.开源并免费的特性使其在 Internet 中小型网站中的使用率尤其高.在使用 mysql 的过程中不规范的 SQL 编写.非最优的 ...
- 如何在删除ibdata1和ib_logfile的情况下恢复MySQL数据库
昨天,有个朋友对公司内部使用的一个MySQL实例开启binlog,但是在启动的过程中失败了(他也没提,为何会失败),在启动失败后,他删除了ibdata1和ib_logfile,后来,能正常启动了,但所 ...
随机推荐
- Ubuntu下跑通py-faster-rcnn、详解demo运作流程
在不同的服务器不同的机器上做过很多次实验,分别遇到各种不一样的错误并且跑通Py-Faster-RCNN,因此,在这里做一个流程的汇总: 一.下载文件: 首先,文件的下载可以有两种途径: 1.需要在官网 ...
- Linux 驱动框架---linux 驱动
总述 Linux 系统下的驱动最后都是以如下这个结构体呈现在系统中的,注意其中的dev_pm_ops是内核新增的内容来准备替换platform_driver中的电源管理相关的内容.这里内容是先进行总体 ...
- Graphviz - Graph Visualization Software 开源可视化绘图工具(visio 类)
http://www.graphviz.org/Download_windows.php Welcome to Graphviz Available translations: Romanian, ...
- 微信公众号代码高亮美化工具 All In One
微信公众号代码高亮美化工具 All In One markdown 美化 mdnice 编辑器 https://www.mdnice.com/ https://github.com/mdnice ma ...
- window.navigator All In One
window.navigator All In One navigator "use strict"; /** * * @author xgqfrms * @license MIT ...
- pure CSS3 实现三角形icon的方法
pure CSS3 实现三角形icon的方法 border: color+transparent transform : rotate() /rotateZ() ? 使用 实体字符"◆&qu ...
- 微信小程序-云开发-实战项目
微信小程序-云开发-实战项目 微信小程序 微信小程序平台服务条款 https://developers.weixin.qq.com/miniprogram/product/service.html h ...
- Web Components All In One
Web Components All In One Web Components https://www.webcomponents.org/ HTML Template Custom Element ...
- jest & code testing
jest jest & code testing https://jestjs.io/zh-Hans/ 24.9 https://jestjs.io/docs/zh-Hans/getting- ...
- LGTM & code review
LGTM & code review LGTM is an acronym meaning looks good to me, frequently used when reviewing d ...