MySQL:常用的SQL语句

提醒:设定下面的语句是在数据库名为 db_book执行的。

一、创建表

1. 创建t_booktype表

USE db_book;
CREATE TABLE t_booktype(
	id INT AUTO_INCREMENT, 
	bookTypeName VARCHAR(20),
	bookTypeDesc varchar(200),
	PRIMARY KEY (id)
);

在这里插入图片描述

2. 创建t_book表

USE db_book;
CREATE TABLE t_book(
	id INT PRIMARY KEY AUTO_INCREMENT, 
	bookName VARCHAR(20) DEFAULT NULL, 
	price DECIMAL(6, 2) DEFAULT NULL, 
	bookTypeId INT, 
	constraint `fk` foreign key (`bookTypeId`) references `t_booktype`(`id`)/*添加外键*/
);

添加外键约束:alter table 从表 add constraint 外键(形如:FK_从表_主表) foreign key (从表外键字段) references 主表(主键字段);

提醒: 大多数情况,不推荐使用外键,需要用到外键的逻辑最好放到应用层解决

外键的优点

  • 数据一致性;
  • 完整性会更可靠;
  • 提高数据质量;

外键的缺点

  • 损耗性能:当做一些涉及外键字段的增,删,更新操作之前,数据库需要检查它是否违反数据完整性,不得不消耗资源。
  • 更高层次的框架
    许多应用程序使用编程框架,在物理数据库之上创建另一个逻辑层。开发人员不使用插入或更新语句来修改数据,而使用API或者框架在后台执行相关操作。ORM(对象关系映射)框架或Ruby on Rails框架就是这种情况。这些工具负责参照完整性,并与RDBMS一起创建更高级别的数据库引擎。这些框架可以自己创建数据库表,而不总是创建外键。使用这些工具的开发人员很少会干扰自动生成的模式,并且不需要外键。
  • 跨数据库关系:
    一些数据库跨越更多的物理数据库甚至引擎,并且在技术上可能不能创建跨越数据库的它不能在同一台服务器上的两个数据库上创建key。SQL Server就是一个很好的例子 - 它不能在同一台服务器上的两个数据库上创建key。而且这种架构在大型系统中很常见。
  • 开发和维护不方便
    在创建数据库时,一般创建一些表和列是设置主键或唯一键,如果设置了外键时,后期无论开发还是维护,需要手工维护数据,都不太方便、降低了工作效率。

在这里插入图片描述

二、增加、查询、修改、删除(CRUD)

1. t_booktype表插入数据

INSERT INTO db_book.t_booktype VALUES(NULL,'Html','前端开发');/*给表的所有字段插入数据*/

在这里插入图片描述

查询t_booktype表所有数据

SELECT * FROM db_book.t_booktype;

在这里插入图片描述

2. t_book表插入数据

INSERT INTO db_book.t_book VALUES(NULL,'Html',10.00,1);/*给表的所有字段插入数据*/

在这里插入图片描述

查询t_book表所有数据

SELECT * FROM db_book.t_book;

在这里插入图片描述

注意: 因为在步骤一创建t_book表时,添加了外加,所以在给t_book插入数据时,bookTypeId字段的值 需要和 t _booktype 表id字段的值一样

其他插入数据SQL语句

INSERT INTO t_book(id,bookName,price,bookTypeId) VALUES(NULL,'Html2',10.09,6);/*给表的所有字段插入数据  注意 bookTypeId 值和t_booktype id值一样*/

INSERT INTO t_book(bookName,price,bookTypeId) VALUES('java',10.09,2);/*给表的指定字段插入数据  注意 bookTypeId 值和t_booktype id值一样*/

INSERT INTO t_book(id,bookName,price,bookTypeId) VALUES(NULL,'Html3',10.09,6),(NULL,'Html4',10.09,6),(NULL,'Html5',10.09,6);/*同时插入多条数据*/

3. 修改 t_book 表数据

UPDATE t_book SET bookName ='H5',price = 14.50 WHERE id = 7;/*更新一条数据*/

在这里插入图片描述

查询t_book表所有数据

SELECT * FROM db_book.t_book;

在这里插入图片描述
从上图可以看到id = 7的数据已经修改成功了

使用LIKE修改多条数据

UPDATE t_book SET bookName ='H4'WHERE bookName LIKE'Html';/*更新多条数据*/

4. 指定删除t_book数据

DELETE FROM t_book WHERE id = 8;/*删除一条数据*/

在这里插入图片描述

验证删除id = 8的操作执行成功
在这里插入图片描述

删除多条数据

DELETE FROM t_book WHERE bookName = 'H4';/*删除多条数据*/

三、查看表的结构

1. 查看表的基本结构:desc t_booktype;

在这里插入图片描述

2. 查看表的详细结构:show create table t_booktype;

在这里插入图片描述

修改表示例:将t_book重命名为t_book2

SQL语句:alter table t_book rename t_book2;

提醒下面目录标题是博客链接,直接点击即可查看

四、单表查询

五、合并查询语句

六、使用聚合函数查询

七、连接查询

八、子查询

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

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

相关文章

开源BLHELI-S 代码详细解读(五)

我们继续来看calc_next_comm_timing, 每次操作完换相之后,这里都会调用,同时会设置timer3去等advance timing. 总体思想是根据电机运行状态计算前4次换相时间,然后根据前4次换相时间计算15度和7.5度电角度时间,换相之后延时7.5度…

MYSQL C++链接接口编程

使用MYSQL 提供的C接口来访问数据库,官网比较零碎,又不想全部精读一下,百度CSDN都是乱七八糟的,大部分不可用 官网教程地址 https://dev.mysql.com/doc/connector-cpp/1.1/en/connector-cpp-examples-connecting.html 网上之所以乱七八糟,主要是MYSQL提供了3个接口两个包,使用…

输入一个字符串,将其中的数字字符移动到非数字字符之后

输入一个字符串&#xff0c;将其中的数字字符移动到非数字字符之后&#xff0c;并保持数字字符贺非数字字符输入时的顺序。 代码&#xff1a; #include <cstdio> #include <queue> using namespace std; int main() {char str[200];fgets(str, 200, stdin);//读入…

【详识JAVA语言】输入输出

输出到控制台 基本语法 System.out.println(msg); // 输出一个字符串, 带换行System.out.print(msg); // 输出一个字符串, 不带换行System.out.printf(format, msg); // 格式化输出 println 输出的内容自带 \n, print 不带 \n printf 的格式化输出方式和 C 语言的 printf 是基…

UE蓝图 编译过程详解

系列文章目录 UE蓝图 Get节点和源码 UE蓝图 Set节点和源码 UE蓝图 Cast节点和源码 UE蓝图 分支(Branch)节点和源码 UE蓝图 入口(FunctionEntry)节点和源码 UE蓝图 返回结果(FunctionResult)节点和源码 UE蓝图 函数调用(CallFunction)节点和源码 UE蓝图 序列(Sequence)节点和源…

BUUUCTF---LSB1

1.题目描述&#xff08;提示lsb&#xff09; 2.下载附件是一张图片 3.在010编辑器中查看没有发现什么信息&#xff0c;再看属性也没有什么有用的信息&#xff0c;根据题目提示lsb想到用Stegsolve这个工具 4.在该工具中打开图片 5.先将红绿蓝三种颜色的通道设置成0&#xff0c;…

如何使用Potplayer远程访问本地群晖NAS搭建的WebDAV中的本地资源

文章目录 本教程解决的问题是&#xff1a;按照本教程方法操作后&#xff0c;达到的效果是&#xff1a;1 使用环境要求&#xff1a;2 配置webdav3 测试局域网使用potplayer访问webdav3 内网穿透&#xff0c;映射至公网4 使用固定地址在potplayer访问webdav ​ 国内流媒体平台的内…

Spring八股 常见面试题

什么是Spring Bean 简单来说&#xff0c;Bean 代指的就是那些被 IoC 容器所管理的对象。我们需要告诉 IoC 容器帮助我们管理哪些对象&#xff0c;这个是通过配置元数据来定义的。配置元数据可以是 XML 文件、注解或者 Java 配置类。 将一个类声明为 Bean 的注解有哪些? Com…

什么是虚拟DOM,有什么作用?有了解过diff算法吗?

虚拟DOM&#xff08;Virtual DOM&#xff09;&#xff1a; 虚拟DOM是一个轻量级的JavaScript对象&#xff0c;它是真实DOM&#xff08;Document Object Model&#xff09;的抽象表示。开发者通过操作这个JavaScript对象来描述视图层的状态&#xff0c;当这个状态发生变化时&…

STL容器之vector类

文章目录 STL容器之vector类1、vector的介绍2、vector的使用2.1、vector的常见构造2.2、vector的iterator的使用2.3、vector空间增长问题2.4、vector的增删查改2.5、vector迭代器失效问题 3.vector的模拟实现 STL容器之vector类 1、vector的介绍 vector是表示可变大小数组的序…

常用网络协议的学习

TCP/IP TCP/IP的定义 TCP/IP&#xff08;Transmission Control Protocol/Internet Protocol&#xff0c;传输控制协议/互联网协议&#xff09;是互联网的基本协议&#xff0c;也是国际互联网络的基础。 TCP/IP 不是指一个协议&#xff0c;也不是 TCP 和 IP 这两个协议的合称…

天津廉租房如何申请取得廉租住房租房补贴资格

如何申请廉租住房租赁补贴资格&#xff1f; 低收入住房困难家庭应当向户籍所在地街道办事处&#xff08;乡镇人民政府&#xff09;提出申请。 申请时&#xff0c;您需要提供以下要求的原件和复印件&#xff1a; &#xff08;一&#xff09;您及家人的身份证件&#xff1b; &a…

海外代理IP干货:应该选择SOCKS55代理还是Http代理?

在使用IPFoxy全球代理时&#xff0c;选择 SOCKS55代理还是HTTP代理&#xff1f;IPFoxy代理可以SOCKS55、Http协议自主切换&#xff0c;但要怎么选择&#xff1f;为解决这个问题&#xff0c;得充分了解两种代理的工作原理和配置情况。 在这篇文章中&#xff0c;我们会简要介绍 …

每日一类:Qt GUI开发的基石《QWidget》

深入探索QWidget&#xff1a;Qt GUI开发的基石 在Qt框架中&#xff0c;QWidget类扮演着构建图形用户界面&#xff08;GUI&#xff09;的基础角色。它不仅提供了窗口的基本功能&#xff0c;还允许开发者通过继承和定制来创建各式各样的用户界面元素。本文将详细介绍QWidget的关…

低功耗运放D722,具有9MHz的高增益带宽积,转换速率为8.5V/μs

D722是低噪声、低电压、低功耗运放&#xff0c;应用广泛。D722具有9MHz的高增益带宽积&#xff0c;转换速率为8.5V/μs&#xff0c;静态电流为1.7mA&#xff08;5V电源电压&#xff09;。D722具有低电压、低噪声的特点&#xff0c;并提供轨到轨输出能力&#xff0c;D722的最大输…

vue实现自定义树形穿梭框功能

需求&#xff1a; 我们在开发过程中&#xff0c;会遇到需要将一个数据选择做成穿梭框&#xff0c;但是要求穿梭框左侧为树形结构、右侧为无层级结构的数据展示&#xff0c;ElementUI自身无法在穿梭框中添加树形结构&#xff0c;网上搜到了大佬封装的插件但是对于右侧的无树形结…

Go字符串实战操作大全!

目录 1. 引言文章结构概览 2. Go字符串基础字符串的定义与特性什么是字符串&#xff1f;Go字符串的不可变性原则 字符串的数据结构Go字符串的内部表达byte和rune的简介 3. 字符串操作与应用3.1 操作与应用字符串连接字符串切片字符串查找字符串比较字符串的替换字符串的大小写转…

androidapp开发工具,Android MVP模式详解

**工欲善其事必先利其器&#xff0c;要想拿到满意的offer&#xff0c;必须有一定的准备。**以下列出来的东西是笔者认为应该准备的东西 简历中提到的&#xff0c;一定要有准备&#xff0c;别给自己挖坑Java准备&#xff0c;Java基础&#xff0c;有的公司会扣的很细&#xff0c…

自动驾驶技术详解

&#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;自动驾驶技术 &#x1f380;CSDN主页 发狂的小花 &#x1f304;人生秘诀&#xff1a;学习的本质就是极致重复! 目录 一 自动驾驶视觉感知算法 1目标检测 1.1 两阶…

挑战30天学完Python:Day28 数据库Mysql

&#x1f389; 本系列为Python基础学习&#xff0c;原稿来源于 30-Days-Of-Python 英文项目&#xff0c;大奇主要是对其本地化翻译、逐条验证和补充&#xff0c;想通过30天完成正儿八经的系统化实践。此系列适合零基础同学&#xff0c;或仅了解Python一点知识&#xff0c;但又没…