Mysql数据库基础和增删改查操作

一、数据库基本概念

数据:描述事物的符号记录,包括数字,文字、图形、图像、声音、档案记录等,以“记录”形式按统一的格式进行存储。

:将不同的记录组织在一起用来存储具体数据。

数据库:表的集合,是存储数据的仓库,以一定的组织方式存储的相互有关的数据集合,是按照数据结构来组织、存储和管理数据的仓库。

数据库管理系统(DBMS):是实现对数据库资源有效组织、管理和存取的系统软件。数据库的建立和维护功能、数据定义功能、数据操纵功能、数据库的运行管理功能、通信功能。

数据库系统:是一个人机系统,由硬件、OS、数据库、DBMS、应用软件和数据库用户组成,用户可以通过DBMS或应用程序操作数据库。

二、数据库类型和常用数据库

1.关系型数据库

 

 2.非关系型数据库

 三、数据库的数据类型

整型

 

 浮点型

字符串

常用数据类型

  • int :整型
  • float :单精度浮点 4字节32位
  • double :双精度浮点 8字节64位
  • char :固定长度的字符类型
  • varchar :可变长度的字符类型
  • text :文本
  • image :图片
  • decimal(5,2) :5个有效长度数字,小数点后面有2位

四、SQL语句

1.简介

SQL语句用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理等功能。

2.分类

DDL:数据定义语言,用于创建数据库对象,如库、表、索引等。

DML:数据操纵语言,用于对表中的数据进行管理。

DQL:数据查询语言,用于从数据表中查找符合条件的数据记录。

DCL:数据控制语言,用于设置或者更改数据库用户或角色权限
 

五、SQL语句的使用

1.数据库操作

(1)创建数据库

CREATE DATABASE `数据库名`;

 (2)查看数据库

SHOW DATABASES;

 (3)使用(进入)数据库

USE `数据库名`;

 (4)删除数据库

DROP DATABASE `数据库名`;

 2.数据库表操作

(1)查看数据库中的表

SHOW TABLES;         进入数据库中,查看所有的表

 (2)创建数据库表

CREATE TABLE `表名` (字段1 数据类型,字段2 数据类型,...);

 

 (3)查看数据库表的结构

 DESC `表名`;

 (4)删除数据库表

DROP TABLE `表名`;

 (5)修改数据库表结构

ALTER TABLE `旧表名` RENAME `新表名`;        修改表名

 ALTER TBALE `表名` ADD 字段名 数据类型;        添加字段

 ALTER TABLE `表名` CHANGE 旧字段名 新字段名 数据类型;        修改字段名

 ALTER TABLE `表名` DROP 字段名;        删除字段

 3.表中的数据操作

(1)添加记录

INSERT INTO `表名` (字段1,字段2,...) VALUES (数字,'字符串');

如果没有非空限制,未指定字段的部分默认为NULL。

全字段填入数据可以不指定字段,即INSERT INTO 表名 VALUES (数字,'字符串');

 (2)查询表中记录

SELECT * FROM `表名`;        查看表中所有记录

 SELECT * FROM `表名` limit 数字;        查看表中指定条目数记录

 SELECT * FROM `表名` limit 数字1,数字2;        查看表中指定数字1条之后的数字2条记录

 SELECT 字段x,字段y,... FROM `表名`;        查询指定字段记录

SELECT 字段x,字段y,... FROM `表名`\G     将查询到的记录纵向显示(适用于字段较多)

 SELECT * FROM `表名` WHERE 条件1 [AND 条件2] [OR 条件3];        根据条件查询记录

 

 

 (3)删除记录

DELETE FROM `表名`;        删除表中所有记录

 

DELETE FROM `表名` WHERE 条件1 [AND 条件2] [OR 条件3];        删除表中指定条件记录

                                                                                                              (一般以主键为条件)

 (4)修改记录

UPDATE `表名` SET 字段=值 WHERE 条件1 [AND 条件2] [OR 条件3];     修改指定条件记录

六、数据库表进阶操作 

1.if 判断创建表

创建表前判断表是否存在,不存在则创建,存在则不创建。

CREATE TABLE IF NOT EXISTS `表名` (字段1 数据类型,字段2 数据类型,...);

 2.克隆表

CREATE TABLE `新表` LIKE `旧表`;        通过like方法复制旧表的表结构
INSERT INTO `新表` SELECT * FROM `旧表`;        向新表插入旧表查询的数据

 3.查看表结构和详细信息

SHOW CREATE TABLE `表名`;        以SQL命令格式展示表结构,还能显示表的其它信息

4.重建表(格式化)

TRUNCATE TABLE `表名`;

与清空表数据的区别
        delete from 表名;   是一行一行的删除数据记录,删除效率较慢,执行完后会返回删除的记录条目数,且删完后再插入数据记录,自增字段仍然会以原来的最大记录自增。

        而truncate table 表名;    是直接重建表,清空速度比delete更快,执行完后不会返回记录条目数,且清空表后再插入数据,自增字段会重新从1开始递增。

5.创建临时表 

CREATE TEMPORARY `表名` (字段1 数据类型,字段2 数据类型,...);

临时表只能在当前连接中有效,能正常被增删改查,但是show tables是看不到的,并且换一个或者退出当前连接后临时表都会失效.

6.外键连接 

外键的定义

        如果同一个属性字段x在表一中是主键,而在表二中不是主键,则字段x称为表二的外键。

主键表和外键表的理解

(1)以公共关键字作主键的表为主键表(父表、主表)

(2)以公共关键字作外键的表为外键表(从表、外表)

注意:与外键关联的主表的字段必须设置为主键。要求从表不能是临时表;主从表的字段具备相同的数据类型、字符长度和约束。 

举例:创建两张表,主键表为供货商的编号和名字,外键表为货物表,将供货商编号作为外键。

先创建主键表(供货商表)

 为主表添加一个主键约束(主键名建议以"PK_"开头)

 再创建外键表(货物表) 

 为从表添加外键,并将主表的pid字段和从表的providers_id字段建立外键关联(外键名建议以"FK_"开头

插入数据时,先主再外

删除数据时,先外再主

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

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

相关文章

10.2 整流电路

在分析整流电路时,为了突出重点,简化分析过程,一般均假定负载为纯电阻性;整流二极管为理想二极管,即导通时正向压降为零,截止时反向电流为零;变压器无损耗,内部压降为零等。 一、整…

java封装国密SM4为 jar包,PHP调用

java封装国密SM4为 jar包,PHP调用 创建java工程引入SM4 jar包封装CMD可调用jar包PHP 传参调用刚用java弄了个class给php调用,本以为项目上用到java封装功能的事情就结束了,没想到又来了java的加密需求,这玩意上头,毕竟不是强项,没办法,只好再次封装。 但是这次的有点不…

thinkPhp5返回某些指定字段

//去除掉密码$db new UserModel();$result $db->field(password,true)->where("username{$params[username]} AND password{$params[password]}")->find(); 或者指定要的字段的数组 $db new UserModel();$result $db->field([username,create_time…

总结986

时间记录: 7:10起床 8:00~下午2:00课程设计,偷学了3小时 2:17~3:55午觉 4:10~5:30计网 5:35~6:41数据结构 7:00~7:22继续数据结构课后习题重做 7:23~8:07考研政治,做题20道纠错 8:15~8:39每日长难句 8:39~10:21 14年tex2纠错标记 1…

【算法训练-数组 四】【合并】:合并两个有序数组

废话不多说,喊一句号子鼓励自己:程序员永不失业,程序员走向架构!本篇Blog的主题是【数组合并】,使用【数组】这个基本的数据结构来实现,这个高频题的站点是:CodeTop,筛选条件为&…

LeetCode(力扣)122. 买卖股票的最佳时机 II

LeetCode122. 买卖股票的最佳时机 II 题目链接代码 题目链接 https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii/ 代码 class Solution:def maxProfit(self, prices: List[int]) -> int:result 0for i in range(1, len(prices)):result max((prices[i…

沙丁鱼优化算法(Sardine optimization algorithm,SOA)求解23个函数MATLAB

一、沙丁鱼优化算法 沙丁鱼优化算法(Sardine optimization algorithm,SOA)由Zhang HongGuang等人于2023年提出,该算法模拟沙丁鱼的生存策略,具有搜索能力强,求解精度高等特点。 沙丁鱼主要以浮游生物为食,这些生物包括细菌、腔肠…

【实操干货】如何开始用Qt Widgets编程?(五)

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。 在本文中&#xff0…

查看Android App包名,查看keystore的信息,导出公钥

查看Android App包名的三种方法 cmd中输入命令:adb shell am monitor 然后启动需要获取包名的应用cmd中输入命令:adb shell pm list packages -3 查看自己安装的app包名安卓系统中:设置——应用——正在运行 查看…

04_瑞萨GUI(LVGL)移植实战教程之驱动LCD屏(SPI)

本系列教程配套出有视频教程,观看地址:https://www.bilibili.com/video/BV1gV4y1e7Sg 4. 驱动LCD屏(SPI) 本次实验我们在上一次实验的基础上驱动 LCD屏(SPI)。 上次实验我们已经能驱动触摸屏(I2C)并打印触摸点坐标,这次实验我们的目标是点…

Pytorch intermediate(三) BiLSTM

Bi-directional Long Short-Term Memory,双向LSTM网络。 有些时候预测可能需要由前面若干输入和后面若干输入共同决定,这样会更加准确。因此提出了双向循环神经网络,网络结构如上图。 构建LSTM模型时,在参数中添加bidirectionalTr…

产品经理需要熟悉的网站

产品经理需要熟悉的网站 一、SAAS平台的聚合二、saas产品教程三、原型参考教程四、在线文档协作五、云笔记六、脑图&流程图 一、SAAS平台的聚合 作用:面试和工作的需要,方便各行业产品查找竞品。 网址:https://www.zhaosaas.com/&#x…

列表对象复制属性到另一个列表对象 从List<Object>另一个List<Object>

目录 事件起因环境和工具解决办法结束语 事件起因 在写一个市级的项目时,遇到了一个问题,这个项目涉及的数据内容非常大,光是数据库文件的大小就已经达到了12G,数据的规模大致是在百万级的,光是我这次参与处理的数据就…

21.5 CSS 网页布局方式

网页布局方式 网页布局方式: 是指浏览器对网页中的元素进行排版的方法.常见的网页布局方式包括: * 1. 标准流(文档流/普通流)布局: 这是浏览器默认的排版方式.元素按照其在文档中的位置依次排列, 可以使用CSS的盒模型属性进行水平和垂直布局.* 2. 浮动布局: 通过设置元素的fl…

VSCode搭建Django开发环境

文章目录 一、Django二、搭建步骤1. 安装python和VSCode,安装插件2. VSCode打开项目文件夹3. 终端中键入命令:建立虚拟环境4. 选择Python的解释器路径为虚拟环境5. 在虚拟环境中安装Django6.创建Django项目7. 创建app应用8. 运行应用9. 修改配置中文显示…

Sharding-Jdbc(2):Sharding-Jdbc入门案例

1 前置条件 搭建读写分离的数据库环境,搭建方法如下文,目标数据库test Mysql性能优化(5):主从同步原理与实现_mysql主从配置优化_不死鸟.亚历山大.狼崽子的博客-CSDN博客 2 新建maven项目 3 pom引入依赖 <?xml version="1.0" encoding="UTF-8"…

微服务高可用容灾架构设计

导语 相对于过去单体或 SOA 架构&#xff0c;建设微服务架构所依赖的组件发生了改变&#xff0c;因此分析与设计高可用容灾架构方案的思路也随之改变&#xff0c;本文对微服务架构落地过程中的几种常见容灾高可用方案展开分析。 作者介绍 刘冠军 腾讯云中间件中心架构组负责…

一起学数据结构(6)——栈和队列

上篇文章中&#xff0c;对栈的概念及特点进行了解释&#xff0c;并且给出了栈实现的具体代码。本篇文章将给出队列的基本概念及特点。并给出相应的代码。 1. 队列的概念及结构&#xff1a; 在给出队列的概念之前&#xff0c;先给出上篇文章中提到的栈的概念&#xff1a;一种只…

一文读懂java变量类型

前言 在学习和使用Java编程语言时&#xff0c;理解变量类型是至关重要的基础知识。Java是一种静态类型语言&#xff0c;强调变量必须先声明其类型&#xff0c;才能进行后续操作。因此&#xff0c;对于初学者来说&#xff0c;了解Java中不同的变量类型及其特性是迈向编程成功的…

创建vue3项目并引用elementui

1.创建vu3项目&#xff1a; vue3官网&#xff1a;简介 | Vue.js 执行命令 npm create vuelatest 2.终端会出现如下选项&#xff0c;不确定的直接enter键进入下一步&#xff1b; 3.然后再执行下方命令&#xff1a; cd <your-project-name> npm install4.安装依赖成功…