初识MySQL
-
什么是MySQL?
MySQL是由原瑞典的MySQL AB公司开发者开发,09年被甲骨文公司收购,它属于开源的关系型数据库管理系统,因速度、可靠性和适应性而备受关注。
-
为什么要使用MySQL数据库?
首先MySQL数据库相比较Oracle数据库成本比较低,能满足目前中小企业以及现在部分大企业的使用。
其次它是一款免费的数据库服务
MySQL下载与安装
目前各开发公司使用相对较多的版本是MySQL 5.7.*。本教程以5.7版本进行阐述。
下载
*由于官网打开及下载速度比较缓慢,也可到我的网盘中下载,方便大家使用
*网盘中5.7版本mysql存在两个安装zip,可根据自己的喜好进行安装使用
安装
*本文安装方法采用的是免安装版配置(直接解压并配置) || 也可以根据安装版进行安装配置
-
将下载好的zip解压到您常用的工作空间目录即可
-
解压完成后,我们在mysql的根目录(\bin目录同级)下新建my.ini配置文件
-
使用记事本打开刚新建的my.ini配置文件,将一下命令复制在里面
[mysqld]
basedir=C:\Program Files\MySQL\MySQL Server 5.7\
datadir=C:\Program Files\MySQL\MySQL Server 5.7\data\
port=3306
skip-grant-tables*basedir和datadir配置的路径是您计算机解压后的路径
*在首次配置时,datadir文件不存在,不需要您考虑,直接默认写上\data\路径即可,后期我们初始化的时候会生成这个文件
*port MySQL数据库默认的端口号
*skip-grant-tables 默认跳过密码验证,因为我们免安装的方式首次进入mysql操作是没有密码的,加上这个命令方便我们后期进行密码初始化
-
my.ini配置完成之后,我们在计算机的PATH环境变量中加入MySQL的环境变量
PATH下添加你的mysql解压文件下的bin文件夹
-
以上工作准备好后,接下来我们用管理员方式启动DOS命令
-
在DOS控制窗口中切换至MySQL的bin目录,然后我们键入mysql -install命令(安装MySQL服务)
mysqld -install当提示Service successfully installed输出,说明你的MySQL服务安装成功
*如果安装失败注意两个点:是否在bin\目录下;是否dos在管理员命令下
-
安装成功后 ,我们需要初始化数据文件
mysqld --initialize-insecure --user=mysql这个初始化是在初始化我们配置的my.ini文件以及mysql系统中的数据库表deng,这一步会给我们生成上边的data\文件
-
初始化完成后,我们需要在bin\目录下用DOS命令启动MySQL服务
net start mysql*如何看我们的服务是否启动成功:控制台上会打印我们服务是否启动成功;还可以在计算机中的任务管理器-服务列表中查看MySQL是否启动成功
-
服务启动后,我们用命令进入MySQL的管理页面
mysql -u root -p-u :用户名
-p :密码(初始化后首次进入密码可以为空)
-
进入MySQL服务后,我们进行密码修改操作
update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost';*需要注意的是安装的mysql版本不一致易导致修改密码操作会不同,5.7版本之前的密码字段是password,之后的密码字段是authentication_string,所以这一块需要注意
-
修改完成之后我们键入刷新权限命令
flush privileges -
密码修改完成后不要忘记把my.ini文件中的skip-grant-tables这一行注释掉
-
关闭并重启mysql 进行首次登陆
net stop mysql --关闭mysql服务
net start mysql --启动mysql服务
mysql -u root -p123456 --登陆mysql*键入密码时-p后不需要加入空格
*-- 代表的是注释
-
以上我们就配置完免安装的MySQL数据库操作
命令
-
展示当前服务所有的数据库
show databases; -
查看当前数据库中所有的表
show tables; -
查看具体表信息
describe 表名; -
创建数据库
create DATABASE [IF NOT EXISTS] 数据库名;[IF NOT EXISTS] --判断该数据库不存在
-
删除数据库
DROP DATABASE [IF EXISTS] 数据库名;[IF EXISTS] -- 判断该数据库存在
-
使用或切换数据库
use 数据库名;特殊字符例如USER 我们需要用``引起来使用
-
退出
exit -
创建表
CREATE TABLE [IF NOT EXISTS] `表名`(
`列名` 列类型 [属性] [索引][注释],
`列名` 列类型 [属性] [索引][注释],
......
`列名` 列类型 [属性] [索引][注释]
)[表引擎][表字符集设置][注释]
--例如
CREATE TABLE IF NOT EXISTS `student` (
`id` INT(10) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR(256) NOT NULL DEFAULT '匿名' COMMENT '姓名',
`brithday` DATETIME DEFAULT NULL COMMENT '生日',
PRIMARY KEY (`id`)
)ENGINE INNODB DEFAULT CHARSET utf8NOT NULL 不为空
AUTO_INCREMENT 自增
COMMENT 注释
DEFAULT 默认值
PRIMARY KEY 主键
ENGINE INNODB 引擎(innodb)
DEFAULT CHARSET utf8 默认字符集
-
逆向操作,查询建库、建表、表结构SQL语句
SHOW CREATE DATABASE 库名
SHOW CREATE TABLE 表名
DESC 表名 -
修改表名
ALTER TABLE 原表名 RENAME AS 新表名; -
增加表字段
ALTER TABLE 表名 ADD 列名 列属性; -
修改表字段
ALTER TABLE 表名 CHANGE 原列名 新列名 列属性; -
修改表约束及属性
ALTER TABLE 表名 MODIFY 列名 列属性 约束; -
删除表字段
ALTER TABLE 表名 DROP 列名; -
删除表
DROP TABLE IF EXISTS 表名;
列数据类型
-
数值
tinyint 十分小的数据类型 1个字节 smallint 较小的数据类型 2个字节 mediumit 中等的数据类型 3个字节 int 标准的整数型 4个字节 bigint 较大的数据类型 8个字节 float 浮点型 4个字节 double 浮点型 8个字节 decimal 字符串浮点型 M+2个字节
-
字符串
char 字符串固定大小 0-255 varchar 可变字符串 0-65535 tinytext 小文本 2^8-1 text 大文本 2^16-1 -
时间日期
date YYYY-MM-DD 日期格式 time HH:mm:ss 时间格式 datetime YYYY-MM-DD HH:mm:ss 时间日期格式 timestamp 时间戳 1970.1.1到现在的总毫秒数 -
null
NULL 或 未知
字段属性
-
Unsigned
无符号属性
-
Zerofill
0填充 例:int(3) 赋值3会变成 003
-
非空
字段值不允许为空
-
自增
主键逐一增加
引擎剖析
| MYISAM | INNODB | |
|---|---|---|
| 事务 | 不支持 | 支持 |
| 数据行锁定 | 不支持 | 支持 |
| 外键约束 | 不支持 | 支持 |
| 全文索引 | 支持 | 不支持 |
| 表空间大小 | 比较小 | 大 |
| 优点: | 节约空间,速度较快 | 安全性高,支持事务处理,多表多用户操作 |
MySQL引擎在物理文件上的区别
-
InnoDB在data文件夹数据表文件夹中只有一个*.frm文件、及上一级的ibdata1文件
-
MYISAM对应文件
-
*.frm -表结构的定义文件
-
*.MYD -数据文件
-
*.MYI -索引文件
-
字符集编码
-
默认字符集编码不支持中文
通过创表语句进行设置
CHARSET=UTF8也可以在my.ini配置文件中添加一行编码设置(不推荐)
default-character-set=utf8
浙公网安备 33010602011771号