目录

  • 数据库是什么?
  • MySQL
    • MySQL安装(解压)
    • 配置
    • 全局配置
  • SQL通用语法
    • SQL分类
      • DDL操作数据库
      • DDL操作表
      • DML操作表中数据
      • DQL查询
        • where条件
        • 聚合函数
    • 约束
      • 什么是约束、约束的作用
        • 非空约束
        • 唯一约束
        • 主键约束
        • 默认约束
        • 外键约束
    • 多表查询
      • 内连接
    • 事务

数据库是什么?

  • 存储数据的仓库,数据有组织的进行存储
  • 英文:DataBase,简称DB

MySQL

MySQL安装(解压)

根据自己电脑去下载对应版本  MySQL下载地址

配置

  1. 安装MySQL
    以管理员身份进入命令行,如下图
  2. 切换到mysql的bin目录
//我的mysql没有装到C盘,而是装到了D盘,所有我要先切换到D盘
//将我的路径切换为你自己的即可
cd D:\soft\MySQL\mysql-8.0.26-winx64\bin


3. 安装mysql的服务

mysqld --install


4. 开启mysql服务

net start mysql

全局配置

  1. 点击"我的电脑"–>“属性”–>‘‘高级系统设置’’–>‘‘环境变量’’,接下来如下图所操作

  2. 修改默认密码
mysqladmin -u root password 1234
  1. 测试环境是否成功
  2. 新建配置文件
//D:\soft\MySQL\mysql-8.0.26-winx64我的是这个目录下,你写你自己的目录即可

SQL通用语法

  1. SQL语句可以单行或多行,以分号结尾。
  2. MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。
  3. 注释
    单行注释:-- 注释内容 或 #注释内容(MySQL特有)
    多行注释:/* 注释*/

SQL分类

  • DDL:(Data Definition Language)数据定义语言,用来定义数据库对象:数据库,表,列等(操作数据库,表
  • DML:(Data Manipulation Language)数据操作语言,用来对数据库中表的数据进行增删改(对表中数据进行增删改
  • DQL:(Data Query Language)数据查询语言,用来查询数据库中表的数据(对表中数据进行查询
  • DCL:(Data Control Language)数据控制语言,用来定义数据库的访问权限和安全级别,及创建用户(对数据库权限控制

DDL操作数据库

#查询
SHOW DATABASE;
#创建
create database 数据库名称;
#创建数据库(判断不存在则创建)
create database if not exists 数据库名称;
#删除数据库
drop database 数据库名称;
#删除数据库(判断若存在则删除)
drop database if exists 数据库名称;
#使用数据库
USE 数据库名称;
#查看当前使用的数据库
select database();

DDL操作表

#查询
show tables;
#查询表结构
desc 表名称;
#创建表(注意最后一行末尾不能加逗号)
create table 表名(字段1 数据类型1,字段2 数据类型2,...字段n 数据类型n
);
#修改表名
alter table 表名 rename to 新的表名;
#添加一列
alter table 表名 add 列名 数据类型;
#修改数据类型
alter table 表名 modify 列名 新数据类型;
#修改列名和数据类型
alter table 表名 change 列名 新列名 新数据类型;
#删除列
alter table 表名 drop 列名;

DML操作表中数据

#给指定列添加数据
insert into 表名(列名1,列名2,...)values(值1,值2,...);
#给全部列添加数据
insert into 表名 values(值1,值2,...);
#批量添加数据
insert into 表名(列名1,列名2,...)values(值1,值2,...),(值1,值2,...),(值1,值2,...)...;
insert into 表名 values(值1,值2,...),(值1,值2,...),...
#修改表数据
update 表名 set 列名1=值1,列名2=值2,...[where条件]
#删除数据
delete from 表名 [where条件]
#ps:若是不急where条件,则会修改、删除全部数据

DQL查询

#基础查询
select 字段列表 from 表名 where 条件列表 group by 分组列表 having 分组后条件 order by 排序字段 limit 分页限定;
#查询所有数据
select * from 表名;
#查询多个字段
select 字段列表 from 表名;
#去除重复记录
select distinct 字段列表 from 表名;
#别名
AS AS可以省略#条件查询
select 字段列表 from 表名 where 条件列表;
#排序查询
#排序放方式 ASC升序(默认) DESC 降序
#若有多个排序条件,当前边的条件一样,才会根据第二条件进行排序
select 字段列表 from 表名 order by 排序字段1 [排序方式] 排序字段2 [排序方式]...;
#聚合函数 ps:null不参与所有的聚合函数运算
select 聚合函数名(列名) from 表名;
#分组查询
select 字段列表 from 表名[where 分组前条件限定] group by 分组字段名[HAVING 分组后条件过滤]
#where 和having区别:
#执行时机不同:where是在分组之前进行限定,不满足where条件不参加分组,而having是分组#后对结果进行过滤
#可判读的条件不一样:where不能对聚合函数进行判断,having可以
#执行顺序:where > 聚合函数 > having
#分页查询
select 字段列表 from 表名 limit 起始索引,查询条数;
#起始索引:从0开始
#计算公式:起始索引 = (当前页码 - 1 )* 每页显示条数

where条件

符号 功能
> 大于
< 小于
>= 大于等于
<= 小于等于
= 等于
<>或 != 不等于
BETWEEN…AND… 在某个范围之内(左右都包含)
IN(…) 多选一
LIKE 占位符 模糊查询 _单个任意字符 %多个任意字符
IS NULL 是NULL
IS NOT NULL 不是NULL
AND 或 && 并且
OR 或 ||
NOT 或 ! 非,不是

聚合函数

函数名 功能
count(列名) 统计数量(一般选用不为null的列)
max(列名) 最大值
min(列名) 最小值
sum(列名) 求和
avg 平均数

约束

什么是约束、约束的作用

约束是作用于表中列上的规则,用于限制加入表的数据。
约束的存在保证了数据库中数据的正确性、有效性完整性

约束名称 描述 关键字
非空约束 保证列中所有数据不能有null值 NOT NULL
唯一约束 保证列中所有数据各不相同 UNIQUE
主键约束 主键是一行数据的唯一标识,要求非空且唯一 PRIMARY KEY
默认约束 保存数据时,未指定值采用默认值 DEFAULT
外键约束 外键用来让两个表的数据建立连接,保证数据的一致性和完整性 FOREIGN KEY

非空约束

#创建表时添加非空约束
create table 表名(列名 数据类型 NOT NULL,...
);
#建完表后添加非空约束
alter table 表名 modify 字段名 数据类型 NOT NULL;
#删除约束
alter table 表名 modify 字段名 数据类型;

唯一约束

#创建表时添加唯一约束
CREATE TABLE 表名(列名 数据类型 UNIQUE [AUTO_INCREMENT],-- AUTO_INCREMENT: 当不指定值时自动增长…
);
#建完表后添加唯一约束
ALTER TABLE 表名 MODIFY 字段名 数据类型 UNIQUE;
#删除唯一索引
ALTER TABLE 表名 DROP INDEX 字段名;

主键约束

#创建表时添加主键约束
CREATE TABLE 表名(列名 数据类型 PRIMARY KEY [AUTO_INCREMENT],…
);
CREATE TABLE 表名(列名 数据类型,[CONSTRAINT] [约束名称] PRIMARY KEY(列名)
);
#建完表后添加主键约束
ALTER TABLE 表名 ADD PRIMARY KEY(字段名);
#删除约束
ALTER TABLE 表名 DROP PRIMARY KEY;

默认约束

#创建表时添加默认约束
CREATE TABLE 表名(列名 数据类型 DEFAULT 默认值,…
);
#建完表后添加默认约束
ALTER TABLE 表名 ALTER 列名 SET DEFAULT 默认值;
#删除约束
ALTER TABLE 表名 ALTER 列名 DROP DEFAULT;

外键约束

#创建表时添加外键约束
CREATE TABLE 表名(列名 数据类型,…[CONSTRAINT] [外键名称] FOREIGN KEY(外键列名) REFERENCES 主表(主表列名)
);
#建完表后添加外键约束
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称);
#删除外键约束
ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;

多表查询

内连接

  • 内连接查询 :相当于查询AB交集数据
#隐式内连接
SELECT 字段列表 FROM 表1,表2… WHERE 条件;
#显示内连接
SELECT 字段列表 FROM 表1 [INNER] JOIN 表2 ON 条件;
#上面语句中的inner可以省略,可以书写为如下语句
select 字段列表 from 表1 join 表2 on 条件;
  • 外连接查询

    • 左外连接查询 :相当于查询A表所有数据和交集部门数据
#左外连接查询
SELECT 字段列表 FROM 表1 LEFT [OUTER] JOIN 表2 ON 条件;
* 右外连接查询 : 相当于查询B表所有数据和交集部分数据
SELECT 字段列表 FROM 表1 RIGHT [OUTER] JOIN 表2 ON 条件;
  • 子查询
    查询中嵌套查询,称嵌套查询为子查询

    • 子查询语句结果是单行单列,子查询语句作为条件值,使用 = != > < 等进行条件判断
    • 子查询语句结果是多行单列,子查询语句作为条件值,使用 in 等关键字进行条件判断
    • 子查询语句结果是多行多列,子查询语句作为虚拟表

事务

数据库的事务(Transaction)是一种机制、一个操作序列,包含了一组数据库操作命令
事务把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么同时成功,要么同时失败
事务是一个不可分割的工作逻辑单元。

  • 事务语法
#开启事务
START TRANSACTION;
或者
BEGIN;
#提交事务
commit;
#回滚事务
rollback;
  • 事务的四大特征

    • 原子性(Atomicity): 事务是不可分割的最小操作单位,要么同时成功,要么同时失败
    • 一致性(Consistency) :事务完成时,必须使所有的数据都保持一致状态
    • 隔离性(Isolation) :多个事务之间,操作的可见性
    • 持久性(Durability) :事务一旦提交或回滚,它对数据库中的数据的改变就是永久的

说明:

mysql中事务是自动提交的。

也就是说我们不添加事务执行sql语句,语句执行完毕会自动的提交事务。

可以通过下面语句查询默认提交方式:

SELECT @@autocommit;

查询到的结果是1 则表示自动提交,结果是0表示手动提交。当然也可以通过下面语句修改提交方式

set @@autocommit = 0;

【博学谷学习记录】超强总结,用心分享 | MySQL相关推荐

  1. [博学谷学习记录]超强总结,用心分享|第07节 常用的API-----笔记篇

    目录 1.API 1.1 API概述-帮助文档的使用 1.2 键盘录入字符串 2. String类 2.1 String概述 2.2 String类的构造方法 2.4 创建字符串对象的区别对比 2.5 ...

  2. {博学谷学习记录} 超强总结,用心分享|狂野架构师-前置互联网架构演变过程

    本章以系统架构,数据架构,两种维度来进行讲解 目录 1 系统架构 1,1 单体架构 1.2 中台战略 2 数据库架构 2,1 单体架构 2.2 主从读写 2.3 分库分表 3 总结 1 系统架构 1, ...

  3. [博学谷学习记录]超强总结,用心分享|架构 Nacos入门

    提示:学习笔记 欢迎指点 文章目录 前言 一.Nacos安装 二.Nacos服务注册与发现 1.服务提供者Provider 2.服务消费者Consumer 三.Nacos作为配置中心 前言 Nacos ...

  4. [博学谷学习记录]超强总结,用心分享|架构 敏捷 - 开发管理之道

    提示:学习笔记 欢迎指点 文章目录 1.敏捷开发思想之道 2.面向对象开发之道 3.敏捷学习之道 1.敏捷开发思想之道 一名敏捷开发者,敏捷思想的掌握自然首当其冲.在敏捷开发实施的过程中,我们虽然不是 ...

  5. [博学谷学习记录]超强总结,用心分享|第16节 集合续-----笔记篇

    目录 1.HashSet集合 1.1HashSet集合概述和特点[应用] 1.2HashSet集合的基本应用[应用] 1.3哈希值[理解] 1.4哈希表结构[理解] 1.5HashSet集合存储学生对 ...

  6. [博学谷学习记录] 超强总结,用心分享|陌陌综合案例

    注:大家觉得博客好的话,别忘了点赞收藏呀,本人每周都会更新关于人工智能和大数据相关的内容,内容多为原创,Python Java Scala SQL 代码,CV NLP 推荐系统等,Spark Flin ...

  7. [博学谷学习记录]超强总结,用心分享|Hive的压缩格式

    压缩格式 工具 算法 文件扩展名 是否可切分 DEFAULT 无 DEFAULT .deflate 否 Gzip gzip DEFAULT .gz 否 bzip2 bzip2 bzip2 .bz2 是 ...

  8. [博学谷学习记录]超强总结,用心分享|软件测试之计算机基础(一)

    本周开始学习软件测试,而我也即将开始在平台记录我的学习之路.我会把我的个人心得及掌握的知识发布在此平台,俗话说最好的输入就是输出,希望在输出的同时能有更多的收获,也希望与大家多多交流. 为了更好的学习 ...

  9. [博学谷学习记录]超强总结,用心分享|人工智能机械学习基础知识线性回归总结分享

    1.线性回归的核心是参数学习,线性回归和回归方程(函数)有关 2.线性回归是目标值预期是输入变量的线性组合 3.欠拟合的产生原因是学习到数据的特征过少 4.多元线性回归中的"线性" ...

  10. [博学谷学习记录] 超强总结,用心分享|JavaEE就业课-尊享无忧+Java基础语法|面向对象(1wk)

    学习笔记目录 目录 学习笔记目录 前言 一.变量 1. 关键字:被java赋予特殊含义的字符 2. 常量:不会发生改变的量(数据)​编辑 3. 变量:内存中的存储空间. 4. 类型转换 5. 算术运算 ...

最新文章

  1. 开源用于寻找系外行星的代码
  2. 博弈论入门之威佐夫博弈
  3. 在生产环境中,阿里云如何构建高性能云原生容器网络?(含 PPT 下载)
  4. 20150309+Linux+LAMP安装-02
  5. Android UI线程和非UI线程
  6. 重磅!《Apache Flink 十大技术难点实战》发布
  7. [渗透攻防] 二.SQL MAP工具从零解读数据库及基础用法
  8. Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (二) —— SQLite...
  9. css --- [读书笔记] 浮动(float) 与 清除浮动
  10. springboot-21-maven多环境打包
  11. WebSphere社区版,Geronimo1.1八卦和GBean架构
  12. Android GPS应用开发
  13. 站群服务器找11火星软件
  14. 1 - 整洁代码 - 代码整洁之道
  15. java 检测表情符号_java 过滤表情符号
  16. 每日英语好文翻译(11)
  17. 融云根据关键字获取搜索聊天记录
  18. devenv.exe - 系统错误无法启动此程序,因为计算机中丢失 MSVCR100.dll。尝试重新安装该程序以解决此问题。【解决办法】...
  19. 金泰克/tigo S300 240G SM2256K H27QFG8PEM5R 完整开盘教程
  20. 国内外技术论坛的区别

热门文章

  1. 枚举、Object类方法练习
  2. Arduino学习笔记 类比信号,可变电阻
  3. firefox如何屏蔽网站广告
  4. TIA PORTAL 西门子博途中怎样设置DB块中的变量数据为保持型或不保持?
  5. (陆续更新)Macbook好用工具推荐
  6. plc to和from命令
  7. Keil uVision5软件的操作与编写基础(入门)
  8. 对于交叉轴的一些解析和认识
  9. watchdog linux 进程,watchdog
  10. Armadillo C++ Library