Oracle 数据库基础入门(一):搭建数据管理基石
在当今数字化时代,数据库作为数据管理的核心工具,对于各类应用系统的开发至关重要。尤其是在 Java 全栈开发领域,掌握一款强大的数据库技术是必备技能。Oracle 数据库以其卓越的性能、高度的可靠性和丰富的功能,在企业级应用中广泛使用。开辟新的篇章,让我们踏上 Oracle 数据库的学习之旅,聚焦于基础的建表、数据操作等关键知识,为后续深入学习和实际项目应用筑牢根基。
一、DDL 数据定义语言:构建数据库结构框架
(一)建表语法:打造数据存储容器
在 Oracle 数据库中,使用Create table
语句来创建表,这就好比在现实中搭建一个仓库,用于存放各类数据。其基本语法如下:
Create table 表的表名(Id 数据类型 【约束】,字段 数据类型【约束】,字段 数据类型【约束】,........
);
这里的表的表名
是你为这个数据仓库取的名字,方便后续识别和操作。Id
及其他字段则是仓库中的一个个存储隔间,每个隔间有其特定的数据类型和约束条件。
(二)数据类型:定义字段存储格式
- 字符串类型
- 在 Oracle 数据库中,
char
、varchar
、nchar
、nvarchar2
都用于表示字符串,但它们在存储方式和适用场景上有所不同。 char
和varchar
底层以字节为单位存储,这使得它们在存储英文和数字时效率较高。例如,存储用户名、密码等多为英文和数字组合的信息时较为合适。而nchar
和nvarchar2
底层以字符为单位存储,对于中文汉字等双字节字符的存储更为友好,能确保字符的完整性和正确性。char
和nchar
是定长字符串,varchar
和nvarchar2
是变长字符串。以Char(10)
和varchar(10)
为例,Char(10)
意味着数据库在划分存储空间时,无论该字段是否有内容,都会预留 10 个字节长度的空间。而Varchar(10)
则更加灵活,它会根据字段实际内容的长度来划分空间,最长不超过 10 个字节。在实际应用中,如果字段内容长度较为固定,比如身份证号、固定格式的编号等,使用char
或nchar
;若字段内容长度变化较大,如文章摘要、评论内容等,则选择varchar
或nvarchar2
。
- 在 Oracle 数据库中,
- 数值类型:
Number
类型用于存储数值。Number(5)
表示该字段能存储的最大值为 99999,而Number(7)
则能存储更大的数值,精确到小数点后两位时,最大值为 99999.99。在 Java 全栈开发中,涉及到金额计算、数量统计等场景时,合理使用Number
类型能确保数据的准确性和精度。例如在电商系统中存储商品价格、库存数量等信息。 - 日期类型
Date
类型用于存储精确到秒的日期和时间信息。在记录订单创建时间、用户注册时间等场景中经常使用。Timestamp
类型则更加精确,它能精确到秒后小数点后 9 位的数值,适用于对时间精度要求极高的场景,如金融交易时间记录、科学实验数据采集时间记录等。
- 二进制类型
Clob
用于存储大文本,最大可以容纳 4G 的字符串。在存储长篇文章、大量的配置信息等场景中发挥重要作用。Blob
能存储最大 4G 的二进制数据,非常适合存储图片、视频、音频等多媒体文件。例如在一个在线教育平台中,课程视频、教师头像图片等就可以使用Blob
类型存储在 Oracle 数据库中。
下面是一个创建students
表的示例:
Create table students(Id number primary key,Stu_name nvarchar2(20),Age number(5)
);
在这个表中,Id
字段作为主键,用于唯一标识每个学生记录,数据类型为number
;Stu_name
字段用于存储学生姓名,采用nvarchar2
类型,最多可存储 20 个字符,适合存储中文姓名;Age
字段存储学生年龄,数据类型为number(5)
。
需要注意的是,在 Oracle 数据库语法中,表名和表的字段名不区分大小写。但为了代码的可读性和规范性,建议统一采用大写或小写的命名风格。
(三)改变语法:灵活调整表结构
- 向表中添加字段:当业务需求发生变化,需要在已有的表中增加新的信息存储隔间时,使用以下语句:
alter table 表的表名 add 新字段名 数据类型 [约束];
例如,在students
表中添加一个Phone_number
字段用于存储学生电话号码:
alter table students add Phone_number varchar2(11);
- 改表的字段数据类型:如果原有的字段数据类型不再满足业务需求,可进行修改:
alter table 表的表名 modify 字段名 新数据类型 [约束];
假设students
表中的Age
字段,最初设计为number(5)
,现在发现需要存储更精确的年龄信息,可修改为number(7,2)
:
alter table students modify Age number(7,2);
- 对表的字段重命名:当字段名称需要调整以更好地反映其含义时,使用:
alter table 表的表名 rename column 旧字段名 to 新字段名;
比如将students
表中的Stu_name
字段重命名为Student_name
:
alter table students rename column Stu_name to Student_name;
- 删除表中的字段:若某个字段不再使用,可将其从表中删除:
alter table 表的表名 drop column 字段名;
例如删除students
表中新增的Phone_number
字段:
alter table students drop column Phone_number;
(四)删表语法:清理不再使用的表
当一个表不再有存在的价值,需要删除其结构和数据时,使用drop table
语句:
drop table 表的表名 [cascade constraints];
这里的cascade constraints
表示级联删除。如果该表与其他表存在外键约束等关联关系,使用cascade constraints
可以一并删除这些关联约束,避免因表删除导致的约束冲突。但要注意,删除表结构的同时,表中的所有数据也会被永久删除。例如删除teacher
表:
drop table teacher;
二、DML 数据操作语言:对数据库进行数据增删改
(一)新增数据:向表中填充信息
使用Insert into
语句向表中插入新的数据记录,就像向仓库中放入新的物品。其语法为:
Insert into 表的名字(字段列表)values(值的列表);
例如,向students
表中插入学生信息:
Insert into students(id,student_name)values(1,'cxk');
Insert into students(id,student_name,student_no)values(2,'lyf','CDXY2024110001');
Insert into students(id,student_name,student_no)values(3,'yjy','CDXY2024110002');
在 Java 全栈开发中,当用户在前端页面提交注册信息、添加商品信息等操作时,后端 Java 代码通过数据库连接,使用类似的Insert into
语句将数据插入到 Oracle 数据库中。
(二)修改数据:更新表中的已有信息
通过Update
语句对表中的数据进行修改,语法如下:
Update 表的表名 set 字段=值,字段=值,[where 筛选条件];
例如,修改students
表中id
为 3 的学生信息:
Update students set student_name ='lyf',student_no = 'CDXY2024110001' where id = 3;
这里的where
筛选条件至关重要,它指定了具体要修改哪些记录。如果不写where
条件,那么表中的所有记录都会被修改,这可能会导致严重的数据错误。在实际项目中,比如在电商系统中修改商品价格、库存数量等操作,就需要准确使用where
条件来定位要修改的具体商品记录。
(三)删除数据:移除表中的无用信息
- 使用
delete
语句:语法为delete from 表的表名 [where 筛选条件];
,例如删除students
表中id
为 1 的学生记录:
delete from students where id = 1;
delete
语句在删除数据时,采用逐行删除模式,并且会将删除操作记录到undo.log
日志中。这意味着数据库管理员(DBA)在必要时可以通过日志进行数据恢复。
2. 使用truncate
语句:语法为truncate table 表的表名;
,truncate
删除数据属于重置性删除,它会直接清空表中的数据,速度比delete
快很多,但无法恢复数据。在一些场景中,比如在测试环境中需要快速清空表数据重新进行测试时,使用truncate
较为合适;而在生产环境中,对于一些需要谨慎操作的数据删除,更倾向于使用delete
语句,以便在出现误操作时有恢复的可能。
三、未来在企业工作的小技巧
- 数据类型选择的重要性:在企业级项目中,数据量往往非常庞大。合理选择数据类型不仅能提高数据库的存储效率,还能提升查询和操作数据的性能。例如,对于固定长度且数据量较大的字段,如员工编号,使用
char
类型虽然会占用较多存储空间,但在查询时可能会比varchar
类型更高效,因为数据库无需额外处理变长带来的开销。在设计数据库表结构时,要充分考虑业务需求和数据特点,与团队中的数据分析师、后端开发人员充分沟通,共同确定最优的数据类型方案。 - 数据操作的事务管理:在 Java 全栈开发中,涉及到数据库的增删改操作时,要善于使用事务管理。事务可以确保一组数据库操作要么全部成功执行,要么全部失败回滚。例如,在一个涉及订单创建和库存减少的业务场景中,这两个操作应该放在同一个事务中。如果订单创建成功但库存减少失败,事务回滚可以避免数据不一致的情况。在 Java 中,可以使用 Spring 框架的事务管理机制,通过注解或编程方式来管理事务,确保数据的完整性和一致性。
- 备份与恢复策略:了解
delete
和truncate
的区别,在实际工作中合理运用。对于重要数据的删除操作,优先考虑使用delete
语句,并结合数据库的备份策略。企业级数据库通常会定期进行全量备份和增量备份,在执行delete
操作前,要确保备份是最新的,以便在需要时能够恢复数据。同时,定期对备份数据进行恢复测试,确保备份的有效性,防止在真正需要恢复数据时出现问题。
通过对 Oracle 数据库 DDL 和 DML 语言的学习,我们已经掌握了 Oracle 数据库基础操作的核心技能。在后续的学习中,我们将继续探索 Oracle 数据库的更多高级特性,不断提升在数据库管理和开发方面的能力,为未来在企业级项目中的应用打下坚实基础。
相关文章:
Oracle 数据库基础入门(一):搭建数据管理基石
在当今数字化时代,数据库作为数据管理的核心工具,对于各类应用系统的开发至关重要。尤其是在 Java 全栈开发领域,掌握一款强大的数据库技术是必备技能。Oracle 数据库以其卓越的性能、高度的可靠性和丰富的功能,在企业级应用中广泛…...
selenium如何实现,开启浏览器的开发者工具模式,并且开启 toggle移动设备模拟模式
核心实现代码 pythonCopy Code from selenium import webdriver from selenium.webdriver.chrome.options import Options def enable_devtools_with_toggle(): options Options() # 强制开启开发者工具 options.add_argument("--auto-open-devtools-for-tabs&quo…...
分布式锁实现(数据库+Redis+Zookeeper)
1. 数据库分布式锁 实现原理 基于唯一索引: 创建一张锁表,通过唯一索引(如锁名称)保证互斥性。 加锁:插入一条记录,成功则获取锁,失败则重试。 解锁:删除对应记录。 乐观锁&…...
七、Spring Boot:初识与项目搭建
深入解析 Spring Boot:初识与项目搭建 Spring Boot 是基于 Spring Framework 的开源 Java 基础框架,旨在简化 Spring 应用的开发过程。它通过“约定优于配置”的理念,极大地减少了开发中的配置工作,同时提供了“开箱即用”的功能…...
记录一下用docker克隆某授权制定ip的环境恢复
#首先还是要看日志根据问题去进行调整 java web的老项目配置文件一般是 bin启动里边的脚本 还有conf中的 xml配置文件 再或者就是classes中的配置文件,再或者就是lib中的jar包中的配置文件 1.安装docker 2.创建docker网络 docker network create --driver bridge --subnet…...
【含文档+PPT+源码】基于微信小程序的健康饮食食谱推荐平台的设计与实现
项目介绍 本课程演示的是一款基于微信小程序的健康饮食食谱推荐平台的设计与实现,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本…...
主流虚拟化技术讲解
目录 VMware vSphere Microsoft Hyper-V KVM(Kernel-based Virtual Machine) OpenStack VMware vSphere 架构与组件:VMware vSphere 是基于裸金属虚拟化技术的平台,核心组件包括 ESXi 主机和 vCenter Server。ESXi 是虚拟化层…...
java开发——为什么要使用动态代理?
举个例子:假如有一个杀手专杀男的,不杀女的。代码如下: public interface Killer {void kill(String name, String sex);void watch(String name); }public class ManKiller implements Killer {Overridepublic void kill(String name, Stri…...
kotlin 知识点一 变量和函数
在Kotlin中定义变量的方式和Java 区别很大,在Java 中如果想要定义一个变 量,需要在变量前面声明这个变量的类型,比如说int a表示a是一个整型变量,String b表 示b是一个字符串变量。而Kotlin中定义一个变量,只允许在变量…...
将CUBE或3DL LUT转换为PNG图像
概述 在大部分情况下,LUT 文件通常为 CUBE 或 3DL 格式。但是我们在 OpenGL Shader 中使用的LUT,通常是图像格式的 LUT 文件。下面,我将教大家如何将这些文件转换为 PNG 图像格式。 条形LUT在线转换(不是8x8网络)&am…...
侯捷 C++ 课程学习笔记:类的声明与构造函数
目录 一、类的声明 二、内联函数 三、访问级别 四、构造函数 五、构造函数重载 六、实际应用案例 七、学习心得 一、类的声明 类的声明是定义类的基本结构,包括类的成员变量和成员函数。类的声明分为类头和类体两部分。 类头(class head…...
BGP状态和机制
BGP邻居优化 为了增加稳定性,通常建议实验回环口来建立邻居。更新源:建立邻居和邻居所学习到的路由的下一跳。多跳:EBGP邻居建立默认选哟直连,因为TTL=1,如果非直连,必须修改TTL。命令备注peer 2.2.2.2 connect-interface lo1配置更新源peer 2.2.2.2 ebgp-max-hop 2配置T…...
MongoDB 数据库简介
MongoDB 数据库简介 引言 随着互联网技术的飞速发展,数据已经成为企业的重要资产。为了高效地管理和处理这些数据,数据库技术应运而生。MongoDB作为一种流行的NoSQL数据库,因其灵活的数据模型和高效的数据处理能力,受到了广泛的关注。本文将为您详细介绍MongoDB的基本概念…...
浏览器下载vue.js.devtools,谷歌浏览器和edg浏览器
1、谷歌浏览器下载: 情况一:如果谷歌应用商店可以打开,那么就直接到谷歌应用商店下载,直接搜索vue.js.devtools添加扩展即可。 情况二:谷歌浏览器的谷歌应用商城打不开,那么就百度搜索极简插件找到vue.js.…...
Android AOSP系统裁记录
Android 系统裁剪是指根据需求移除不必要的组件和功能,以优化系统性能、减少存储占用或满足特定设备需求。以下是 Android 系统裁剪的基本步骤: 1. 准备环境 操作系统:推荐使用 Ubuntu 或 macOS。 工具: Android SDK Android N…...
Could not download npm for node v14.21.3(nvm无法下载节点v14.21.3的npm)
场景描述:之前的项目用的是node以前的版本,使用nvm没下载下来,npm命令执行不了 错误如下图,15版本的node同理,下载的都是.exe可执行文件的扩展名,使用npm命令终端无法识别 解决思路:去node官网…...
React进阶之React核心源码解析(三)
React核心源码解析 diff多节点比较diff两轮遍历比较第一轮比较第二轮比较Update 状态更新Concurrent Modediff 多节点比较diff isArray方法比较 节点更新// 更新前 <ul><li key="0" className="before">0<li><li key=...
2025吐槽季第一弹---腾讯云EO边缘安全加速平台服务
前言: 关于EO边缘安全加速平台服务 参照:产品概述,具体如下: 边缘安全加速平台 EO(Tencent Cloud EdgeOne,下文简称为 EdgeOne)是国内首款基于全新架构的真正一体化的边缘安全加速平台。提供全面的安全防…...
Dify自定义工作流集成指南:对接阿里云百炼文生图API的实现方案
dify工作流的应用基本解释 dify应用发布相关地址:应用发布 | Dify 根据官方教程,我们可以看到dify自定义的工作流可以发布为----工具 这个教程将介绍如何通过工作流建立一个使用阿里云百炼文生图模型。 工具则可以给其他功能使用,如agent…...
WebSocket简单介绍 并接入deepseek
目录 什么是 WebSocket?工作原理: 为什么需要 WebSocket?WebSocket 的优势HTTP 和 WebSocket 的区别WebSocket 的劣势WebSocket 的应用场景WebSocket 握手过程1. 客户端发起握手请求2. 服务器响应握手请求3. 建立连接 WebSocket 事件处理WebS…...
android 新增native binder service 方式(三)
书接上回,继续第三种方式,是手动生成 service binder 的方法,项目结构 1,编译aidl aidl 文件保持不变,如何生成Bn和Bp 文件呢。 aidl -I ./libserviceaidl/aidl -h ./ -o ./ --langcpp libserviceaidl/aidl/com/test/IService.a…...
linux--多进程开发(5)--进程
进程间通讯概念 每两个进程之间都是独立的资源分配单元,不同进程之间不能直接访问另一个进程的资源。 但不同的进程需要进行信息的交互和状态的传递等,因此需要进程间通信(IPC,inter processes cimmunication) 进程通信的目的: …...
分享httprunner 结合django实现平台接口自动化方案
说明,可以直接在某个视图集定义自定义接口来验证。 调试1:前端界面直接编写yaml文件. 新增要实现存数据到mysql,同时存文件到testcase下, 如test.yaml 更新yaml数据,同时做到更新 testcase下的文件,如test.yaml acti…...
前端面试题之HTML篇
1.src和href的区别 src用于替换当前元素,href用于在当前文档和引用资源之间确立联系。 src可用于img、input、style、script、iframe---同步加载执行 href可用于link、a---异步 1.用途不同 src 用于引入外部资源,通常是图像、视频、JavaScript 文件等&am…...
Selenium 调用模型接口实现功能测试
要使用 Selenium 调用模型接口实现功能测试,可按以下步骤进行: 1. 环境准备 安装 Selenium:使用 pip install selenium 安装 Selenium 库。安装浏览器驱动:根据使用的浏览器(如 Chrome、Firefox 等)下载对应的驱动,并将其添加到系统的环境变量中。例如,Chrome 浏览器需…...
java后端开发day18--学生管理系统
(以下内容全部来自上述课程) 1.业务分析并搭建主菜单 1.需求 采取控制台的方式去书写学生管理系统 2.分析 1.初始菜单 2.学生类 属性:id,姓名,年龄,家庭住址 3.添加功能 键盘录入每一个学生信息并…...
计算机毕业设计SpringBoot+Vue.jst0图书馆管理系统(源码+LW文档+PPT+讲解)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
【DeepSeek】【GPT-Academic】:DeepSeek集成到GPT-Academic(官方+第三方)
目录 1 官方deepseek 1.1 拉取学术GPT项目 1.2 安装依赖 1.3 修改配置文件中的DEEPSEEK_API_KEY 2 第三方API 2.1 修改DEEPSEEK_API_KEY 2.2 修改CUSTOM_API_KEY_PATTERM 2.3 地址重定向 2.4 修改模型参数 2.5 成功调用 2.6 尝试添加一个deepseek-r1参数 3 使用千帆…...
生成对抗网络(GAN):让机器学习“创造”新世界
目录 引言 什么是生成对抗网络(GAN)? GAN的核心原理 GAN的损失函数 GAN的变种 1. 条件生成对抗网络(Conditional GAN, cGAN) 2. 深度卷积生成对抗网络(DCGAN) 3. 生成对抗网络的 Wassers…...
JavaScript系列(87)--Webpack 高级配置详解
Webpack 高级配置详解 🛠️ Webpack 是前端工程化中最流行的构建工具之一,掌握其高级配置可以帮助我们构建更高效、更优化的应用。本文将深入探讨Webpack的高级配置技巧和最佳实践。 Webpack 核心概念回顾 🌟 💡 小知识…...
48.日常算法
1.面试题 03.06. 动物收容所 题目来源 动物收容所。有家动物收容所只收容狗与猫,且严格遵守“先进先出”的原则。在收养该收容所的动物时,收养人只能收养所有动物中“最老”(由其进入收容所的时间长短而定)的动物,或…...
MySql数据库运维学习笔记
数据库运维常识 DQL、DML、DCL 和 DDL 是 SQL(结构化查询语言)中的四个重要类别,它们分别用于不同类型的数据库操作,下面为你简单明了地解释这四类语句: 1. DQL(数据查询语言,Data Query Langu…...
Starlink卫星动力学系统仿真建模第十讲-基于SMC和四元数的卫星姿态控制示例及Python实现
基于四元数与滑模控制的卫星姿态控制 一、基本原理 1. 四元数姿态表示 四元数运动学方程: 3. 滑模控制设计 二、代码实现(Python) 1. 四元数运算工具 import numpy as npdef quat_mult(q1, q2):"""四元数乘法""…...
MongoDB学习
MongoDB 是一种流行的 NoSQL 数据库,以文档存储为核心,适用于高灵活性、高扩展性的场景。本文将从基础概念到实际应用,带你快速掌握 MongoDB 的核心操作。 1. MongoDB 简介 什么是 MongoDB? MongoDB 是一个基于分布式文件存储的…...
水利工程安全包括哪几个方面
水利工程安全培训的内容主要包括以下几个方面: 基础知识和技能培训 : 法律法规 :学习水利工程相关的安全生产法律法规,了解安全生产标准及规范。 事故案例 :通过分析事故案例,了解事故原因和教训&#x…...
九、数据治理架构流程
一、总体结构 《数据治理架构流程图》(Data Governance Architecture Flowchart) 水平结构:流程图采用水平组织,显示从数据源到数据应用的进程。 垂直结构:每个水平部分进一步划分为垂直列,代表数据治理的…...
Spring boot中的@ConfigurationProperties注解
Spring boot中的ConfigurationProperties注解 ConfigurationProperties 是 Spring Boot 提供的一个强大注解,用于将配置文件(如 application.properties 或 application.yml)中的配置绑定到一个 Java 对象中。它不仅简化了配置管理ÿ…...
04性能监控与调优篇(D2_JVM调优⼯具)
目录 学习前言 讲解一:理论篇(深入理解JVM第三版) 一、虚拟机性能监控、故障处理工具 1. 基本介绍 2. 基础故障处理工具 jps:虚拟机进程状况工具 jstat:虚拟机统计信息监视工具 jinfo:Java配置信息工…...
DeepSeek 提示词:基础结构
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…...
OkHttp、Retrofit、RxJava:一文讲清楚
一、okHttp的同步和异步请求 Call 是 OkHttp 的核心接口,代表一个已准备好执行的 HTTP 请求。它支持 同步 和 异步 两种模式: enqueue——>okHttp异步 OkHttpClient client new OkHttpClient();Request request new Request.Builder().url("…...
AI前端加速科学研究:ScriptEcho赋能科研新纪元
科学研究正面临前所未有的挑战。数据以前所未有的速度爆炸式增长,研究课题也变得日益复杂。如何高效地处理海量数据、构建复杂模型、并将其转化为有意义的结论,成为摆在科研人员面前的一道难题。传统的科研模式往往需要耗费大量的时间和精力在数据处理、…...
从零到一:如何用阿里云百炼和火山引擎搭建专属 AI 助手(DeepSeek)?
本文首发:从零到一:如何用阿里云百炼和火山引擎搭建专属 AI 助手(DeepSeek)? 阿里云百炼和火山引擎都推出了免费的 DeepSeek 模型体验额度,今天我和大家一起搭建一个本地的专属 AI 助手。 阿里云百炼为 …...
ChatGPT背后的理论基础:从预训练到微调的深度解析
友情提示:本文内容由银河易创(https://ai.eaigx.com)AI创作平台GPT-4o-mini模型生成,仅供参考。请根据具体情况和需求进行适当的调整和验证。 随着人工智能特别是自然语言处理技术的飞速发展,ChatGPT作为一种强大的对话…...
Java八股文(下)
Java八股文下篇 八、JVM高级篇1、JVM的内存模型以及分区介绍一下?2、四种引用方式有什么?3、判断是否为垃圾算法?4、垃圾回收算法介绍一下?5、类的生命周期以及类加载过程6、加载器种类有什么?7、什么是双亲委派模型以…...
软考高级【网络规划设计师】 综合知识
引言:软考高级【网络规划设计师】共分为3个部分,综合知识,案例分析,论文。这里主要讲诉综合知识的相关内容。综合知识一共75道单选,题目跟网工类似,稍难。 第1章 计算机网络基础 考点分析: 本…...
django框架使用
一、app注册: pycharm使用django框架,注意在注册界面时就创建app,如果没有创建app。就在终端中运行 python manage.py startapp [app名] 然后再在settings.py里注册。 格式为: [app名].apps.[首字母大写的app名]Config 二、创…...
Linux主机用户登陆安全配置
Linux主机用户登陆安全配置 在Linux主机上进行用户登录安全配置是一个重要的安全措施,可以防止未经授权的访问。以下是如何创建用户hbu、赋予其sudo权限,以及禁止root用户SSH登录,以及通过ssh key管理主机用户登陆。 创建用户hbu 使用具有…...
MySQL | MySQL库、表的基本操作
MySQL库、表的基本操作01 一、库操作1.1 查看数据库1.2 创建数据库1.3 选择数据库1.4 查看创建数据库的SQL语句1.5 修改数据库1.6 删除数据库 二、表操作2.1 创建数据表2.2 查看表2.3 查看表结构2.4 查看创建数据库的SQL语句2.5 修改表2.6 删除表 ⚠️MySQL版本 8.0 一、库操作…...
【Uniapp-Vue3】在uniapp中使用pinia的基本用法
引入pinia: 在main.js中对pinia进行引入,使用和导出 import * as Pinia from pinia; // 引入pinia app.use(Pinia.createPinia()); // 使用pinia 在项目根目录下创建一个stores文件夹,里面创建一个counter.js文件 我们在counter.js中定义…...
mysql中的计算日期函数 理解、用法
三种计算日期的函数 函数用途示例DATEDIFF()计算两个日期的天数差DATEDIFF(2023-10-05, 2023-10-01) → 4TIMESTAMPDIFF()按指定单位(年、月、小时等)计算差TIMESTAMPDIFF(MONTH, 2023-01-01, 2023-03-01) → 2DATE_ADD()日期加法DATE_ADD(2023-10-01, …...