当前位置: 首页 > news >正文

飞天使-django之数据库简介

文章目录

      • 增删改查
        • 解决数据库不能存储中文问题
        • 创建表
        • 数据类型
        • 表的基本操作
        • 主键
        • 唯一键 unique
        • 外键
        • 实战

增删改查

四个常用的语句查询 :  insert  delete update select
insert into student(Sno,name) values(95001,"张三")
delete from student where name='张三'
update student set name='李四' where sno = 95001
select sno,name from student
mysql> select * from student;
+-------+-------+
| sno   | name  |
+-------+-------+
| 95001 | sdgge |
| 95002 | tomas |
+-------+-------+
2 rows in set (0.00 sec)mysql> select * from student;
+-------+-------+
| sno   | name  |
+-------+-------+
| 95001 | sdgge |
| 95002 | tomas |
+-------+-------+
2 rows in set (0.00 sec)mysql> insert into student values(95003,'1faf');
Query OK, 1 row affected (0.01 sec)mysql> select * from student;
+-------+-------+
| sno   | name  |
+-------+-------+
| 95001 | sdgge |
| 95002 | tomas |
| 95003 | 1faf  |
+-------+-------+
3 rows in set (0.01 sec)mysql> update student set name='gsd' where sno=95003;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0mysql> select * from student;
+-------+-------+
| sno   | name  |
+-------+-------+
| 95001 | sdgge |
| 95002 | tomas |
| 95003 | gsd   |
+-------+-------+
3 rows in set (0.00 sec)
mysql> delete from student where sno=95002;
Query OK, 1 row affected (0.00 sec)mysql> select * from student;
+-------+-------+
| sno   | name  |
+-------+-------+
| 95001 | sdgge |
| 95003 | gsd   |
+-------+-------+
2 rows in set (0.00 sec)
解决数据库不能存储中文问题
create database testdb default character set utf8 collate utf8_general_ci;
查看数据当前用的哪个编码
mysql> show variables like 'character_set_database';
+------------------------+---------+
| Variable_name          | Value   |
+------------------------+---------+
| character_set_database | utf8mb3 |
+------------------------+---------+
1 row in set (0.01 sec)mysql> alter database testdb chatacter set utf8;
只影响之后创建的表或者问chatgpt
创建表
创建表,create table 
mysql> create table student-> (-> sno int,-> name varchar(10),-> gender varchar(10),-> birtthday date,-> mobile varchar(20),-> email varchar(50),-> homeaddress varchar(100)-> );
Query OK, 0 rows affected (0.05 sec)# 创建一个表Book 
create table book
(BookId int,BookName varchar(100),Author varchar(20),Press varchar(100),Price float(6,2)
)
下图显示的是如何用navicat进行命令进行查询语句 

在这里插入图片描述

数据类型
如下图所示
使用的类型要满足你用的大小
尽量节约空间字符串 长度明确的用 char
不明确的用varchar

在这里插入图片描述

表的基本操作
create table if not exists student
(
SNO int UNSIGNED,
SName varchar(20),
Gender char(3),
Mobile char(11),
Email varchar(100),
Adress varchar(200)
)#修改表
alter table student add column studentdesc TEXT# 删除表
drop table student 插入一些数据
INSERT INTO student(SNO, SName, Gender, Mobile, Email, Adress) VALUES (95001, '张三', '男', '1283833333', 'abc@gmail.com', '上海市某某路');插入多行
INSERT INTO student(SNO, SName, Gender, Mobile, Email, Adress) 
VALUES (95001, '张三', '男', '1283833333', 'abc@gmail.com', '上海市某某路'),(95002, '李四', '男', '1383833333', 'def@gmail.com', '北京市某某路'),(95003, '王五', '女', '1483833333', 'ghi@gmail.com', '广州市某某路'),(95004, '赵六', '女', '1583833333', 'jkl@gmail.com', '深圳市某某路'),(95005, '钱七', '男', '1683833333', 'mno@gmail.com', '成都市某某路');修改一条记录
UPdate student set Gender='男' where SNO=95001 Or Sname='张三'
update student set Gender='女'   # 这句话会修改所有的删除
delete from student where Gender='女';查询 
select * from student;
select SNo,SName where Mobile like '%888'

在这里插入图片描述

主键
上面表中SNO 有重复的, 对于关键字段不能保持唯一,主键可以做到
主键要唯一,且不能为空,主键只能有一个
create table student01
(
SNO int PRIMARY key,
SName varchar(20)
)或者,一般用这种,这种有名字,方便管理
create table student02
(
SNO int,
Sname varchar(20),
CONSTRAINT Pk_SNO PRIMARY Key(SNO)
)复合主键
create table borrowbook
(
sno int, 
bookid int,
borrowdata date,
returndata date,
constraint pk_borrowbook primary key(sno,bookid)
)
需要两个行来一起捆绑一起来进行判断

在这里插入图片描述

唯一键 unique
保证字段的值不能重复,因为一个表只能有一个主键,其他的字段如果也想唯一,则需要唯一键
一个表中可以为多个
create table student03
(
sno int,
sname varchar(20) not null,
gender char(3),
birthday date,
mobile varchar(20),
email varchar(100),
address varchar(200),
constraint pk_sno primary key(sno),
constraint uq_mobile unique(mobile),
constraint uq_email unique(email)
)插入10条数据
INSERT INTO student03 (sno, sname, gender, birthday, mobile, email, address) VALUES(1, '张三', '男', '2000-01-01', '13838383838', 'zhangsan@example.com', '上海市某某路'),(2, '李四', '男', '2000-02-02', '13939393939', 'lisi@example.com', '北京市某某路'),(3, '王五', '男', '2000-03-03', '13636363636', 'wangwu@example.com', '广州市某某路'),(4, '赵六', '女', '2000-04-04', '13737373737', 'zhaoliu@example.com', '深圳市某某路'),(5, '钱七', '女', '2000-05-05', '13535353535', 'qianqi@example.com', '成都市某某路'),(6, '孙八', '男', '2000-06-06', '13333333333', 'sunba@example.com', '重庆市某某路'),(7, '周九', '男', '2000-07-07', '13232323232', 'zhoujiu@example.com', '武汉市某某路'),(8, '吴十', '女', '2000-08-08', '13131313131', 'wushi@example.com', '南京市某某路'),(9, '郑十一', '男', '2000-09-09', '13030303030', 'zhengshiyi@example.com', '西安市某某路'),(10, '王十二', '女', '2000-10-10', '12929292929', 'wangshier@example.com', '杭州市某某路');
外键
保证数据的完整性
CREATE TABLE borrowbook1 (sno INT,bookid INT,borrowdate DATE,returndate DATE,CONSTRAINT pk_borrowbook PRIMARY KEY (sno, bookid),CONSTRAINT fk_sno FOREIGN KEY (sno) REFERENCES student03(sno),CONSTRAINT fk_bookid FOREIGN KEY (bookid) REFERENCES book(bookid)
);create table book
(
bookid int,
bookname varchar(100),
author varchar(20),
press varchar(50),
price float(8,2),
constraint pk_bookid primary key(bookid)
)插入数据
根据您提供的信息,我将为每个表提供两条插入语句的示例。对于"borrowbook1"表:
sql
INSERT INTO borrowbook1 (sno, bookid, borrowdate, returndate) VALUES(1, 101, '2023-11-01', '2023-11-08'),(2, 102, '2023-11-02', '2023-11-09');
上述示例插入了两条数据到"borrowbook1"表中。对于"book"表:
sql
INSERT INTO book (bookid, bookname, author, press, price) VALUES(101, '书籍1', '作者1', '出版社1', 29.99),(102, '书籍2', '作者2', '出版社2', 39.99);
上述示例插入了两条数据到"book"表中。对于"student03"表:
sql
INSERT INTO student03 (sno, sname, gender, birthday, mobile, email, address) VALUES(1, '张三', '男', '2000-01-01', '13838383838', 'zhangsan@example.com', '上海市某某路'),(2, '李四', '男', '2000-02-02', '13939393939', 'lisi@example.com', '北京市某某路');
上述示例插入了两条数据到"student03"表中。请根据需要修改每条插入语句中的具体值。如果插入一个学号为空的值,则报错,学号11是没有数据的在student3 表格中
sno和bookid 在 borrowbook1 表中是属于外键,所以插入之前会去student3 表格中去找下 sno 是不是有学号 11 ,没有则如下图一样报错
INSERT INTO borrowbook1 (sno, bookid, borrowdate, returndate) VALUES(11, 101, '2023-11-02', '2023-11-05')

在这里插入图片描述

实战
create table student
(
sno int auto_increment comment '学号',
sname varchar(20) not null comment '姓名',
gender char(3) not null comment '性别',
birthday date comment '出生日期',
mobile varchar(20) comment '手机号',
email varchar(100) comment '邮箱地址',
address varchar(200) comment '家庭住址',
constraint pk_sno primary key(sno),
constraint uq_mobile unique(mobile),
constraint uq_email unique(email)
) auto_increment = 95001;INSERT INTO student (sname, gender, birthday, mobile, email, address) VALUES ('张三', '男', '1995-01-01', '13812345678', 'zhangsan@example.com', '北京市东城区');
INSERT INTO student (sname, gender, birthday, mobile, email, address) VALUES ('李四', '女', '1996-02-02', '13987654321', 'lisi@example.com', '上海市浦东新区');
INSERT INTO student (sname, gender, birthday, mobile, email, address) VALUES ('王五', '男', '1997-03-03', '13611112222', 'wangwu@example.com', '广州市天河区');CREATE TABLE book (bookid INT AUTO_INCREMENT COMMENT '图书编号',bookname VARCHAR(100) NOT NULL COMMENT '图书名称',author VARCHAR(20) NOT NULL COMMENT '作者',press VARCHAR(100) NOT NULL COMMENT '出版社',price FLOAT(8, 2) NOT NULL COMMENT '图书价格',CONSTRAINT pk_bookid PRIMARY KEY (bookid)
) AUTO_INCREMENT = 112;INSERT INTO book (bookname, author, press, price) VALUES ('书籍1', '作者1', '出版社1', 29.99);
INSERT INTO book (bookname, author, press, price) VALUES ('书籍2', '作者2', '出版社2', 39.99);
INSERT INTO book (bookname, author, press, price) VALUES ('书籍3', '作者3', '出版社3', 49.99);CREATE TABLE borrowbook
(borrowid INT AUTO_INCREMENT COMMENT '借书编号',sno INT COMMENT '学号',bookid INT COMMENT '图书编号',borrowdate DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '借书时间',returndate DATETIME DEFAULT NULL,CONSTRAINT pk_borrowbook PRIMARY KEY (borrowid),CONSTRAINT fk_sno FOREIGN KEY (sno) REFERENCES student(sno),CONSTRAINT fk_bookid FOREIGN KEY (bookid) REFERENCES book(bookid)
);-- 插入示例数据
INSERT INTO borrowbook (sno, bookid) VALUES (95001, 112);
INSERT INTO borrowbook (sno, bookid) VALUES (95002, 113);
INSERT INTO borrowbook (sno, bookid) VALUES (95003, 114);

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关文章:

飞天使-django之数据库简介

文章目录 增删改查解决数据库不能存储中文问题创建表数据类型表的基本操作主键唯一键 unique外键实战 增删改查 四个常用的语句查询 : insert delete update select insert into student(Sno,name) values(95001,"张三") delete from student where name张三 upda…...

Flink之KeyedState

前面的文章中介绍过Operator State,这里介绍一下Keyed State. 在使用Operator State时必须要实现CheckpointFunction接口,而Keyed State则不需要,在使用keyBy(...)分组分组后,调用的函数必须是实现RichFuntion接口的函数才可以使用Keyed State.同样使用Keyed State也必须开启Ch…...

c语言:模拟实现qsort函数

qsort函数的功能: qsort相较于冒泡排序法,不仅效率更快,而且能够比较不同类型的元素,如:浮点数,结构体等等。这里我们来模拟下qsort是如何实现这一功能的,方便我们对指针数组有一个更深层次的理…...

从0开始学习数据结构 C语言实现 1.前篇及二分查找算法

一、前篇 1、什么是数据结构? 数据结构是带有结构特性的数据元素的集合,它研究的是数据的逻辑结构和数据的物理结构以及它们之间的相互关系 2、时间复杂度与空间复杂度 大O符号是用于描述函数渐进行为的数学符号 常用函数的增长表 阶乘O(n!) > 指数…...

VSCode 使用CMakePreset找不到cl.exe编译器的问题

在用vscode开发c项目的时候,使用预先配置的CMakePresets.json可以把一些特定的cmake选项固定下来,在配置时直接使用 "cmake --config --preset presetname"就可以进行配置,免去在命令行输入过多的配置参数。 但是在vscode中&#…...

【Linux系统化学习】进程的状态 | 僵尸进程 | 孤儿进程

个人主页点击直达:小白不是程序媛 Linux专栏:Linux系统化学习 目录 操作系统进程的状态 运行状态 阻塞状态 进程阻塞的现象 挂起阻塞状态 Linux进程状态 Linux内核源代码怎么说 R(running状态)运行状态 S(sl…...

深信服AC流量管理技术

拓扑图 一.保证通道针对修仙部,访问网站,邮件,DNS,IM,办工 OA,微博论坛网上银行等常见应用保证带宽最低 50%,最高 100% 1. 先新建线路带宽 2.新增流量管理通道(保证关键应用&#x…...

二元关系及关系代数中的象集、除运算

二元关系及关系代数中的象集、除运算 数学上,二元关系用于讨论两个数学对象的联系。诸如算术中的「大于」及「等于」,几何学中的"相似",或集合论中的"为...之元素"或"为...之子集"。二元关系有时会简称关系&a…...

[PHP]关联和操作MySQL数据库然后将数据库部署到ECS

在Mac电脑上使用VS Code进行PHP开发并关联操作MySQL数据库,然后将数据库部署到ECS。 1.安装PHP和MySQL 确保你的Mac上已经安装了PHP和MySQL。你可以使用Homebrew来安装它们: $ brew install php $ brew install mysql 安装mysql完成后记住这一句: …...

23.11.19日总结

经过昨天的中期答辩,其实可以看出来项目进度太慢了,现在是第十周,预计第十四周是终级答辩,在这段时间要把项目写完。 前端要加上一个未登录的拦截器,后端加上全局的异常处理。对于饿了么项目的商品建表,之前…...

系列一、JVM概述

一、概述 1.1、Java发展中的重大事件 1.2、虚拟机 vs Java虚拟机 1.2.1、虚拟机 1.2.2、Java虚拟机 1.2.3、Java虚拟机的作用 Java虚拟机是二进制字节码的运行环境,负责装载字节码到其内部,解释/编译为对应平台上的机器指令指令。每一条Java指令&#…...

milvus数据管理-压缩数据

Milvus 默认支持自动数据压缩。您可以 配置 Milvus 以启用或禁用 压缩 和自动压缩。 如果自动压缩被禁用,您仍然可以手动压缩数据。 1.手动压缩数据 压缩请求是异步处理的,因为它们通常需要花费很长时间。 from pymilvus import Collection collection…...

SpringBoot项目连接linux服务器数据库两种解决方法(linux直接开放端口访问本机通过SSH协议访问,以mysql为例)

最近找个springboot脚手架重新熟悉一下springboot相关框架的东西,结果发现好像项目还不能直接像数据库GUI工具一样填几个SSH参数就可以了,于是就给他再整一下看看如何解决 linux开放3306(可修改)端口直接访问 此方法较为方便&am…...

【Rust】快速教程——闭包与生命周期

前言 你怎么向天生的瞎子说清颜色?怎么用手势向天生的聋子描述声音? 鲜花就在眼前,雷鸣就在头顶,对他们来说却都毫无意义 眼睛看不到,鼻子可以嗅闻花香,耳朵听不见,手指可以触碰窗纸的震动。 犯…...

redis高级案列case

案列一 双写一致性 案例二 双锁策略 package com.redis.redis01.service;import com.redis.redis01.bean.RedisBs; import com.redis.redis01.mapper.RedisBsMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; imp…...

Vue3+Vite实现工程化,attribute属性渲染v-bind指令

想要渲染一个元素的attribute&#xff0c;应该使用v-bind指令 由于插值表达式不能直接放在标签的属性中&#xff0c;所有要渲染元素的属性就应该使用v-bindv-bind可以用于渲染任何元素的属性&#xff0c;语法为 v-bind:属性名数据名&#xff0c;可以简写为 :属性名数据名 <…...

下一代搜索引擎会什么?

现在是北京时间2023年11月18日。聊一聊搜索。 说到搜索&#xff0c;大家首先想到的肯定是谷歌&#xff0c;百度。我把这些定义成上一个时代的搜索引擎。ChatGPT已经火热了有一年的时间了&#xff0c;大家都认为Ai搜索是下一代的搜索。但是AI搜索&#xff0c;需要的是很大算力&a…...

WPF中如何在MVVM模式下关闭窗口

完全来源于十月的寒流&#xff0c;感谢大佬讲解 使用Behaviors <Window x:Class"Test_03.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:b"http://schemas.microsoft.com/xaml/behaviors"xmlns:x&quo…...

【数据结构&C++】二叉平衡搜索树-AVL树(25)

前言 大家好吖&#xff0c;欢迎来到 YY 滴C系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; 目录 一.AVL树的概念二.AVL树节点的定义(代码…...

Python算法——树的最大深度和最小深度

Python中的树的最大深度和最小深度算法详解 树的最大深度和最小深度是树结构中的两个关键指标&#xff0c;它们分别表示树的从根节点到最深叶子节点的最大路径长度和最小路径长度。在本文中&#xff0c;我们将深入讨论如何计算树的最大深度和最小深度&#xff0c;并提供Python…...

时序数据库 + 微服务:MyEMS 如何支撑千万级测点的能源管理平台

在工业能源数字化的实践中&#xff0c;一个常被低估的命题是&#xff1a;当一家大型制造集团拥有数十个厂区、每个厂区部署数千台智能表计和传感器&#xff0c;全集团同时在线的测点数量突破千万级别时&#xff0c;能源管理系统应当具备怎样的技术底色&#xff1f;这不是一个关…...

别再为立体匹配发愁了!手把手教你用Fusiello法搞定双目相机极线校正(附Python代码)

双目视觉实战&#xff1a;Fusiello极线校正算法详解与Python实现在计算机视觉领域&#xff0c;立体匹配是获取三维场景信息的关键步骤。但原始双目图像由于相机位置差异&#xff0c;导致匹配搜索空间复杂&#xff0c;计算效率低下。本文将深入解析Fusiello极线校正算法的数学原…...

网络技术05-TCP拥塞控制算法——从CUBIC到BBR的性能进化

&#x1f697; 一句话总结&#xff1a;TCP拥塞控制就像开车——看到前面堵车就减速&#xff08;拥塞避免&#xff09;&#xff0c;路通畅了就慢慢加速&#xff08;慢启动&#xff09;。CUBIC是"看到堵车就猛踩刹车"&#xff0c;BBR是"根据路况预测提前调整"…...

Kubernetes安全加固指南:构建安全的容器平台

Kubernetes安全加固指南&#xff1a;构建安全的容器平台 一、Kubernetes安全概述 Kubernetes安全涉及多个层面&#xff0c;包括网络安全、Pod安全、数据安全、访问控制等。构建安全的Kubernetes集群需要从多个维度进行加固。 1.1 安全维度 维度说明关注点网络安全Pod间通信…...

3分钟让AI自动分层?LayerDivider如何拯救你的PSD编辑噩梦

3分钟让AI自动分层&#xff1f;LayerDivider如何拯救你的PSD编辑噩梦 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider 还在为一张扁平插画需要分层编辑而头…...

专业级GPU内存检测:MemTestCL的5个实战场景深度解析

专业级GPU内存检测&#xff1a;MemTestCL的5个实战场景深度解析 【免费下载链接】memtestCL OpenCL memory tester for GPUs 项目地址: https://gitcode.com/gh_mirrors/me/memtestCL MemTestCL作为斯坦福大学开发的开源OpenCL内存检测工具&#xff0c;为GPU、CPU及各类…...

【Java EE】IPv6

IPv6引言IPv6 地址表示IPv6 地址类型地址范围详解多播地址结构IPv6 与 IPv4 的主要区别IPv6 首部格式扩展首部IPv6 地址配置方式无状态地址自动配置&#xff08;SLAAC&#xff09;有状态配置&#xff08;DHCPv6&#xff09;手动配置邻居发现协议&#xff08;NDP&#xff09;IPv…...

DeepSeek混合云架构下跨AZ流量调度困局:基于eBPF+Service Mesh的实时负载感知调度器设计(已上线支撑日均2.7亿QPS)

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;DeepSeek混合云架构下跨AZ流量调度困局的系统性认知 在DeepSeek混合云生产环境中&#xff0c;核心推理服务部署于多可用区&#xff08;AZ&#xff09;集群&#xff0c;底层横跨公有云&#xff08;如AWS us-ea…...

高斯过程回归与离散变分原理:数据驱动的物理结构发现

1. 项目概述&#xff1a;当高斯过程回归遇见离散变分原理在物理信息机器学习这个交叉领域&#xff0c;我们常常面临一个核心挑战&#xff1a;如何从有限的、可能带有噪声的观测数据中&#xff0c;不仅还原出物理系统的动态&#xff0c;还能揭示其背后深刻的数学结构&#xff1f…...

【DeepSeek本地部署终极指南】:20年AI工程师亲测的5步零失败落地法(含GPU资源优化秘籍)

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;DeepSeek本地部署的底层逻辑与价值重定义 DeepSeek系列大模型的本地化部署&#xff0c;本质上是对AI能力所有权、数据主权与计算自主权的三重回归。它并非简单地将远程API替换为本地服务&#xff0c;而是重构…...