飞天使-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,应该使用v-bind指令 由于插值表达式不能直接放在标签的属性中,所有要渲染元素的属性就应该使用v-bindv-bind可以用于渲染任何元素的属性,语法为 v-bind:属性名数据名,可以简写为 :属性名数据名 <…...

下一代搜索引擎会什么?
现在是北京时间2023年11月18日。聊一聊搜索。 说到搜索,大家首先想到的肯定是谷歌,百度。我把这些定义成上一个时代的搜索引擎。ChatGPT已经火热了有一年的时间了,大家都认为Ai搜索是下一代的搜索。但是AI搜索,需要的是很大算力&a…...
WPF中如何在MVVM模式下关闭窗口
完全来源于十月的寒流,感谢大佬讲解 使用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)
前言 大家好吖,欢迎来到 YY 滴C系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! 目录 一.AVL树的概念二.AVL树节点的定义(代码…...
Python算法——树的最大深度和最小深度
Python中的树的最大深度和最小深度算法详解 树的最大深度和最小深度是树结构中的两个关键指标,它们分别表示树的从根节点到最深叶子节点的最大路径长度和最小路径长度。在本文中,我们将深入讨论如何计算树的最大深度和最小深度,并提供Python…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
日常一水C
多态 言简意赅:就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过,当子类和父类的函数名相同时,会隐藏父类的同名函数转而调用子类的同名函数,如果要调用父类的同名函数,那么就需要对父类进行引用&#…...
【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验
Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...
webpack面试题
面试题:webpack介绍和简单使用 一、webpack(模块化打包工具)1. webpack是把项目当作一个整体,通过给定的一个主文件,webpack将从这个主文件开始找到你项目当中的所有依赖文件,使用loaders来处理它们&#x…...
从零手写Java版本的LSM Tree (一):LSM Tree 概述
🔥 推荐一个高质量的Java LSM Tree开源项目! https://github.com/brianxiadong/java-lsm-tree java-lsm-tree 是一个从零实现的Log-Structured Merge Tree,专为高并发写入场景设计。 核心亮点: ⚡ 极致性能:写入速度超…...

Springboot 高校报修与互助平台小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,高校报修与互助平台小程序被用户普遍使用,为…...
标注工具核心架构分析——主窗口的图像显示
🏗️ 标注工具核心架构分析 📋 系统概述 主要有两个核心类,采用经典的 Scene-View 架构模式: 🎯 核心类结构 1. AnnotationScene (QGraphicsScene子类) 主要负责标注场景的管理和交互 🔧 关键函数&…...