MySQL—1
一、数据库简介
(一)数据库相关概念
- 数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。
- 1.数据库系统:DBS (DataBase System)通常由数据库、数据库管理系统和数据管理员组成。
- 2.数据库管理系统:DBMS (Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。
- 3.数据库管理员:DBA (Database Administrator),是从事管理和维护数据库管理系统(DBMS)的相关工作人员,一般是由业务水平较高、资历较深的人员担任。
- 4.数据库:DB (Database )是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合,可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。
概念关系图示
- 关系图
(二)数据库分类
- 关系型数据库
- 概述:简单理解就是以二维表格的形式存储数据,而一个关系型数据库就是由二维表及其之间的关系组成的一个数据组织。
- 常见的关系型数据库:https://www.cnblogs.com/tsxylhs/p/11386415.html
- Oracle:IBM公司的商业数据库。
- SQLServer:微软旗下的一款开源数据库。
- DB2:商业银行使用较多。
- Mysql: 一款开源的数据系统。
- 非关系型数据库
- 概述:NoSQL泛指非关系型的数据库。结构简单,数据之间无关系,这样就在架构的层面上带来了可扩展的能力。
- 常见非关系型数据库:
https://blog.csdn.net/qq_34116402/article/details/79578187- Redis:
- Redis是一个key-value存储系统,key为字符串类型,只能通过key对value进行操作,支持的数据类型包括string、list、set、zset(有序集合)和hash。Redis支持主从同步,数据可以从主服务器向任意数量的从服务器上同步。
- MongoDb
- 一个基于分布式文件存储的开源数据库系统,为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB 将数据存储为一个文档,数据结构由键值(key value)对组成。
- Hbase
- 列式存储以流的方式在列中存储所有的数据。
- Neo4j
- 是一个高性能的 NoSQL 图形数据库,把数据保存为图中的节点以及节点之间的关系。
- Redis:
二、MySQL数据库介绍
(一)基本介绍
- 简介:MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。
- 优势:
- 1.开放源代码且无版权制约,自主性及使用成本低。
- 2.体积小,速度快,安装方便,易于维护。
- 3.支持多种操作系统,提供多种API接口,支持多种开发语言。
(二)MySQL数据库
登录数据库服务:
语法: mysql [-h IP地址] -u用户名 -p密码
- 数据的登录:
三、SQL语言
(一)SQL语言简介
- 概述:
- 结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
注意: sql只针对关系型数据库。
- 结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
- 分类:
- 1、数据定义语言(DDL):针对数据库或表做创建、修改和删除操作。关键字:CREATE,ALTER,DROP和SHOW。
- 2、数据查询语言(DQL):针对表中数据做查询操作,关键字:SELECT。
- 3、数据操作语言(DML):针对表中数据做添加、修改和删除操作,关键字:INSERT、UPDATE和DELETE。
- 4、数据控制语言(DCL):通过GRANT或REVOKE关键字实现权限控制。
- 5、事务控制语言(TCL):通过COMMIT、SAVEPOINT、ROLLBACK命令确保被DML语句影响的表的所有行及时得以更新。
- 6、指针控制语言(CCL):通过DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT语句对一个或多个表单独行进行操作。
- 其中DDL、DML、DQL将做为本阶段学习的重点,其他几种仅做为了解。
- 语法说明:
1、sql语言不严格区分大小写,通常关键字大写,其他小写。
2、sql语句通常以封号结束,如果是dos命令下,封号不能省略,表示一条语句结束。
(二)DDL数据定义语言
- 概述:
- DDL(Data Definition Language)数据定义语言主要是针对数据库或表做创建、修改和删除操作的。主要涉及的关键字有:
CREATE:创建
ALTER:修改
DROP:删除
SHOW:查询
- DDL(Data Definition Language)数据定义语言主要是针对数据库或表做创建、修改和删除操作的。主要涉及的关键字有:
- DDL之数据库的操作
-
1.创建数据库:
语法: create database [if not exists] 数据库 名 [character set | charset ] [=] 字符编码;- 全语法创建:
- 简写1
- 简写2
- 加上if not exists 和不加的区别:
加上如果数据已经存在,不会报错,直接存在的数据库,如果不加,则会报错。
加上字符编码和不加字符编码的区别:
加上字符编码会使用指定的字符编码,不加则使用数据库默认的字符编码。
- 全语法创建:
-
2、查询服务器上已存在的所有数据库
语法:show databases;- 实例:
- 实例:
-
3.查看数据库的创建结构:
语法: show create database 数据库名;- 实例:
- 实例:
-
4.修改数据库字符集
语法: alter database 数据库名 charset 新的字符编码;- 实例:
- 实例:
-
5、使用当前要操作的数据库
语法: use 数据库名;- 使用数据库:
- 注意: 如果要操作数据库里面的内容,则需要先执行使用数据库的命令。
- 使用数据库:
-
6、删除数据库
语法: drop database 数据库名;- 删除数据库:
- 删除数据库:
-
- DDL之表的操作
- MySQL中的数据类型
- 整数类型:tinyint、int
- 浮点类型:: float ([M,D]) 单精度浮点数据、
double[(M,D)], 双精度浮点数据 ,其中M 表示最大长度,D 表示小数点后的保留位数 - 字符串类型: CHAR(M)和VARCHAR(M)类型
M: 表示字符串的长度,必须写不能省略,
字符串类型的数据必须加引号,可以是单引号也可以是双引号
char 和 varchar 的区别:
char(M) 中给定的M表示该字段所占的实际空间大小。但是可以实现100% 的空间占用率。
varchar(M) 中的M 表示该字段的最大可存放字符量,实际占用大小根据存放到该内数据的实际大小确定。不能实现100%空间占用。
TEXT:用于存放大量文本。 - 日期类型:
- DateTime : 用来存放年月日时分秒,默认值是否null
- Date: 年月日
- time: 时分秒
- timestamp 时间戳,是当前时间距离1970 0时到当前时间的毫秒数。默认为当前时间的毫秒数据。
- DDL之数据表的操作语法
- 概述:通常情况下,一个MySQL服务器上有多个数据库,一个数据库里包含多张数据表,一张数据表又由多列(字段)组成,而一张表中可以存储多条记录,也就是我们所说的行。
- java中的对象和表的关系图:
- 关系图:
- 关系图:
- 表的操作
- 1.创建数据表:
语法: create table 表名(
列名1 列类型1 [ 约束],
列名2 列类型2 [约束],
…
);
注意L操作数据库中表时,先使用use 数据库名进入数据库;- 创建表:
- 创建表:
- 2、查看表创建结构:
语法: show create table 表名; - 3、查看当前数据库中的所有表:
语法: show tables;- 实例:
- 实例:
- 4、修改表
- 1、修改表名:
语法: alter table 旧表名 rename 新表名;- 实例:
- 实例:
- 2、给表添加列:
- 1、alter table 表名 add 字段名 字段类型 [约束];
- 实例:
- 实例:
- 2、在最前面添加一个新字段:
语法: alter table 表名 add 字段名 字段类型 [约束] first;- 实例:
- 实例:
- 3、在指定的字段前面添加一个新字段:
语法: alter table 表名 add 新字段 字段类型 after 参考字段;- 实例:
- 实例:
- 4、修改字段的类型和约束:
语法: alter table 表名 modify 原字段名称 新的类型 [约束];- 实例:
- 实例:
- 5、修改字段并修改字段原来的名称:
语法:alter table 表名 change 旧字段名 新字段名 字段类型 [约束] ;- 实例:
- 实例:
- 6、删除表中的字段:
语法: alter table 表名 drop 字段名;- 实例:
- 实例:
- 1、alter table 表名 add 字段名 字段类型 [约束];
- 1、修改表名:
- 5、查看表结构:
语法: desc 表名;- 实例:
- 实例:
- 6、删除表
语法:drop table 表名;- 实例:
- 实例:
- 1.创建数据表:
- MySQL中的数据类型
(三)安装视图工具Navicat
- 常见的视图工具:
sqlyog 是开源的mysql客户端工具,主要用于mysql.
navicate: 是收费的,可以支持大多数数据。 - navicate的安装
- navicate安装.docx
(四)DML数据操作语言
- 概述:
- DML(Data Manipulation Language)数据操作语言,主要是针对数据表做增、删、改操作。主要涉及的关键字有:
insert 添加
update 修改
delete 删除
- DML(Data Manipulation Language)数据操作语言,主要是针对数据表做增、删、改操作。主要涉及的关键字有:
- insert添加操作
- update 修改
- delete 删除
- insert添加操作:将数据插入表中
- 单行插入语法1:
insert into 表名(字段名1,字段名2,…)values(字段值1,字段值2,…);
insert into 表名 set 字段名1 = 字段值1,字段名1 = 字段值1,…; - 多行插入的语法:
insert into 表名insert into 表名(字段名1,字段名2,…)value(字段值1,字段值2,…),(字段值1,字段值2,…),… ;
- 单行插入语法1:
- update 修改: 用于修改表中的数据
- 语法: update 表名 set 字段名1=字段值 1,字段名2 = 字段值2,… [where 限定条件];
- delete 删除
- 语法: delete from 表名 [where 限定条件]
- truncate: 删除表中的所有数据
- 语法: truncate 表名;
- delete 和truncate的区别:
- 1、delete删除数据时可以给定限定条件删除指定的行,而truncate没有限定条件只能全表删除。
- 2、delete全表删除数据时,是一条数据一条数据删除的,而truncate删除是先将整张表删除在创建一张一样的表,但是truncate效率高于delete.
- 3、delete 删除的数据相当于将数据放入回收站,是可以再找回的,但是truncate相当于在命令行删除,是没办法找回的,本质是DDL操作。
(五)DQL数据查询语言
- 概述
- DQL(Data Query Language)数据查询语言,主要是针对数据表做查询操作。查询操作只是根据用户需求从原始数据表中筛选出符合查询条件的结果集,对原始表的数据没有任何影响。
查询关键字:select
- DQL(Data Query Language)数据查询语言,主要是针对数据表做查询操作。查询操作只是根据用户需求从原始数据表中筛选出符合查询条件的结果集,对原始表的数据没有任何影响。