一、序言
1、MySQL简介
本机安装的是MySQL5.7数据库,采用离线安装的方式,笔者打算把数据库学懂后再升级为8.0版本的。MySQL其实是一个数据管理系统(DataBase Managment System, DBSM),既包括数据的存储,又具有有数据的管理功能。MySQL5.7默认的引擎是InnoDB,它提供事务安全的存储机制。InnoDB通过建立行级锁来保证事务完整性并以Oracle风格的共享锁来处理Select语句。一般来说,对于MySQL5.0以上的版本,无须指定数据表的存储机制,因为系统默认使用InnoDB存储机制。除了InnoDB外,MySQL早期的数据库引擎是MylSAM,它对事物的支持并不好。SQL(Structured Query Language)是结构化查询语言,是操作和检索关系数据库的标准语言。
2、标准SQL的四种类型
1、DQL(Data Query Language)查询语句:主要由select关键字完成,查询语句是SQL语句中最复杂、功能最丰富的语句。
2、DML(Data Manipulation Language,数据操作语言)语句:主要由insert、update和delete三个关键字完成。
3、DDL(Data Definition Language,数据定义语言)语句:主要由create、alter、drop和truncate四个关键字完成。
4、DCL(Data Control Language,数据控制语言)语句:主要由grant和revoke两个关键字来完成。
3、启动、停止MySQL
由于是离线安装,因此并不支持在CMD命令行输入“ net start mysql ”这种启动方式,而是需要去MySQL的bin目录下找到mysqld.exe程序来运行启动数据库;同理,也不支持“ net stop mysql ”这种停止服务的方式,呃,怎么在bin目录里用exe程序来停服我没用过,在写这篇笔记时专门查过这个问题,但没找到答案,所以,我一般都是直接去任务管理器里结束mysql任务来停服。
4、MySQL数据类型
列类型 |
说明 |
tinyint/smallint/mediumint int/bigint |
1字节/2字节/3字节/4字节/8字节整数,又可分为有符号和无符号两种。这些整数类型的区别仅仅是表示的范围不同。 int默认最多11位, int(2) 必须是2位数字 |
float/double |
单精度、双精度浮点类型 |
decimal/dec |
精确小数类型,相对于float和double不会产生精度丢失的问题 decimal(6,2) |
date |
日期类型,不能保存时间,当把Java中的Date对象保存到date列时,时间部分丢失 |
time |
时间类型,不能保存日期,当把Java中的Date对象保存到date列时,日期部分丢失 |
datetime |
日期、时间类型 |
timestamp |
时间戳类型 不能没有值. 默认是系统当前时间. yyyy-MM-dd |
year |
年类型,仅仅保存时间的年份 |
char |
定长字符串类型 char(10) 必须是10个字符的字符串 |
varchar |
可变长度字符串类型 **** varchar(10) 最多10个字符 |
binary |
定长二进制字符串类型,它以二进制形式保存字符串 |
varbinary |
可变长度的二进制字符串类型,它以二进制形式保存字符串 |
tinyblob/blob/ mediumtblob/longblob |
1字节/2字节/3字节/4字节的二进制大对象,可以用于存储图片,音乐等二进制数据,分别可存储255B/64KB/16MB/4GB大小 |
tinytext/text mediumtext/longtext |
1字节/2字节/3字节/4字节的文本对象,可以用于存储超长的字符串,分别可存储255B/64KB/16MB/4GB大小的文本 |
一、SQL基础语句
1、数据库(database)的基本操作
(1)、查询(显示)所有数据库
show databases;
(2)、创建一个名为“ review ”的数据库
(3)、删除名为“ review ”的数据库
(4)、如果存在名为“review”的数据库,则不创建,否则创建名为“ review ”的数据库
(5)、如果存在名为“review”的数据库,则删除它,否则不删除
(6)、查看当前数据库下的所有表
show tables;