MySQL基本使用
windows
1
、下载
https://dev.mysql.com/downloads/mysql/
MySQL
本来是完全免费的产品,被
Oracle
收购后,现在分为
3
个不同的版本:
- MySQL企业版,收费或者试用
- MySQL社区版,免费的
- MySQL高级集群版,收费
- MySQL经典版,老版本,免费
在线安装
需要网络支持
- 选择安装类型,这里选择使用
- 选择需要安装的产品和特征
- 开始执行环境配置
绿色安装
解压压缩文件
mysql-8.0.15-winx64.zip
,将解压得到的目录可以移动到任何位置
执行初始化操作,首先进入
mysql
的
bin
目录,在
cmd
窗口中执行命令
mysqld --initialize --console
注意:如果data目录已经存在,则需要删除data目录后再执行命令
在执行初始化操作过程中会显示一个临时生成的口令
使用 mysqld --install 将mysql添加到系统服务中,默认当机器启动时会自动启动mysql服务
使用net start mysql启动数据库服务
使用命令 mysql -uroot -p 打开客户端连接已经启动的数据库服务,这里需要输入上面生成的临时口令
修改口令
alter user 'root'@'localhost' identified with mysql_native_password by '
新口
令
'
关闭服务器
net stop mysql
删除
mysql
系统服务
mysqld
--
remove
常用命令
启动客户端:在
bin
目录下
mysql
-
uroot
-
p123456
命令格式为: mysql -u 用户名 -p 口令 -P 端口号 -h 主机名称 。在实际应用中,不建议直接使用 -p 口令的这种格式如果正常启动,则可以看到命令提示符 mysql>如果需要在任意目录都可以打开客户端,则需要将 bin 的绝对目录添加到 path 系统环境变量中
查看所有的数据库 show databases;
注意 information_schema 、 mysql 、 sys 、 performance_schema 都属于系统数据库,不要直接操作这些数据库
切换当前数据库 use 数据库名称;
查看当前数据库下的所有数据表 show tables;
查看某个数据表的结构定义 desc 数据表名称;
放弃正在输入的命令 \c
显示命令清单 \h
退出客户端
\q
,也可以使用
exit
或者
quit
查看服务器的状态信息
\s
退出客户端
quit
SQL语句
在
MySQL
中可以将
SQL
分为
4
大类
- DDL数据定义语言,create创建、alter修改、drop删除、truncate截断
- DML数据操纵语言,insert插入、update修改、delete删除
- DQL数据查询语言,select查询
- DCL数据控制语言,grant授权、revoke回收权限
DDL数据定义语言
用于定义数据库对象的操作语句
数据库操作
创建操作
注意: DATABASE 不能改名。一些可视化工具可以改名,它是建新库,把所有表复制到新库,再删旧库完成
语法规则
create database
数据库名称
default character set utf8
,一般默认编码字符集为
latin1
create database test default character set utf8; -- 创建数据库,名称为 test ,默认编码字符集为 utf-8-- 如果数据库已经存在,则再次创建会报错create database if not exists test default character set utf8; -- 如果 test 已经存在则不执行创建操作,同时不会报错
如果数据库创建成功,则自动在数据文件夹data下新增一个test目录
删除操作
语法规则
drop database
数据库名称
;
drop database test; -- 删除指定数据库;如果数据库不存在则报错drop database if exists test; -- 如果存在则删除,如果不存在也不报错
查看所有数据库
show databases
;
mysql
中允许同时打开多个数据库,不同的数据库管理系统不一样
切换当前数据库
use
数据库名称
;
use test; -- 如果数据库存在则切换到指定的数据库 test 下进行操作;如果不存在则报错
查看当前操作的数据库
select database();
查看数据库的创建语句
show create datbase test;
注意:要操作表格和数据之前必须先说明是对哪个数据库进行操作,否则就要对所有对象加上 “ 数据库名 .” 。
更改数据库字符集
ALTER DATABASE 数据库名 CHARACTER SET 字符集 ; # 比如: gbk 、 utf8 等
默认系统数据库
系统数据库就是供
DBMS
使用的数据库,如果损坏则会导致
DBMS
无法正常启动,所以一般不建议直接操作
- information_schema记录所有数据库和数据库中表的信息
- mysql记录时区、权限之类的配置信息
- sys保存和锁、统计相关的信息
- performance_schema用于实现对运行过程的资源的使用情况的统计
-
test 非系统数据库,仅供测试样例
数据表的操作
创建数据表基本语法:
create table
数据表的名称
(
数据列的名称 数据类型 约束规则
,......)engine=
存储引擎名称
default charset utf8
;
create table tb_student( -- 这里可以加入 if not exists 表示不存在时才进行创建。注意在一个数据库中的表名称不允许重复。按照阿里的规范,要求基表名称必须使用【 tb_ 表】id bigint primary key auto_increment,name varchar ( 20 ) not null ,sex boolean default 1 -- 在 mysql 数据库中有一些属性数据类型的别名) engine=innodb default charset utf8; -- 实际上从 MySQL5.5 开始默认存储引擎就是 innodb ,但是一般建议还是添加上存储引擎的设置
数据表创建完成,则会发现在
data/test
目录下出现一个文件
tb_student.ibd
一般使用的存储引擎
engine
常见的有
innodb
和
myisam
两种,如果使用
myisam
则会创建两个文件,
1
、
.myd
数据信息文件,其中包含表的数据;
2
、
.myi
索引信息文件,是用于提高查询效率的索引数据
查看表中的列定义 desc tb_student;

查看具体的列定义 show create table tb_student;
标识符命名
数据库涉及的字符规范,注意不是语法规则,属于建议性质的规则
- 采用a-z英文字母、数字0-9和下划线_组成,共63个字符,不能出现其他字符,除非是注释
- 不区分大小写
- 使用中文字符实际上是不会有语法错误的,但是不建议
- 一般命名长度不要超过30个字符的系统限制,变量名称由于需要使用@标识符,所以长度限制为29
- 数据库对象、变量的命名都采用英文字符,禁止使用中文命名,绝对不允许在对象名称中间出现空格
- 如果在命名过程中破坏规则实际上引入反引号就好`,注意不是单引号
- create table `t 1`(id int);
- 小心保留字,尽量保证命名中不采用保留字,避免容易产生冲突
- 注意开发中字段名称和类型名称的一致性
数据类型
- 定义数据类型就是定义列,数据类型决定数据的特性
- 数据类型主要分为字符串类型,浮点书类型和定点数类型,日期类型以及二进制类型
- 数据类型在不同的存储引擎上表现不同
- 根据所采用的数据类型,需求和数据特性选择数据类型