目录
1.Mysql下载安装启动
1.下载
2.安装
3.配置
4. 启动mysql
5.客户端连接
2.图形化界面工具
1.安装
2. 使用
3.SQL
1.SQL分类
1.DDL
1.数据库操作
2. 表操作
3.表操作-数据类型
4.表操作-案例
1.Mysql下载安装启动
1.下载
官方: https://www.mysql.com/
MySQL官方提供了两种不同的版本:
社区版本(MySQL Community Server)
免费, MySQL不提供任何技术支持
商业版本(MySQL Enterprise Edition)
收费,可以使用30天,官方提供技术支持
这里采用的是MySQL最新的社区版-MySQL Community Server 8.0.26
下载地址: https://downloads.mysql.com/archives/installer/
2.安装
3.配置
安装好MySQL之后,还需要配置环境变量,这样才可以在任何目录下连接MySQL。
A. 在此电脑上,右键选择属性
B. 点击左侧的 "高级系统设置",选择环境变量
C. 找到 Path 系统变量, 点击 "编辑"
D. 选择 "新建" , 将MySQL Server的安装目录下的bin目录添加到环境变量
4. 启动mysql
MySQL安装完成之后,在系统启动时,会自动启动MySQL服务,我们无需手动启动了。
当然,也可以手动的通过指令启动停止,以管理员身份运行cmd,进入命令行执行如下指令
注意 : 上述的 mysql80 是我们在安装MySQL时,默认指定的mysql的系统服务名,不是固
定的,如果未改动,默认就是mysql80。
5.客户端连接
使用系统自带的命令行工具执行指令
mysql [-h 127.0.0.1] [-P 3306] -u root -p
参数:
-h : MySQL服务所在的主机IP
-P : MySQL服务端口号, 默认3306
-u : MySQL数据库用户名
-p : MySQL数据库用户名对应的密码
[]内为可选参数,如果需要连接远程的MySQL,需要加上这两个参数来指定远程主机IP、端口,如果
连接本地的MySQL,则无需指定这两个参数。
注意: 使用这种方式进行连接时,需要安装完毕后配置PATH环境变量。
2.图形化界面工具
下面的DDL(SQL语句,下面会讲)操作是如何操作数据库、操作表、操作表中的字段,而通过DDL语句执行在命令(DOS窗口)进行操作,主要存在以下两点问题:
1).会影响开发效率 ;
2). 使用起来,并不直观,并不方便 ;
所以呢,我们在日常的开发中,会借助于MySQL的图形化界面,来简化开发,提高开发效率。而目前
mysql主流的图形化界面工具,有以下几种:
我们最后一种DataGrip,这种图形化界面工具,功能更加强大,界面提示更加友好,
是我们使用MySQL的不二之选。接下来,我们来介绍一下DataGrip该如何安装、使用。
1.安装
安装包:https://pan.baidu.com/s/1cIePgaOmf7HPR5d1COWrTw
提取码:a9ul
1). 下载好安装包,双击开始安装
2). 点击next,一步一步的完成安装
选择DataGrip的安装目录,然后选择下一步
推荐在D盘新建一个文件夹,然后安装道里面
下一步,执行安装
2. 使用
选择后点ok
如图所示勾选,然后点击Evaluate
1). 添加数据源
参考图示, 一步步操作即可
配置以及驱动jar包下载完毕之后,就可以点击 "Test Connection" 就可以测试,是否可以连接
MySQL,如果出现 "Successed",就表名连接成功了 。
2). 展示所有数据库
连接上了MySQL服务之后,并未展示出所有的数据库,此时,我们需要设置,展示所有的数据库,具体
操作如下
3). 创建数据库
注意:
以下两种方式都可以创建数据库:
A. create database db01;
B. create schema db01;
4). 创建表
在指定的数据库上面右键,选择new --> Table
5). 修改表结构
在需要修改的表上,右键选择 "Modify Table..."
如果想增加字段,直接点击+号,录入字段信息,然后点击Execute即可。
如果想删除字段,直接点击-号,就可以删除字段,然后点击Execute即可。
如果想修改字段,双击对应的字段,修改字段信息,然后点击Execute即可。
如果要修改表名,或表的注释,直接在输入框修改,然后点击Execute即可。
6). 在DataGrip中执行SQL语句
在指定的数据库上,右键,选择 New --> Query Console
然后就可以在打开的Query Console控制台,并在控制台中编写SQL,执行SQL。
3.SQL
sql:全称 Structured Query Language,结构化查询语言。操作关系型数据库的编程语言,定义了
一套操作关系型数据库统一 标准 。
SQL 通用语法:
在学习具体的SQL语句之前,先来了解一下SQL语言的同于语法。
1). SQL语句可以单行或多行书写,以分号结尾。
2). SQL语句可以使用空格/缩进来增强语句的可读性。
3). MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。
4). 注释:
单行注释:-- 注释内容 或 # 注释内容
多行注释:/* 注释内容 */
1.SQL分类
SQL语句,根据其功能,主要分为四类:DDL、DML、DQL、DCL。
1.DDL
1.数据库操作
Data Definition Language,数据定义语言,用来定义数据库对象(数据库,表,字段) 。
更多详情
1). 查询所有数据库
mysql -u root -p
参数:
-h : MySQL服务所在的主机IP
-P : MySQL服务端口号, 默认3306
-u : MySQL数据库用户名
-p : MySQL数据库用户名对应的密码
2). 查询当前数据库
select database() ;
3). 创建数据库
提示:【】里面的内容表示可以省略
create database [ if not exists ] 数据库名 [ default charset 字符集 ] [ collate 排序 规则 ] ;
4). 删除数据库
drop database [ if exists ] 数据库名 ;
5). 切换数据库
use 数据库名 ;
2. 表操作
1). 查询当前数据库所有表
show tables;
2). 查看指定表结构
desc 表名 ;
3). 查询指定表的建表语句
show create table 表名 ;
4). 创建表结构
CREATE TABLE 表名( 字段1 字段1类型 [ COMMENT 字段1注释 ], 字段2 字段2类型 [COMMENT 字段2注释 ], 字段3 字段3类型 [COMMENT 字段3注释 ], ...... 字段n 字段n类型 [COMMENT 字段n注释 ] ) [ COMMENT 表注释 ] ;
注意: [...] 内为可选参数,最后一个字段后面没有逗号
比如,我们创建一张表 tb_user ,对应的结构如下,那么建表语句为:
create table tb_user( id int comment '编号', name varchar(50) comment '姓名',age int comment '年龄', gender varchar(1) comment '性别' ) comment '用户表';
3.表操作-数据类型
1). 数值类型
DECIMAL举例子:
例如123.45 精度是是5,标度(小数点后面的数字)是2
示例:
1.年龄: 因为人的年龄 没有负数,所以用无符号(UNSIGNED),年龄一般在(0,255)之间
故此:age TINYINT UNSIGNED
当然,也可以使用int,但是 TINYINT 只占1byte,而 INT 占据4字节,故此使用 TINYINT 节省空间
2.成绩: 以满分100分为例,假设保留一位小数
sore double(4,1)
4 代表最长的长度例如当100.1时
1 代表有几位小数
char 与 varchar 都可以描述字符串,char是定长字符串,指定长度多长,就占用多少个字符,和
字段值的长度无关 。而varchar是变长字符串,指定的长度为最大占用长度 。相对来说,char的性
能会更高些。
如:
1). 用户名 username ------> 长度不定, 最长不会超过50
username varchar(50)
2). 性别 gender ---------> 存储值, 不是男,就是女
gender char(1)
3). 手机号 phone --------> 固定长度为11
phone char(11)
3). 日期时间类型
如:
1). 生日字段 birthday
birthday date
2). 创建时间 createtime
createtime datetime
4.表操作-案例
设计一张员工信息表,要求如下:
1. 编号(纯数字)
2. 员工工号 (字符串类型,长度不超过10位)
3. 员工姓名(字符串类型,长度不超过10位)
4. 性别(男/女,存储一个汉字)
5. 年龄(正常人年龄,不可能存储负数)
6. 身份证号(二代身份证号均为18位,身份证中有X这样的字符)
7. 入职时间(取值年月日即可)
create table emp( id int comment '编号',workno varchar(10) comment '工号', name varchar(10) comment '姓名',gender char(1) comment '性别', age tinyint unsigned comment '年龄', idcard char(18) comment '身份证号', entrydate date comment '入职时间' ) comment '员工表';
5.表操作 - 修改
1). 添加字段
ALTER TABLE 表名 ADD 字段名 类型 (长度) [ COMMENT 注释 ] [ 约束 ];
案例:
为emp表增加一个新的字段”昵称”为nickname,类型为varchar(20)
ALTER TABLE emp ADD nickname varchar(20) COMMENT '昵称';
2). 修改数据类型
ALTER TABLE 表名 MODIFY 字段名 新数据类型 (长度);
3). 修改字段名和字段类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型 (长度) [ COMMENT 注释 ] [ 约束 ];
案例:
将emp表的nickname字段修改为username,类型为varchar(30)
ALTER TABLE emp CHANGE nickname username varchar(30) COMMENT '昵称';
4). 删除字段
ALTER TABLE 表名 DROP 字段名;
案例:
将emp表的字段username删除
ALTER TABLE emp DROP username;
5). 修改表名
ALTER TABLE 表名 RENAME TO 新表名;
案例:
将emp表的表名修改为 employee
ALTER TABLE emp RENAME TO employee;
6.表操作-删除
1). 删除表
DROP TABLE [ IF EXISTS ] 表名;
可选项 IF EXISTS 代表,只有表名存在时才会删除该表,表名不存在,则不执行删除操作(如果不
加该参数项,删除一张不存在的表,执行将会报错)。
案例:
如果tb_user表存在,则删除tb_user表
DROP TABLE IF EXISTS tb_user;
2). 删除指定表, 并重新创建表
TRUNCATE TABLE 表名;
注意: 在删除表的时候,表中的全部数据也都会被删除。
本部分是DDL内容
后续 DML、DQL、DCL 请关注此专栏
觉得内容不错,可以点赞收藏,关注。