文章目录
- MySQL概述
- 数据库相关概念
- 小总结
- MySQL数据库
- 版本:
- 启动与停止
- 客户端连接
- 关系型数据库
- 数据模型
- 小总结
- SQL
- SQL通用语法
- SQL分类
- DDL
- 数据库操作
- 查询
- 创建
- 数据类型
- 数据类型的使用练习
- 修改
- 删除
- 小总结
- DML
- 添加数据
- 修改数据
- 删除数据
- 小总结
- DQL
- DCL
MySQL概述
数据库相关概念
数据库是数据存储的仓库,数据是有组织的进行存储
简称DataBase(DB)
数据库管理系统,操纵和管理数据库的大型软件
简称DataBase Management System(DBMS)
SQL是操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准
简称:Structured Query Language(SQL)
可以利用sql来操作数据库管理系统,用数据库管理系统来创建、操作一个数据库
或者利用sql来操作数据库管理系统,从而来操作数据库当中的数据
主流的关系型数据库管理系统
1、Oracle——大型收费的数据库(昂贵)
2、MySQL——开源免费的中小型数据库
3、Microsoft SQL Server——中型数据库(收费
4、PostgreSQL——开源免费的中小型数据库
小总结
1、数据库
数据存储的仓库
2、数据库管理系统
操纵和管理数据库的大型软件
3、SQL
操作关系型数据库的编程语言,是一套标准
MySQL数据库
版本:
MySQL官方提供了两种不同的版本
社区版(MySQL Community Server)
免费,MySql不提供任何技术支持
商业版(MySQL Enterprise Edition)
收费,可以试用30天,官方提供技术支持
(听取的课程里面采用的是MySQL的最新社区版(MySQL Community Server 8.0.26
启动与停止
(xin+r cmd
启动
net start mysql80
停止
net stop mysql80
mysql80是下载时候选择的服务名
客户端连接
方式一:MySQL提供的客户端命令行工具
方式二:系统自带的命令行工具执行指令
mysql [-h 127.0.0.1] [-p 3306] -u root -p
关系型数据库
关系型数据库
概念:建立在关系模型基础上,由多张相互连接的二维表组成的数据库
这两张表就是二维表(excel表
特点:
1、使用表存储数据,格式统一,便于维护
2、使用SQL语言操作,标准统一,使用方便
数据模型
下载完mysql,我们的电脑就成为了数据库服务器
在客户端上,我们可以利用sql来操作数据管理系统,而在数据库管理系统之中我们可以创建、维护数据库,又可以在数据库中创建多张表,维护、使用
小总结
1、MySQL下载及安装
MySQL社区版
2、MySQL启动
net start mysql80
net stop mysql80
3、MySQL客户端连接
MySQL自带的客户端(cmd)命令行
mysql [-h 127.0.0.1] [-P 3306] -u root -p
4、MySQL数据模型
数据库
表
在一个数据库服务器当中可以创建多个数据库
在一个数据库当中又可以创建多张表
而基于表进行数据存储的数据库,我们就称之为关系型数据库
SQL
SQL通用语法
1、SQL语句可以单行或多行书写,以分号结尾
2、SQL语句可以使用空格/缩进来增强语句的可读性
3、MySQL数据库的SQL语句不区分大小写,关键字建议使用大写
4、注释
单行注释:–注释内容 或 # 注释内容(MySQL特有)
多行注释:/*注释内容*/
SQL分类
DDL
全称:Data Definition Language
说明:数据定义语言,用来定义数据库对象(数据库,表,字段)
DML
全称:Data Manipulation Language
说明:数据操作语言,用来对数据库表中的数据进行增删改
DQL
全称:Data Query Language
说明:数据查询语言,用来查询数据库中表的记录
DCL
全称:Data Control Language
说明:数据控制语言,用来创建数据库用户、控制数据库的访问权限
DDL
数据定义语言,用来定义数据库对象(数据库,表,字段)
数据库操作
查询:
查询所有数据库
SHOW DATABASES;
查询当前数据库
SELECT DATABASE();
创建
CREAT DATABASE [ IF NOT EXISTS] 数据库名 [ DEFAULT CHARSET 字符集][ COLLATE 排序规则];
删除
DROP DATABASE [ IF EXISTS]数据库名;
使用
USE 数据库名;
查询
查询当前数据库所有表
SHOW TABLES;
查询表结构
DESC 表名;
查询指定表的建表语句
SHOW CREATE TABLE 表名;
创建
CREATE TABLE 表名(
字段1 字段1类型[ COMMENT 字段1注释],
字段2 字段1类型[ COMMENT 字段2注释],
字段3 字段1类型[ COMMENT 字段3注释],
......
字段n 字段1类型[ COMMENT 字段n注释],
)[ COMMENT 表注释];
注意:[ … ]为可选参数,最后一个字段后面没有逗号
create table tb_user1(
id int comment '编号',
name varchar(50) comment '姓名',
age int comment '年龄',
gender varchar(1) comment '性别'
) comment '用户表';
数据类型
MySQL中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型。
精度就是数字长度(整数部分加小数部分的长度)
标度就是数字小数部分的长度
带blob的是用来描述二进制数据的(视频、音频)
带test的是用来描述文本数据
char和varchar使用时后面要加上一个数字,表示当前字符串能够存储的最大长度是多长
char(定长字符串):未占用的字符其他空间会使用空格进行补位,
varchar(变长字符串)它会根据你所存储的内容去计算当前所占用的空间是多少
char的性能比varchar好,但也不是说varchar性能差,只是说两者比较时varchar性能差于char,因为它还要去计算你当前所占用的空间
用户名不能超过多少长度,用哪个更合适?varchar
性别?char,不是男就是女
数据类型的使用练习
根据需求创建表(设计合理的数据类型、长度)
设计一张员工表,要求如下:
1、编号(纯数字)——————————————int
2、员工工号(字符串类型,长度不超过10位)
3、员工姓名(字符串类型,长度不超过10位)
4、性别(男/女,存储一个汉字)
5、年龄(正常人年龄,不可能存储负数)
6、身份证号(二代身份证号均为18位,身份证中有X这样的字符)
7、入职时间(取值年月日即可)
create table tb_user2(
id int,
worknumber varchar(10),
workname varchar(10),
gender char(1),
age tinyint unsigned,
idcard char(18),
entryDate date
) comment '员工表';
修改
添加字段
ALTER TABLE 表名 ADD 字段名 类型(长度)[COMMENT 注释] [约束];
修改数据类型
ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);
修改字段名和字段类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];
删除字段
ALTER TABLE 表名 DROP 字段名;
修改表名
ALTER TABLE 表名 RENAME TO 新表名;
删除
删除表
DROP TABLE [IF EXISTS] 表名;
删除指定表,并重新创建该表
TRUNCATE TABLE 表名;
删除表并重新创建有什么意义?
把表里面的数据全部删掉,表的框架还在,相当于游戏数据重置。游戏本身还在,但是你玩的全部数据都没了
小总结
1、数据库操作
SHOW DATABASES;
SELECT DATABASE 数据库名;
USE 数据库名;
SELECT DATABASE();
DROP DATABASE [ IF EXISTS]数据库名;
2、表操作
SHOW TABLES;
CREATE TABLE 表名(
字段1 字段1类型[ COMMENT 字段1注释],
字段2 字段1类型[ COMMENT 字段2注释],
字段3 字段1类型[ COMMENT 字段3注释],
......
字段n 字段1类型[ COMMENT 字段n注释],
)[ COMMENT 表注释];
DESC 表名;
SHOW CREATE TABLE 表名;
ALTER TABLE 表名 ADD/MODIFY/CHANGE/DROP/RENAME TO...;
DROP TABLE 表名;
DML
数据操作语言,用来对数据库表中的数据进行增删改
DML英文全称是Data Manipulation Langueage(数据操作语言),用来对数据库中表的数据记录进行增删改操作
添加数据(INSERT)
修改数据(UPDATE)
删除数据(DELETE)
添加数据
1、给指定字段添加数据
INSERT INTO 表名(字段名1,字段名2,...) VALUES (值1,值2,...);
2、给全部字段添加数据
INSERT INTO 表名 VALUES (值1,值2,...);
3、批量添加数据
INSERT INTO 表名 (字段名1,字段名2,...) VALUES (值1,值2,...),(值1,值2,...),(值1,值2,...);
INSERT INTO 表名 VALUES (值1,值2,...),(值1,值2,...),(值1,值2,...);
注意:
插入数据时,指定的字段顺序需要与值的顺序是一一对应的。
字符串和日期型数据应该包含在引号中。
插入的数据大小,应该在字段的规定范围内。
修改数据
UPDATE 表名 SET 字段1 = 值1 , 字段名2 = 值2 , ...[WHERE 条件];
注意:修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据
删除数据
DELETE FROM 表名 [WHERE 条件]
注意:
delete语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的数据
delete语句不能删除某一个字段的值(可以使用UPDATE)。
小总结
1、添加数据
INSERT INTO 表名(字段名1,字段名2,...) VALUES (值1,值2,...)[,(值1,值2,...) ...];
2、修改数据
UPDATE 表名 SET 字段1 = 值1 , 字段名2 = 值2 , ...[WHERE 条件];
3、删除数据
DELETE FROM 表名 [WHERE 条件]