数据库的相关知识

数据库的相关知识

1.数据库能够做什么?

存储大量数据,方便检索和访问保持数据信息的一致、完整共享和安全通过组合分析,产生新的有用信息

2.数据库作用?

存储数据、检索数据、生成新的数据

3.数据库要求?

统一、安全、性能等

4.概念?

数据库就是“数据”的“仓库”数据库中包含表、关系以及操作对象数据存放在表中

5.操作数据库用户

工具操作:Navicat for MySQL

在这里插入图片描述

如何创建用户?

点击用户,点击新建用户,常规输入完,点击保存就可以了。

如何连接新建?

创建用户完之后,点击连接,输入新建的用户名和密码

设置权限:

找到新建,点击编辑用户,点击服务器权限,全部授予,点击SQL预览,复制

在这里插入图片描述

点击查询,新建查询,粘贴到上面,把权限改为ALL

在这里插入图片描述

重新连接一下就可以了

创建数据库:

1.打开连接,点击数据库,右键点击后新建数据库,把字符集改为

在这里插入图片描述

点击确定就新建好了

2.打开新建查询,输入CREATE DATABASE +名称;点击连接刷新

在这里插入图片描述

3.使用命令列介面,输入CREATE DATABASE +名称;点击连接刷新

查看数据库:

打开新建查询,输入SHOW DATABASES;

在这里插入图片描述

使用命令列介面,点击连接,右键打开

在这里插入图片描述

选择数据库:

1.双击点数据库,打开

2.使用命令列介面,输入USE +名称

在这里插入图片描述

如何删除数据库?

1.直接右键点击删除数据库

2.使用命令列介面,输入 drop database+名称

在这里插入图片描述

刷新连接,显示删除

如何创建

数据完整性就是要求数据库中的数据具有准确性。准确性是通过数据库表的设计和约束来实现的。

种类型的约束保证完整性:

实体完整性:约束方法:唯一约束、主键约束、标识列

域完整性:约束方法:限制数据类型、检查约束、外键约束、默认值、非空约束

引用完整性:约束方法:外键约束

自定义完整性:约束方法:规则、存储过程、触发器

SQL中的运算符
算术运算符:
SELECT 3+2;
SELECT 50-3;
SELECT 32*2;
SELECT 2/10;
SELECT 10%2;
赋值运算符:

=:把一个数或变量或表达式赋值给另一变量

逻辑运算符:

AND:当且仅当两个布尔表达式都为true时,返回TRUE。

OR:当且仅当两个布尔表达式都为false,返回FALSE

NOT:布尔表达式的值取反

比较运算符:
-- 比较运算符
SELECT 3>2;
SELECT 3<5;
SELECT 4>=2;
SELECT 3<=5;
SELECT 3!=4;
SELECT 4<>5;
数值类型

INT:标准整数

VARCHAR[(M)]:可变字符串

CHAR[(M)]:定长字符串

创建表
-- 创建表
-- create table 表名(
-- 字段   类型,
-- 字段   类型,
-- 字段   类型,
-- )

多字段使用逗号分隔

保留字用撇号括起来

单行注释:#…

多行注释:/……/

查看表

运行创建的语法,在所写的数据库表刷新

删除表

语法: DROP TABLE [IF EXISTS] 表名;

修改表名

语法:ALTER TABLE 旧表名 RENAME [TO] 新表名;

添加字段

语法:ALTER TABLE 表名 ADD 字段名 数据类型 [属性];

修改字段

语法:ALTER TABLE 表名 CHANGE 原字段名 新字段名 数据类型 [属性];

删除字段

语法:ALTER TABLE 表名 DROP 字段名

not null 不能为空

数据库约束

ZEROFILL 补零

DEFAULT 默认值

注释:COMMENT

auto_increment 自增

PRIMARY KEY 主键

主键 1.唯一,2.非空 3.int类型可以自增

在这里插入图片描述

外键

概念:是另一张表的主键,用来和其他表建立关系用的

作用:保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。 使两张表形成关联,外键只能引用外表中的列的值或使用空值。

语法

FOREIGN KEY( 子表名) REFERENCES 主表 (主表名)

在这里插入图片描述

添加数据

INSERT INTO 表名(字段,字段…) VALUES(值,值…);
字段和值必须一一对应 column count doesn’t
有外键时,必须符合条件

主键不能重复

INSERT INTO student(student_no,login_pwd,student_name,
sex,grade_id,phone,address,birthday,email)
VALUES('bq0120','123456','张铮','男',1,'123635343',
'河北','2024-10-14','1234@qq.com');
字段不需要全部都写,必须要写的字段(没有自增的主键,非空的字段,外键)
INSERT INTO student(studen_id,gradet_id)
VALUES('bq0120',9);
不写字段时,必须按顺序添加所有数据
INSERT INTO student
VALUES('bq0020','123456','张三','男',1,'1234566','河北','2024-10-14','1234@qq.com');
有自增主键的表,可以忽略主键,也可以使用默认值
INSERT INTO grade(grade_name) VALUES('鸿蒙1班');
有默认值的字段可以不写内容
有默认值的字段可以代替

多行添加

INSERT INTO subjectes(subject_id,subject_name,subject_hour)
VALUES(null,'as',120),(null,'按时',120),(null,'若凡',120),
(null,'恶妇',120),(null,'合格',120),(null,'方式',120);
主键语法允许修改,但是项目中一般不允许修改主键
UPDATE student SET login_pwd='zhangsan'
 where student_name='张三';
删除
DELETE FROM result where student_result<60;
清空表
TRUNCATE TABLE result 

事务

什么是事务

事务(TRANSACTION)是作为单个逻辑工作单元执行的一系列操作多个操作作为一个整体向系统提交,要么都执行、要么都不执行 事务是一个不可分割的工作逻辑单元

事务必须具备以下四个属性,简称ACID 属性:

原子性:事务是一个完整的操作,事务的各步操作是不可分的(原子的),要么都执行,要么都不执行

一致性:当事务完成时,数据必须处于一致状态

隔离性:并发事务之间彼此隔离、独立,它不应以任何方式依赖于或影响其他事务

持久性:事务完成后,它对数据库的修改被永久保持

如何创建事务

可以在命令行语句里

BEGIN;开始事务(指定事务从此处开始,后续的SQL语句都是一个整体)

UPDATE bank SET morey=morey-500 WHERE name=‘张三’;
UPDATE bank SET morey=morey+500 WHERE name=‘李四’;

COMMIT;提交事务,事务结果

例:如果使用事务解决转账问题

ROLLBACK;回滚事务,数据恢复到原始状态

BEGIN;
UPDATE bank SET morey=morey-500 WHERE name='张三';
DELETE FROM bank WHERE id=1;
UPDATE bank SET morey=morey+500 WHERE name='李四';
ROLLBACK;
自动关闭和开启事务

默认情况下,每条单独的SQL语句视为一个事务关闭默认提交状态后,可手动开启、关闭事务

关闭/开启自动提交状态 SET autocommit = 0|1;

值为0:关闭自动提交

值为1:开启自动提交

# 关闭自动提交
SET autocommit=0;
BEGIN;
UPDATE bank SET morey=morey-500 WHERE name='张三';
DELETE FROM bank WHERE id=1;
UPDATE bank SET morey=morey+500 WHERE name='李四';
ROLLBACK;
-- 打开自动提交
set autocommit=1;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

leetcode128最长连续序列 golang版

题目描述 题目&#xff1a;给定一个未排序的整数数组 nums 找出数字连续的最长序列&#xff0c;不要求序列 元素在原数组中连续 的长度 请你设计并实现时间复杂度为On的算法解决此问题 示例 1&#xff1a; 输入&#xff1a;nums [100,4,200,1,3,2] 输出&#xff1a;4 解释&…

基于RPA+AI的网页自动填写机器人 | OPENAIGC开发者大赛高校组优秀作品

在第二届拯救者杯OPENAIGC开发者大赛中&#xff0c;涌现出一批技术突出、创意卓越的作品。为了让这些优秀项目被更多人看到&#xff0c;我们特意开设了优秀作品报道专栏&#xff0c;旨在展示其独特之处和开发者的精彩故事。 无论您是技术专家还是爱好者&#xff0c;希望能带给…

软件设计师---知识产权

著作权 著作权&#xff08;也称为版权&#xff09;&#xff1a;是指作者对其创作的作品享有的人身权和财产权。 人身权包括&#xff1a; 发表权&#xff1a;时限是作者终身及其死亡后50年署名权&#xff1a;不受时间限制修改权&#xff1a;不受时间限制保护作品完整权&#…

MFC扩展库BCGControlBar Pro v35.1新版亮点:改进网格控件性能

BCGControlBar库拥有500多个经过全面设计、测试和充分记录的MFC扩展类。 我们的组件可以轻松地集成到您的应用程序中&#xff0c;并为您节省数百个开发和调试时间。 BCGControlBar专业版 v35.1已全新发布了&#xff0c;这个版本改进网格控件的性能、增强工具栏编辑器功能等。 …

Android 防止截屏和录屏

通过给当前的window对象设置标记WindowManager.LayoutParams.FLAG_SECURE来防止截屏和录屏 protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 防止截屏getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManage…

en造数据结构与算法C# 之 堆排序

堆的特点 堆排序有两个分类&#xff1a;大顶堆&#xff0c;小顶堆 比如大顶堆就是说所有根节点的值都比左右子节点大 en造数据结构与算法C# 二叉排序树 泛型类的基本构成-CSDN博客 en造数据结构与算法C# 之 二叉排序树的增/查-CSDN博客 en造数据结构与算法C# 之 二叉排序…

使用激光跟踪仪提升码垛机器人精度

标题1.背景 码垛机器人是一种用于工业自动化的机器人&#xff0c;专门设计用来将物品按照一定的顺序和结构堆叠起来&#xff0c;通常用于仓库、物流中心和生产线上&#xff0c;它们可以自动执行重复的、高强度的搬运和堆垛任务。 图1 码垛机器人 传统调整码垛机器人的方法&a…

Qt - QMenu

QMenu 1、menu转string输出 //GlobalEnum.h #include <QObject> #include <QMetaEnum> class GlobalEnum : public QObject {Q_OBJECT public:EnumTest();enum Enum_Test{ZhangSan 0,WangWu,};Q_ENUM(Enum_Test) };#define EnumToString(e) \ QMetaEnum::fromTy…

前端vue部署网站

这里讲解一下前端vue框架部署网站&#xff0c;使用工具是 xshell 和 xftp &#xff08;大家去官网安装免费版的就行了&#xff09; 服务器 我使用的阿里云服务器&#xff0c;买的是 99 一年的&#xff0c;淘宝有新手9.9 一个月服务器。可以去用&#xff0c;学生的话是有免费三…

【优选算法】(第三十六篇)

目录 ⼆叉树的锯⻮形层序遍历&#xff08;medium&#xff09; 题目解析 讲解算法原理 编写代码 ⼆叉树的最⼤宽度&#xff08;medium&#xff09; 题目解析 讲解算法原理 编写代码 ⼆叉树的锯⻮形层序遍历&#xff08;medium&#xff09; 题目解析 1.题目链接&#xf…

zabbix7.0配置中文界面

Zabbix 是一个广泛使用的开源监控解决方案&#xff0c;支持多种语言界面。本文将详细介绍如何配置 Zabbix 以使用中文界面&#xff0c;从而提高用户体验和可读性。 1. 环境准备 在开始配置之前&#xff0c;请确保你已经安装并运行了 Zabbix 服务器、前端和数据库。如果你还没有…

c++中,经常需要用来获取用户输入的写法,或者暂停【防止终端退出】

目录 1. 使用 cin.get() 暂停程序 2. 使用 std::cin.ignore() 结合 std::cin.get() 暂停程序 3. 使用 system("pause")&#xff08;仅限 Windows&#xff09; 4. 使用循环和 cin.get() 结合等待任意输入 5. 使用 cin >> 获取用户输入 为了防止终端窗口在程…

亚信安全亮相中国移动全球合作伙伴大会 AI+安全焕新变革原力

近日&#xff0c;2024中国移动全球合作伙伴大会在广州盛大召开。以“智焕新生 共创AI时代”为主题&#xff0c;携手数百位世界500强企业、国内外知名企业齐聚广州&#xff0c;共商融合创新&#xff0c;共谋AI未来&#xff0c;开启中国式现代化建设的新征程。亚信安全作为中国移…

QT文件操作【记事本】

mainwindow.h核心函数 QFileDialog::getOpenFileName()QFileDialog::getSaveFileName() #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include<QFileDialog> #include<QMessageBox> #include<QDebug> #include<QFile> #…

U9销售订单不能带出最新价格出来

业务员突然说系统带不出来销售价格。了解之后&#xff0c;不是带不出来价格&#xff0c;是做了价格调整之后&#xff0c;最新价格没有匹配出来&#xff0c;带出来的价格是历史价格。检查&#xff0c;分析相关的单据&#xff0c;生效日期&#xff0c;失效日期&#xff0c;审核状…

使用 python 下载 bilibili 视频

本文想要达成的目标为&#xff1a;运行 python 代码之后&#xff0c;在终端输入视频链接&#xff0c;可自动下载高清 1080P 视频并保存到相应文件夹。 具体可分为两大步&#xff1a;首先&#xff0c;使用浏览器开发者工具 F12 获取请求链接相关信息&#xff08;根据 api 接口下…

从加载到对话:使用 Llama-cpp-python 本地运行量化 LLM 大模型(GGUF)

&#xff08;无需显卡&#xff09;使用 Llama-cpp-python 在本地加载具有 70 亿参数的 LLM 大语言模型&#xff0c;通过这篇文章你将学会用代码创建属于自己的 GPT。 建议阅读完 19a 的「前言」和「模型下载」部分后再进行本文的阅读。 代码文件下载&#xff1a;Llama-cpp-pyth…

Vue3 + TypeScript + Vite + Echarts

Vue3 TypeScript Vite Echarts 1、创建工程 npm create vitelatestcd echarts npm install npm run dev2、安装项目依赖模块 npm install types/node --save-devnpm install vue-router4npm install animate.css --save npm install gsap --savenpm install fetch --save …

跨境电商干货:Etsy选品及相关运营技巧分享

Etsy作为一个吸引了全球将近一亿消费者的电子商务平台&#xff0c;因其聚焦小众、原创、设计产品的特点而拥有相当不错的流量和潜力&#xff0c;如果需要优化自己的Etsy店铺选品工作&#xff0c;可以参考以下技巧。 一、选品方向 1.按需求 Etsy主张售卖富有创意的、由卖家制作…

三电平逆变器:技术原理与实际应用

三电平逆变器&#xff1a;技术原理与实际应用&#xff08;网盘https://pan.baidu.com/s/1KRV4DBMChwZiu5lKgo0bEA 提取码 8v8p&#xff09; 中点钳位三电平逆变器的特性 优点 1、在换流过程中&#xff0c;每个功率半导体器件所承受的电压均为Ud/2。这有助于逆变器电压等级和…