飞天使-django之数据库简介

news2024/12/26 22:59:51

文章目录

      • 增删改查
        • 解决数据库不能存储中文问题
        • 创建表
        • 数据类型
        • 表的基本操作
        • 主键
        • 唯一键 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: 0

mysql> 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);

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

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

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

相关文章

分类预测 | Matlab实现PSO-GRU-Attention粒子群算法优化门控循环单元融合注意力机制多特征分类预测

分类预测 | Matlab实现PSO-GRU-Attention粒子群算法优化门控循环单元融合注意力机制多特征分类预测 目录 分类预测 | Matlab实现PSO-GRU-Attention粒子群算法优化门控循环单元融合注意力机制多特征分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现PSO…

Java获取Jar、War包路径,并生成可编辑修改的本地配置文件

前言 本地的可修改配置文件的编写理应是一个很常用的功能,但由于数据库的存在,它鲜少被提及,大多数我们直接存储到数据库中了。 以至于现今,除了没接触数据库的新手时常使用它以外,它没有太多的出场机会。 也因此&am…

vue手动搭建脚手架(保姆式教案)

目录 1.创建项目 1.node.js环境搭建 2.安装vue-cli 3.搭建项目 目录结构 1.创建项目 1.node.js环境搭建 下载安装node.js(Download | Node.js),安装时不要安装在C盘Windowsr打开cmd管理工具开始输入命令检查node.js是否安装和版本号&a…

051-第三代软件开发-日志容量时间限制

第三代软件开发-日志容量时间限制 文章目录 第三代软件开发-日志容量时间限制项目介绍日志容量时间限制 关键字: Qt、 Qml、 Time、 容量、 大小 项目介绍 欢迎来到我们的 QML & C 项目!这个项目结合了 QML(Qt Meta-Object Language…

CentOS停更在即,国内厂商该如何应对?KeyarchOS X2Keyarch 迁移体验

一、CentOS 停更危机二、关于浪潮信息KeyarchOS三、浪潮信息 KeyarchOS License 应用迁移实践第一步:迁移前验证第二步:迁移第三步:迁移后验证 四、写在最后 一、CentOS 停更危机 自 1993 年开始,红帽 Linux 已经陪伴开发者们走过…

VUE基础的一些实战总结

目录 创建一个 Vue 应用 步骤 1:安装 Node.js 和 npm 步骤 2:安装 Vue CLI 步骤 3:创建 Vue 项目 步骤 4:启动开发服务器 步骤 5:访问应用程序 步骤 6:编辑 Vue 应用 步骤 7:构建和部署…

论文绘图-机器学习100张模型图

在现代学术研究和技术展示中,高质量的图表和模型结构图是至关重要的。这尤其在机器学习领域更为显著,一个领域以其复杂的算法和复杂的数据结构而闻名。机器学习是一种使用统计技术使计算机系统能够从数据中学习和改进其任务执行的方法,而有效…

算法分析与设计考前冲刺 阅读

拜读我胡哥的精品复习资料 acmack 胡哥发表重要讲话,强调算法的重要性,我等深受触动。 Map:底层是红黑树,按照key自动进行排序 list: 线性链表 我一直单纯的觉得list是列表,这不仅说明了胡哥与我的技术…

C++标准模板(STL)- 类型支持 (属性查询,获取类型的对齐要求)

类型特性 类型特性定义一个编译时基于模板的结构&#xff0c;以查询或修改类型的属性。 试图特化定义于 <type_traits> 头文件的模板导致未定义行为&#xff0c;除了 std::common_type 可依照其所描述特化。 定义于<type_traits>头文件的模板可以用不完整类型实例…

CentOS to KeyarchOS 系统迁移体验

1. KOS(KeyarchOS)——云峦操作系统简介 KeyarchOS 即云峦操作系统(简称 KOS)是浪潮信息基于 Linux 内核、龙蜥等开源技术自主研发的一款服务器操作系统&#xff0c;支持x86、ARM 等主流架构处理器&#xff0c;广泛兼容传统 CentOS 生态产品和创新技术产品&#xff0c;可为用户…

一个前端非侵入式骨架屏自动生成方案

目录 背景 现有方案调研 侵入业务式手写代码 非侵入业务式手写代码 非侵入式骨架屏代码自动生成 技术方案 设计原则 架构图 骨架屏生成 骨架屏注入 优化点 部分技术细节解析 puppeteer 文本块处理 图片块处理 a 标签处理 自定义属性处理 首屏HTML处理 首屏样…

用照片预测人的年龄【图像回归】

在图像分类任务中&#xff0c;卷积神经网络 (CNN) 是非常强大的神经网络架构。 然而&#xff0c;鲜为人知的是&#xff0c;它们同样能够执行图像回归任务。 图像分类和图像回归任务之间的基本区别在于分类任务中的目标变量&#xff08;我们试图预测的东西&#xff09;不是连续…

WireGuard 组网教程:快速构建安全高效的私密网络并实现内网穿透

文章目录 1 引言1.1 什么是WireGuard1.2 WireGuard可以用来做什么1.3 WireGuard原理1.4 WireGuard安装 2 WireGuard组网实现内网穿透2.1 前提条件2.2 网络拓扑结构2.3 具体步骤2.3.1 中继服务器配置2.3.2 其他peer2.3.3 测试 2.4 WireGuard配置文件说明 3 WireGuard工具3.1 wg-…

智慧环保:科技驱动下的环境保护新篇章

智慧环保&#xff1a;科技驱动下的环境保护新篇章 环境保护已经成为当今社会的重要议题&#xff0c;而科技的飞速发展为我们开启了智慧环保的新篇章。在这篇文章中&#xff0c;我们将介绍智慧环保所带来的机会和创新&#xff0c;以及科技在环境保护中的重要作用。 智慧环保的理…

Topaz Video AI:引领视频质量革命,让您的内容焕发新生

随着数字媒体的日益普及&#xff0c;视频质量的重要性日益凸显。无论是个人用户还是专业团队&#xff0c;都需要确保他们的视频内容具有最佳的质量。但是&#xff0c;由于各种原因&#xff0c;如设备限制、环境干扰等&#xff0c;往往导致视频质量不尽如人意。这时&#xff0c;…

基于SSM的员工信息管理系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

[Android]创建TabBar

创建一个包含“首页”、“分类”和“我的”选项卡的TabBar并实现切换功能&#xff0c;通常可以通过使用TabLayout结合ViewPager或ViewPager2来完成。以下是一个基本的示例&#xff0c;展示了如何使用Kotlin和XML来实现这个功能。 1.添加依赖项到build.gradle dependencies {/…

linux 网络 cat /proc/net/dev 查看测试网络丢包情况

可以通过 cat /proc/net/dev 查看测试网络丢包情况&#xff0c;drop关键字&#xff0c;查看所有网卡的丢包情况 还可以看其他数据&#xff0c; /proc/net/下面有如下文件

德迅云安全为您介绍关于抗D盾的一些事

抗D盾概述&#xff1a; 抗D盾是新一代的智能分布式云接入系统&#xff0c;接入节点采用多机房集群部署模式&#xff0c;隐藏真实服务器IP&#xff0c;类似于网站CDN的节点接入&#xff0c;但是“抗D盾”是比CDN应用范围更广的接入方式&#xff0c;适合任何TCP 端类应用包括&am…

kubernetes--资源调度

目录 一、自动调度 1. Pod 启动创建过程&#xff1a; 2. 调度过程&#xff1a; 2.1 调度分为几个部分&#xff1a; 2.2 常见的预算策略&#xff08; Predicate &#xff09;&#xff1a; 2.3 常见的优选策略&#xff08;priorities&#xff09;&#xff1a; 二、定向调度&…