MySQL数据库笔记-基础篇

news2024/11/26 9:32:53

文章目录

  • 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 条件]

DQL

DCL

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/525404.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

BI技巧丨矩阵甘特图

BOSS:白茶,我们最近有很多项目,能不能做个甘特图? 白茶:没问题!(应用市场上随便找个甘特图就OK了嘛!) BOSS:对了,不要那种点进来会有点卡&#xf…

二、数据结构1:单链表 模板题+算法模板(单链表)

文章目录 算法模板单链表题目模板 模板题单链表原题链接题目思路题解 算法模板 单链表题目模板 // head存储链表头,e[]存储节点的值,ne[]存储节点的next指针,idx表示当前用到了哪个节点 int head, e[N], ne[N], idx;// 初始化 void init() …

【001】C++的第一个程序Hello World

C的第一个应用程序(Hello World程序) 引言一、代码二、代码解释三、注意事项四、注释语句总结 引言 💡 作者简介:专注于C/C高性能程序设计和开发,理论与代码实践结合,让世界没有难学的技术。 👉…

《JavaEE》网络编程套接字

文章目录 Socket我们来解释一下上面叫做有无连接我们再来理解一下上面是可靠传输和不可靠传输面向字节流与面向数据报的区别(后期会具体分析这个)全双工 单双工 UDPDatagramSocketDatagramPacket我们来尝试写一下UDP版本的代码 TCPServerSocketSocket我们…

什么年代了?不会还有人不会插件化吧?

一.到底什么是插件化开发 插件化开发是将整个app拆分成很多模块,这些模块包括一个宿主和多个插件,每个模块都是一个apk,最终打包的时候将宿主apk和插件apk分开或者联合打包。 为什么要将一定要使用插件化开发呢? 宿…

【Linux】一文带你掌握Linux权限!

Linux权限 问题一:Linux下的用户分类有哪些?问题二:什么叫做权限?问题三:见一见没有权限是什么现象(看看就好了)问题四:权限的修改问题。chmodchownchgrp 问题五:其他问题(三个小问题)文件的初始…

51单片机(十五)直流电机驱动(PWM)

❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要…

【并发编程】深入理解Java并发之synchronized实现原理

文章目录 一、synchronized 实现同步示例二、synchronized 典型错误示例三、Java 对象头与 Monitor四、synchronized代码块底层原理五、synchronized方法底层原理六、Java虚拟机对synchronized的优化 一、synchronized 实现同步示例 public class MyThread extends Thread{pri…

分布式事务之Seata讲解

文章目录 1 Seata1.1 简介1.2 架构1.3 四种事务模式1.3.1 XA1.3.1.1 定义1.3.1.2 优缺点1.3.1.3 代码中实现 1.3.2 AT1.3.2.1 定义1.3.2.2 全局锁1.3.2.2.1 AT模式脏写问题1.3.2.2.2 全局锁 1.3.2.3 AT模式优缺点1.3.2.4 与XA模式区别1.3.2.5 代码中实现 1.3.3 TCC模式1.3.3.1 …

云服务器配合CookieCloud插件,实现浏览器网站Cookie同步

CookieCloud是由方糖开发的一个浏览器网站Cookie同步工具,Cookie是一个可以短时间代表我们登录身份的凭证,CookieCloud同步Cookie其实就是在同步登录状态,由一个浏览器插件和一个可以自行搭建的服务器端组成,可以定时地、在本地加…

linux pl320 mbox控制器驱动分析 - (2) 消息传递示例

linux pl320 mbox控制器驱动分析 - (2)消息传递示例 1 Messaging from Core0 to Core12 Back-to-back messaging from Core0 to Core13 Messaging from Core0 to Cores 1, 2, and 3 using Auto Acknowledge4 Auto Link messaging from Core0 to Core1 us…

算法设计 || 第5题:钓鱼问题-北京大学网站在线算法题(贪心算法)

目录 (一)题目网址视频网址 (二)手写草稿思考 Part1: 慕课PPT Part2: 笨蛋的学习 (一)题目网址视频网址 北京大学网站在线算法题:1042 -- Gone Fishing (poj.org) 视频讲解(北…

进一步了解傅里叶变换的应用(附案例代码)

傅里叶变换(Fourier Transform)是一种非常常见的数学工具,能够将一个函数(或时域信号)分解成一些基本频率的合成。它使我们可以将时域信号(例如波形图)转换成频域信号,因而更容易地看…

ArcGIS按比例缩放图斑

今天介绍一下,在ArcGIS中,当我们需要按比例缩放图斑时,该如何操作呢。 可以使用“缩放”工具对要素进行缩放(使整个要素变大或变小)。在处理比例略有误差的数据(例如,来自多个源的细分宗地&…

ChatGPT背后的大预言模型 以及《ChatGPT全能应用一本通》介绍

大型语言模型已经彻底改变了我们通过自然语言处理进行交互的方式,使得更多的基于语言的应用程序成为可能,例如语言翻译,问答,文本摘要和聊天机器人。 由于这些模型是在大量文本数据集(如书籍,文章和社交媒…

C learning_13 操作符前篇(条件操作符、 逗号表达式、 下标引用、函数调用和结构成员、 表达式求值)

目录 条件操作符 逗号表达式 下标引用、函数调用和结构成员 1. [ ] 下标引用操作符 2. ( ) 函数调用操作符 3. 访问一个结构的成员 表达式求值 1.隐式类型转换 2.算术转换 3.操作符的属性 条件操作符 条件操作符是一种用于简化条件表达式的运算符。它通常表示为问号 …

《游戏编程模式》--重访设计模式--学习

序 在线阅读地址: 命令模式 Design Patterns Revisited 游戏设计模式 (tkchu.me) 参考文章: GameDesignPattern_U3D_Version/Assets/002FlyweightPattern at master TYJia/GameDesignPattern_U3D_Version GitHub 看到了没见过的观点:…

我的算法基础实验代码-下篇

第一题 题目介绍 输入一些数值,求出现的次数最多的数。如果有多个并列,则从大到小输出。 解题思路 代码实现 package com.nineWeek;import java.util.*;/*** author WangYH* version 2021.1.3* date 2023/5/7 18:29*/public class NumMostTimes {pu…

第十四届蓝桥杯b组c/c++

D:飞机降落&#xff08;全排列&#xff09; #include<iostream> #include<cstring> using namespace std;const int N 12; int n; struct node{int t, d, l; //t为此飞机的最早降落时间 d为盘旋时间 l为降落所需时间 }p[N]; bool st[N];//DFS求全排列模型 bool d…

【真题解析】系统集成项目管理工程师 2021 年下半年真题卷

本文为系统集成项目管理工程师考试(软考) 2021 年上半年真题&#xff0c;包含答案与详细解析。考试共分为两科&#xff0c;成绩均 ≥45 即可通过考试&#xff1a; 综合知识&#xff08;选择题 75 道&#xff0c;75分&#xff09;案例分析&#xff08;问答题 4 道&#xff0c;75…