当前位置: 首页 > 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);

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

相关文章:

  • 网页开发如何实现简易页面跳动/跳转,html课堂练习/作业,页面ABC的相互跳转
  • CDN加速在目前网络安全里的重要性
  • C#的MessagePack(unity)--02
  • 【MySQL】数据类型
  • 阿里云CentOS主机开启ipv6
  • Spring Boot - devtools 热部署
  • 苍穹外卖项目笔记(2)
  • hive数据库delete删除部分数据/删除分区内的数据
  • PyCharm 远程连接服务器并使用服务器的 Jupyter 环境
  • C/C++疫情集中隔离 2021年12月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析
  • 基于SSM的设备配件管理和设备检修系统
  • Banana Pi BPI-W3之RK3588安装Qt+opencv+采集摄像头画面.
  • linux下usleep函数对CPU占用率的影响
  • window 搭建 MQTT 服务器并使用
  • 【Linux】gitee仓库的注册使用以及在Linux上远程把代码上传到gitee上的方法
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • 2017 年终总结 —— 在路上
  • chrome扩展demo1-小时钟
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • Promise初体验
  • 基于 Babel 的 npm 包最小化设置
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 在Unity中实现一个简单的消息管理器
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • (Forward) Music Player: From UI Proposal to Code
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (SpringBoot)第七章:SpringBoot日志文件
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (汇总)os模块以及shutil模块对文件的操作
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • .NET 读取 JSON格式的数据
  • .Net 垃圾回收机制原理(二)
  • .net 流——流的类型体系简单介绍
  • .Net转Java自学之路—基础巩固篇十三(集合)
  • @Async注解的坑,小心
  • [.net]官方水晶报表的使用以演示下载
  • [100天算法】-每个元音包含偶数次的最长子字符串(day 53)
  • [AIGC] 如何建立和优化你的工作流?
  • [Angularjs]asp.net mvc+angularjs+web api单页应用之CRUD操作
  • [Asp.net MVC]Asp.net MVC5系列——Razor语法
  • [BZOJ5250][九省联考2018]秘密袭击(DP)
  • [C#]OpenCvSharp使用帧差法或者三帧差法检测移动物体
  • [C++] 统计程序耗时
  • [CTO札记]如何测试用户接受度?
  • [CUDA 学习笔记] CUDA kernel 的 grid_size 和 block_size 选择
  • [ESP32] 编码旋钮驱动
  • [IE编程] WebBrowser控件的多页面浏览(Tabbed Browsing)开发接口