学习Java的日子 Day51 数据库,DDL

news2024/11/18 17:22:56

Day51 MySQL

1.数据库

数据库(database)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效地组织和管理存储在数据库中的数据

MySQL就是数据库管理系统,操纵和管理数据库的大型软件

1.1 学习数据库的五个基本概念

1.数据库服务器

是指用来运行数据库服务的一台电脑。小型项目通常为一台,中大型项目通常是多台数据库服务器共同来存储或计算。由于数据安全非常重要,所以我们需要对数据库服务器里面的数据进经备份管理。

2.数据库 DDB

存储数据的仓库,数据是有组织的进行存储

3.数据表

例如在学员管理系统数据库中。根据业务的不同又分为了不同的数据表。专门用来存放不同人员的数据。例如:学员数据表(学号、用户名、密码);老师数据表(用户名、密码,工作经验)

4.数据字段

也叫数据列。就是我们日常所见表格里面的列。在表格中,我们会将一张用户表分成多个列。如下(表一)所示:用户编号、用户名、性别、年龄是字段。在真正的数据库中数据字段需要换成英文需要写成:id、username、sex、age。

5.数据行

真正的数据存在每一个表的行里面。字段(列)划分出来了一个表应该按照什么样的格式存数据。而行,是真正的数据。每一行需要遵循数据字段(列)的规范和要求进行存入数据。

1.2 安装MySQL

注意:

1.服务端口3306,不建议更改

2.InnoDB作为默认的数据库存储引擎

2.SQL 结构化查询语言

一切就绪,开始学SQL

结构化查询语言(Structured Query Language)简称SQL,操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名

SQL是关系模型的数据库应用语言

2.1 SQL分类

1.数据定义语言(DDL ,Data Defintion Language)语句:数据定义语句,用于定义不同的数据对象、数据库、表、列、索引等。常用的语句关键字包括create、drop、alter等。

2.数据操作语言(DML , Data Manipulation Language)语句:数据操纵语句,用来对数据库表中的数据进行增删改,用于添加、删除、更新和查询数据库记录,并检查数据的完整性。常用的语句关键字主要包括insert、delete、update和select等。(DML:添加,修改,删除,DQL:查询)

重要

3.数据控制语言(DCL, Data Control Language)语句:数据控制语句,用来创建数据库用户、控制数据库的访问权限,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括grant、revoke等。

2.2 DDL

DDL:针对于数据库、表、字段操作的语言

我们将分三块来学习

1.数据库操作

2.数据表操作

3.数据字段操作

在这里插入图片描述

查询所有数据库:show databases ;

删除数据库:drop database [ if exists ] 数据库名 ;

切换数据库:use 数据库名 ;

在这里插入图片描述

在这里插入图片描述

可视化软件操作,新建数据库,设置字符集编码为utf8

在这里插入图片描述

注意:为什么不是UTF-8,而是utf8?

UTF-8是国际通用的字符集,utf8是MySQL里的字符集

2.2.1 操作库

创建库

CREATE DATABASE fy2401javaee;

删除库

DROP DATABASE fy2401javaee;

查询所有库

SHOW DATABASES;

使用库

USE fy2401javaee;

注意:库名不能修改

2.2.2 操作表
创建表

基本语法:create table 表名(字段名 字段类型 ,… , 字段名 字段类型);

VARCHAR(32):可以接收32字符长度的数据(字符串)

FLOAT(8,2):可以接收长度为8,其中有两位小数的数据

字符串:

​ char(32):最多只能存储32个字符,如果未满32个,也占32个的空间

​ varchar(32):最多只能存储32个字符,如果未满32个,占实际字符的个数

​ 注意:以上两种字符串表现形式最多只能存储255个字符

CREATE TABLE s_student(
	s_name VARCHAR(64),
	s_sex VARCHAR(32),
	age INT(3),
	salary FLOAT(8,2),
	course VARCHAR(32)	
)
修改表名

语法:alter table 旧表名 rename 新的表名;

ALTER TABLE s_student RENAME student;
删除表
DROP TABLE student;
查询所有表
SHOW TABLES;
2.2.3 操作字段
添加字段 ADD

语法格式:alter table 表名 add 字段名 类型;

ALTER TABLE student ADD xxx VARCHAR(32);
删除字段 DROP

语法格式:alter table 表名 drop column 字段名;

ALTER TABLE student DROP xxx;
修改字段类型 MODIFY

语法格式:alter table 表名 modify 字段名 varchar(20);

ALTER TABLE student MODIFY s_sex VARCHAR(16);
修改字段名 CHANGE

语法格式:alter table 表名 change 字段原名 字段新名 字段类型;

ALTER TABLE student CHANGE s_sex sex VARCHAR(16);
修改字段名+类型
ALTER TABLE student CHANGE s_name name VARCHAR(32);
查询字段信息 DESC

field:字段

DESC student;
获取创建表信息
SHOW CREATE TABLE student;

– CREATE TABLE student (
s_name varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL,
sex varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL,
age int DEFAULT NULL,
salary float(8,2) DEFAULT NULL,
course varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL
– ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci

创建字段与关键字冲突了怎么办?

不会冲突,数据库会优化我们的SQL命令,会给字段表名加上`,防止段与关键字冲突了

在这里插入图片描述

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

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

相关文章

GNU Radio实现OFDM Radar

文章目录 前言一、GNU Radio Radar Toolbox编译及安装二、ofdm radar 原理讲解三、GNU Radio 实现 OFDM Radar1、官方提供的 grc①、grc 图②、运行结果 2、修改后的便于后续可实现探测和通信的 grc①、grc 图②、运行结果 四、资源自取 前言 本文使用 GNU Radio 搭建 OFDM Ra…

Windows环境安装redis

1、下载redis https://github.com/tporadowski/redis/releases 2、解压 .zip 3、更改文件名 更改文件名称为:redis 4、将本地解压后的redis,作为本地服务器下的应用服务 从redis文件路径下,执行cmd .\redis-server --service-install re…

Python 学习笔记【1】

此笔记仅适用于有任一编程语言基础,且对面向对象有一定了解者观看 文章目录 数据类型字面量数字类型数据容器字符串列表元组 type()方法数据类型强转 注释单行注释多行注释 输出基本输出连续输出,中间用“,”分隔更复杂的输出格式 变量定义del方法 标识符…

C语言 | Leetcode C语言题解之第124题二叉树中的最大路径和

题目: 题解: /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ int max; int dfs(struct TreeNode* root){if(!root) return 0;int left dfs(root->left…

Leetcode2028. 找出缺失的观测数据

Every day a Leetcode 题目来源:2028. 找出缺失的观测数据 解法1:模拟 统计当前 m 个元素的总和 curSum sum(rolls),总共 mn 个元素和为 total (m n) * mean。 排除 2 种情况: total - curSum > 6 * n:n 个…

新版校园跑腿外卖独立版+APP+小程序前端外卖配送平台源码

同城校园跑腿外卖配送平台源码,这套目前全网还没有人分享过,这个是开源的,所以没有任何问题了,这套源码非常吊,支持自定义diy 你可以设计你的页面,设计你自己的风格,支持多校园,独立…

Echarts折线图 markPoint ()

Echarts折线图标识基础版 1.每个点位都设置 可以通过 image://url 设置为图片,其中 URL 为图片的链接,或者 dataURI。 URL 为图片链接例如: symbol:image://http://example.website/a/b.png URL 为 dataURI 例如:…

GPT-4o:免费且更快的模型

OpenAI GPT-4o 公告 OpenAI 推出了增强版 GPT-4 模型——OpenAI GPT-4o,用于支持 ChatGPT。首席技术官 Mira Murati 表示,更新后的模型速度更快,并在文本、视觉和音频处理方面有了显著提升。GPT-4o 将免费向所有用户开放,付费用户…

AcWing 3537:树查找 ← 完全二叉树性质

【题目来源】https://www.acwing.com/problem/content/3540/【题目描述】 给定一棵包含 n 个结点(编号 1∼n)的完全二叉树的层序遍历序列,请按照从左到右的顺序输出该树第 k 层的全部结点编号。【输入格式】 第一行包含整数 n。 第二行包含 n…

Flink系列二:DataStream API中的Source,Transformation,Sink详解(^_^)

在上面篇文章中已经对flink进行了简单的介绍以及了解了Flink API 层级划分,这一章内容我们主要介绍DataStream API 流程图解: 一、DataStream API Source Flink 在流处理和批处理上的 source 大概有 4 类: (1)基于本…

vue3中实现鼠标点击后出现点击特效

一、效果展示 图片下方为效果体验地址 缓若江海凝清光 二、代码 js中&#xff1a; <script setup lang"ts"> window.addEventListener("click", (e: MouseEvent) > {const pointer document.createElement("div");pointer.classLi…

跨越创作壁垒:利用写作素材库挖掘创作灵感

跨越创作壁垒&#xff1a;利用写作素材库挖掘创作灵感 写作素材在提供支持、丰富内容、激发创作灵感、提升可信度和帮助组织文章等方面&#xff0c;发挥着重要的作用。合理利用和处理素材可以提高你的写作质量&#xff0c;使你的作品更具有说服力和吸引力。 因此&#xff0c;当…

Hadoop+Spark大数据技术 第七次作业

第七次作业 1. 简述Spark SQL使用的数据抽象DataFrame与Dataset的区别。 DataFrame: 基于 Row 对象的二维表格结构&#xff0c;类似于关系型数据库中的表。 行和列都有明确的 Schema&#xff08;模式&#xff09;&#xff0c;可以进行类型推断。 提供了丰富的操作接口&#xff…

vue中大屏可视化适配所有屏幕大小

1. 外部盒子 .screenBox {width: 100vw;height: 100vh;background: url("/assets/images/bg.png") no-repeat;background-size: cover; }2.比例盒子 外层盒子css定义 .boxScale {width: 1920px;height: 1080px;background-color: orange;transform-origin: left top;…

【工具】创客贴会员|创客贴截止2024年6月所有AI功能效果实测(热门推荐和图片编辑部分)

上一篇&#xff1a;【工具】创客贴会员&#xff5c;万字测评&#xff01;前沿设计网站创客贴的 AI 文生图效果测评 上一篇写的时候只测了文生图&#xff0c;因为百度那边活动没和创客贴接洽好&#xff0c;他们不清楚创客贴的AI和其他会员功能分开了&#xff0c;导致只有10次体…

LabVIEW老程序功能升级:重写还是改进?

概述&#xff1a;面对LabVIEW老程序的功能升级&#xff0c;开发者常常面临重写与改进之间的选择。本文从多个角度分析两种方法的利弊&#xff0c;并提供评估方法和解决思路。 重写&#xff08;重新开发&#xff09;的优势和劣势&#xff1a; 优势&#xff1a; 代码清晰度高&a…

【机器学习300问】106、Inception网络结构如何设计的?这么设计的目的是什么?

谷歌的Inception网络&#xff0c;也被称为GoogLeNet&#xff0c;是Google在2014年推出的一种深度卷积神经网络&#xff08;CNN&#xff09;模型&#xff0c;在这之前的AlexNet、VGG等结构都是通过增大网络的深度&#xff08;层数&#xff09;来获得更好的训练效果&#xff0c;但…

Python—面向对象小解(3)

一、多态 多态指的是一类事物的多中形态 相同的方法&#xff0c;产生不同的执行结果 运算符 * 的多态 int int 加法计算 str str 字符串拼接 list list 列表的数据合并 在python中可以使用类实现一个多态效果 在python中使用重写的方式实现多态 &#xff08;1&#xff09;定…

字符串 | 字符串匹配之 KMP 算法以及 C++ 代码实现

目录 1 为什么使用 KMP&#xff1f;2 什么是 next 数组&#xff1f;2.1 什么是字符串的前后缀&#xff1f;2.2 如何计算 next 数组&#xff1f; 3 KMP 部分的算法4 完整代码 &#x1f608;前言&#xff1a;这篇文章比较长&#xff0c;但我感觉自己是讲明白了的 1 为什么…

Vue之组件基础(插槽)

在HTML中&#xff0c;开发者可以在双标签内添加一些信息。而在Vue中&#xff0c;组件以标签的形式引用&#xff0c;那么如何在组件的标签内添加一些信息并将信息渲染到页面中呢?其实&#xff0c;Vue 提供了插槽&#xff0c;专门用来实现这样的效果。 一.什么是插槽 Vue为组件…