当前位置: 首页 > news >正文

mysql笔记3(数据库、表和数据的基础操作)

文章目录

  • 一、数据库的基础操作
    • 1. 显示所有的仓库(数据库)
    • 2. 创建数据库
      • 注意(命名规范):
    • 3. 删除数据库
    • 4. 查看创建数据库的SQL
    • 5. 创建数据库时跟随字符编码
    • 6. 修改数据库的字符编码
  • 二、表的基础操作
    • 1. 引入表的思维
    • 2. 引用数据库
      • 3. 查看该数据库下面的表
      • 4. 创建表
        • ① 初级
          • 上述name varchar(30)中30是字符宽度或者说最大字符串长度的限制。实际输入的数据是可以超过这个宽度的,那么超过这个宽度会有什么后果?
        • ② 高级(企业在用)
      • 5. 查看表结构
        • ① show create table 表名;(优点:会显示创建这张表时的sql语句)
        • ② desc 表名;(优点:直观、好看)
      • 6. 删除表
      • 7. 修改表
        • ① 添加字段
        • ② 删除字段
        • ③ 更改字段
        • ④ 修改表名
  • 三、数据的基础操作
    • 1. 插入数据(实际开发过程中不是这样的,但是我们要会这种写法)
    • 2. 查看表内数据(基本)
    • 3. 更新表内数据
    • 4. 删除表内数据
    • 5. 清空表
      • ① delete from 表名(不推荐:因为它在删除时会遍历整张表,效率非常低)
      • ② truncate table 表名(直接销毁这张表,销毁完再创建一张一模一样的表,只是表内的数据已经不在了)
  • 四、SQL语句区分
  • 五、字符集编码问题
  • 六、内容出处

一、数据库的基础操作

CRUD:create、drop、alter、show

1. 显示所有的仓库(数据库)

show databases;
在这里插入图片描述
information-schema:存储服务器管理数据库的信息
mysql:提供一些系统的信息,例如:root用户名及密码
performance_schema:存储服务器性能信息
sys:系统文件
test(有的版本没有):测试库
注:
其它的库是我自己建的

2. 创建数据库

一、普通创建:
① create database + 数据库名;
二、如果该数据库已存在就不创建,反之创建(就算该数据库已经存在也能通过,只是会弹出警告):
② create database if not exists + 数据库名;
③ create database if not exists + 数据库名(数据库名写在反引号里);
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注意(命名规范):

        不能用关键字(如create、database等)作为数据库名、表名、表中的字段名。如果非要用,就得给它们加上反引号。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
        后续创建和删除普通的数据库(不以关键字作为数据库名)时给数据库名加上反引号可以使代码看起来更高级。

3. 删除数据库

一、普通删除:
① drop database + 数据库名;
二、如果该数据库已存在就不创建,反之创建(就算该数据库已经存在也能通过,只是会弹出警告):
② drop database if exists + 数据库名;
③ drop database if exists + 数据库名(数据库名写在反引号里);
注:
删除一个不存在的数据库会报1008错误。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. 查看创建数据库的SQL

看一下当时是怎么创建的这些数据库的:
show create database + 数据库名;
在这里插入图片描述

5. 创建数据库时跟随字符编码

① create database if not exists student charset=gbk;
② create database if not exists teacher charset=utf8;
在这里插入图片描述
注:
① 常用的字符编码:GBK(中文简体)、utf8(国际通用)
② 乱码和字符编码有关
③ cmd的字符编码时gbk,因此可以显示中文
④ 在windows上学习时字符编码可以选择gbk(因为cmd就是gbk),但是在linux、mac上学习时要选择utf8。实际开发过程中也要选择utf8,因为上传到服务器以后大多数人用的都是utf8。

6. 修改数据库的字符编码

alter database + 数据库名 + charset=改成哪种字符编码
在这里插入图片描述

二、表的基础操作

CRUD:create(创建表)和alter+add(增加表内字段)、drop(删除表)和alter+drop(删除表内字段)、alter、show和desc

1. 引入表的思维

仓库 -> 数据库
货架 -> 表
物品放在货架上 -> 数据放在表里

2. 引用数据库

可以理解为指定某仓库发货:
use + 数据库名
在这里插入图片描述

3. 查看该数据库下面的表

可以理解为查看某仓库的所有货架:
show tables;
在这里插入图片描述

4. 创建表

① 初级

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

上述name varchar(30)中30是字符宽度或者说最大字符串长度的限制。实际输入的数据是可以超过这个宽度的,那么超过这个宽度会有什么后果?

等后面再来看这个问题。

② 高级(企业在用)

在这里插入图片描述
在这里插入图片描述
auto_increment:自动增长
primary key:主键(主键不可以为空) 写上了这个意味着该字段的数据是唯一的(每个学生的学号不可能重复,靠它来区分学生)关系型数据库的实现也依靠主键
comment:注释(后面的引号是普通的单引号,不是反引号,用反引号会报1064错误)
not null:意思是该字段不能为空
default:默认值
engine=innodb:数据库引擎是innodb。现在mysql里用的最多的数据库引擎就是innodb

5. 查看表结构

① show create table 表名;(优点:会显示创建这张表时的sql语句)

在这里插入图片描述

② desc 表名;(优点:直观、好看)

在这里插入图片描述
PRI:primary key缩写
extra:额外的规则(限制)

6. 删除表

① drop table 表名;
② drop table if exists 表名;
③ drop table if exists 表名(表名用反引号引起来);
④ 同时删除多张表:drop table if exists 表名, 表名, 表名;
在这里插入图片描述
注:
① 删除不存在的表会报1051错误
不可以同时删掉多个数据库
在这里插入图片描述

7. 修改表

① 添加字段

① 普通添加:alter table 表名 add 字段名 字段类型;
在这里插入图片描述
② 在指定位置添加:
alter table 表名 add 字段名 字段类型 after 字段名(想放在哪个字段后面)
在这里插入图片描述
没有before这个语法
在这里插入图片描述
③ 直接在开头添加:
alter tabel 表名 add 字段名 字段类型 first;
在这里插入图片描述

② 删除字段

alter table 表名 drop 字段名;
在这里插入图片描述

③ 更改字段

alter table 表名 change 要改的字段名 改成什么
在这里插入图片描述
在这里插入图片描述
只修改字段的类型:
alter table 表名 modify 要改的字段名 改成什么类型
在这里插入图片描述

④ 修改表名

alter table 表名 rename to 改成什么名;
在这里插入图片描述

三、数据的基础操作

CRUD:insert、delete、update、select

1. 插入数据(实际开发过程中不是这样的,但是我们要会这种写法)

① insert into 表名 (字段, 字段) values ( 对应的数据, 对应的数据)
表名后面的字段不省略时:字段顺序可以不与建表时的字段顺序一致,只需要让此处的字段顺序与values后面的数据顺序一致即可
② insert into 表名 values (对应的数据, 对应的数据)
表名后面的字段省略时:values后面的数据顺序必须与建表时的字段顺序一致
③ 一次插入多条数据(直接在values后面补充数据即可,数据之间以逗号隔开):
insert into 表名 (字段, 字段) values ( 对应的数据, 对应的数据), ( 对应的数据, 对应的数据);
insert into 表名 values (对应的数据, 对应的数据), ( 对应的数据, 对应的数据);
在这里插入图片描述
在这里插入图片描述
上面的引号都是普通的单引号

2. 查看表内数据(基本)

其实CRUD中查询是最难的

① select 要查的字段 from 查哪张表里
② 查看某张表里的全部字段(效率不高,性能方面存在缺陷):select * from 表名;
在这里插入图片描述

3. 更新表内数据

① 重点在于根据谁去改,改什么。
② 可以一次改多个字段
③ 一定要注意, where后面的条件, SQL注入攻击就跟它有关

① update 表名 set 字段名=改成什么 where 要改谁
② update 表名 set 字段名=改成什么, 字段名=改成什么 where 要改谁 or 要改谁
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. 删除表内数据

一定要特别注意where后面的条件

delete from 表名 where 要改谁
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5. 清空表

① delete from 表名(不推荐:因为它在删除时会遍历整张表,效率非常低)

        我们可以发现,除非我们特意指定id,否则新插入的数据id会承接该表销毁之前的id序号。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

② truncate table 表名(直接销毁这张表,销毁完再创建一张一模一样的表,只是表内的数据已经不在了)

        我们可以发现用此种方式清空表后,重新插入数据的id是从1开始的
在这里插入图片描述
在这里插入图片描述

四、SQL语句区分

        数据库无非就是增删改查。我们可以发现数据库、表和数据这三个东西的增删改查都不一样。

① DDL(全称:data definition language, 数据库定义语言):就是给数据库用的语言 – 对数据库而言
CRUD:create、drop、alter、show
② DML(全称:data manipulation language, 数据操纵语言):–对数据而言
CRUD:insert delete update select
③ DCL(全称:data control language, 数据库控制语言):控制不同用户对数据库中表的开发权限

五、字符集编码问题

查看字符集编码:show variables like ‘character_set_%’;
在这里插入图片描述
① 由于character_set_client(终端) character_set_results(返回值) 都是gbk,因此上述数据可以用中文输入。
② 如果其它平台想用中文输入,把character_set_client和character_set_results改成gbk即可。
命令:set character_set_client=gbk;
实际开发过程中一定是utf8,符合国际标准。这也是为什么windows相对而言没那么适合做开发,不过微软这些年一直在方便开发者的工作而努力。

六、内容出处

mysql

相关文章:

mysql笔记3(数据库、表和数据的基础操作)

文章目录 一、数据库的基础操作1. 显示所有的仓库(数据库)2. 创建数据库注意(命名规范): 3. 删除数据库4. 查看创建数据库的SQL5. 创建数据库时跟随字符编码6. 修改数据库的字符编码 二、表的基础操作1. 引入表的思维2. 引用数据库3. 查看该数据库下面的表4. 创建表…...

计算机毕业设计选题-基于python的企业人事管理系统【源码+文档+数据库】

💖🔥作者主页:毕设木哥 精彩专栏推荐订阅:在 下方专栏👇🏻👇🏻👇🏻👇🏻 实战项目 文章目录 实战项目 一、基于python的企业人事管理系…...

科研绘图系列:R语言折线图(linechart plots)

文章目录 介绍加载R包导入数据数据预处理画图组合图形介绍 在R语言中,折线图(Line Plot)是一种常用的数据可视化类型,用于展示数据随时间或有序类别变化的趋势。折线图通过连接数据点来形成一条或多条线,这些线条可以清晰地表示数据的变化方向、速度和模式。 加载R包 k…...

Opencv中的直方图(5)计算EMD距离的函数EMD()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 计算两个加权点配置之间的“最小工作量”距离。 该函数计算地球搬运工距离(Earth Mover’s Distance)和/或两个加权点配…...

KDD 2024 时空数据(Spatio-temporal) ADS论文总结

2024 KDD( ACM SIGKDD Conference on Knowledge Discovery and Data Mining, 知识发现和数据挖掘会议)在2024年8月25日-29日在西班牙巴塞罗那举行。 本文总结了KDD2024有关时空数据(Spatial-temporal) 的相关论文,如有疏漏,欢迎大…...

uniapp+vue3实现小程序和h5解压线上压缩包以及如何访问解压后的视频地址

安装jszip插件 npm install jszip 对应功能实现和逻辑处理&#xff1a; <script setup>import { onMounted, reactive, ref } from vueimport { onHide, onUnload } from dcloudio/uni-appimport JSZip from jsziplet videoSrc ref() // 视频地址// 创建JSZip实例con…...

探索 Zed 编辑器:速度与协作的巅峰之作

Zed 是一款备受瞩目的代码编辑器,专为现代开发者打造。本文将深入介绍 Zed 的独特优势,以及如何快速上手使用这款编辑器,助你在编程工作中大幅提升效率。 一:Zed 编辑器的优势 Zed 是近年来崭露头角的一款代码编辑器,迅速赢得了众多开发者的青睐。以下是 Zed 的几大核心优…...

文心快码前端工程师观点分享:人机协同新模式的探索之路(三)

本系列视频来自百度工程效能部的前端研发经理杨经纬&#xff0c;她在由开源中国主办的“AI编程革新研发效能”OSC源创会杭州站105期线下沙龙活动上&#xff0c;从一款文心快码&#xff08;Baidu Comate&#xff09;前端工程师的角度&#xff0c;分享了关于智能研发工具本身的研…...

Qt基础类03-直线类QLine

Qt基础类03-直线类QLine 摘要基本信息成员函数程序全貌QLine::QLine()QLine::QLine(const QPoint &p1, const QPoint &p2)QLine::QLine(int x1, int y1, int x2, int y2)QPoint QLine::p1() constQPoint QLine::p2() constint QLine::x1() constint QLine::x2() consti…...

集成电路学习:什么是ARM先进精简指令集计算机

ARM&#xff1a;先进精简指令集计算机 ARM先进精简指令集计算机&#xff08;Advanced RISC Machine&#xff0c;简称ARM&#xff09;是一种基于精简指令集计算机&#xff08;RISC&#xff09;原则的计算机处理器架构&#xff0c;由英国的ARM公司开发。这种架构以其低功耗和高性…...

设计模式-行为型模式-迭代器模式

1.迭代器模式的定义 迭代器模式提供一种对容器对象中的各个元素进行访问的方法&#xff0c;而不需要暴露该对象的内部细节&#xff1b; 在软件系统中&#xff0c;容器对象有两个职责&#xff1a;一是存储数据&#xff0c;二是遍历数据&#xff1b;从依赖性上看&#xff0c;前者…...

FRP代理(QUIC通信)实验

访问关系与TCP实验相同&#xff0c;配置不一样 服务端配置 客户端配置 通信数据...

项目依赖拉不下来卡着不动怎么办,node又不支持cnpm

如果你的项目依赖在拉取时卡住&#xff0c;可以尝试以下步骤来解决问题&#xff1a; 检查网络&#xff1a;确保你的网络连接稳定。如果可能&#xff0c;尝试使用 VPN 或更换网络。 使用镜像源&#xff1a; 对于 yarn&#xff0c;可以使用淘宝镜像&#xff1a; yarn confi…...

ansible--role

简介 roles是ansible&#xff0c;playbooks的目录的组织结构&#xff0c;将代码或文件进行模块化&#xff0c;成为roles的文件目录组织结构。 易读&#xff0c;代码可冲哟美好&#xff0c;层次清晰 目录机构 mkdir roles/nginx/{files,handlers,tasks,templates,vars} -ptou…...

SpinalHDL之数据类型(一)

本文作为SpinalHDL学习笔记第五十四篇,介绍SpinalHDL的Bool数据类型。 SpinalHDL技术交流QQ群: Note: 1.本群是个人技术交流群,不是什么官方答疑群; 2.提问是你的权利,但回答不是别人的义务; 3.可以潜水,不能灌水; 4.请文明交流,做这行的都算高层次人才,希望你…...

Ansys Zemax | 什么是Sobol取样?

附件下载 联系工作人员获取附件 本文主要介绍了&#xff1a; 什么是Sobol取样&#xff1f; 和随机光线产生方法相比&#xff0c;Sobol取样有什么优点&#xff1f; Sobol取样有什么限制&#xff1f; 随机取样和Sobol取样模式 一个光源会在位置空间以及角度空间随机产生光…...

Unity 热更 之 【YooAsset 热更】Unity 可以进行热更的资源管理系统,并 【Android 端简单实现·案例热更】

Unity 热更 之 【YooAsset 热更】Unity 可以进行热更的资源管理系统&#xff0c;并 【Android 端简单实现案例热更】 目录 Unity 热更 之 【YooAsset 热更】Unity 可以进行热更的资源管理系统&#xff0c;并 【Android 端简单实现案例热更】 一、简单介绍 二、YooAsset 引…...

vue3写一个无限树形菜单,递归组件

原本使用element plus的el-tree&#xff0c;可是他的UI不匹配&#xff0c;狠难改成自己想要的&#xff0c;所以只能自己去写一个&#xff0c;做法&#xff1a;使用递归组件 效果 组件代码itemDir.vue // itemDir.vue<template><div><ul v-for"node in li…...

3D建模主要使用哪些软件?有什么特点?

3D建模主要使用的软件多种多样&#xff0c;每种软件都有其独特的优势和适用领域。以下是一些主流的3D建模软件&#xff1a; 1. Autodesk 3ds Max 概述&#xff1a;3ds Max是一款功能丰富的建模和动画软件&#xff0c;广泛用于电影、游戏和虚拟现实等领域。 特点&#xff1a;…...

Android Studio 加载多个FLutter项目

按顺序操作即可 选择工程 选择Modules, 导入 module 选中创建module 选择要导入的目录&#xff0c;只选择主目录&#xff0c;下面的文件不要选 添加完成&#xff0c;点击ok后&#xff0c;会进行导入 最终导入成功...

极致精简,功能强大的PDF编辑工具

这是一款功能全面的PDF编辑工具 你只需要导入一份PDF格式文件 就可以快速的对它进行插入 批注编辑保护转换等各种操作 而且无需登录 也可以直接使用 在插入选项中可以进行插入文字图片 页面页眉页脚页码文档背景水印视频音频等 在批注选项中可以管理批注隐藏批注 高亮显示 文本…...

Python基础语法:生成器 generator(yield)

一、简介根据指定的规则循环生成数据&#xff0c;当条件不成立时则生成数据结束。数据不是一次性全部生成出来&#xff0c;而是使用一个&#xff0c;再生成一个&#xff0c;好处是可以节约大量的内存。就像设计模式中的懒汉式。适合处理大数据或流数。生成器是一种特殊的迭代器…...

终极鼠标连点器使用指南:3分钟掌握高效自动化技巧

终极鼠标连点器使用指南&#xff1a;3分钟掌握高效自动化技巧 【免费下载链接】MouseClick &#x1f5b1;️ MouseClick &#x1f5b1;️ 是一款功能强大的鼠标连点器和管理工具&#xff0c;采用 QT Widget 开发 &#xff0c;具备跨平台兼容性 。软件界面美观 &#xff0c;操作…...

PCB虚焊/走线断裂/焊盘脱落工程师易漏判

PCB 故障中&#xff0c;30% 并非元件损坏&#xff0c;而是 PCB 本身的隐性故障—— 虚焊、走线断裂、焊盘脱落、过孔开路。这类故障外观隐蔽、时好时坏、排查难度大&#xff0c;很多工程师反复更换元件仍无法解决&#xff0c;最终误判为 “板报废”。​一、PCB 隐性故障核心成因…...

在多轮对话应用中观察Taotoken计费对成本的影响

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在多轮对话应用中观察Taotoken计费对成本的影响 效果展示类&#xff0c;结合一个需要维护长上下文的多轮对话应用案例&#xff0c;…...

别再死记公式了!用Python手写一个卷积层,彻底搞懂CNN里的‘卷’是怎么算的

用Python手写卷积层&#xff1a;从零理解CNN的"卷"运算 当你第一次看到卷积神经网络(CNN)的数学公式时&#xff0c;那些复杂的符号和下标是否让你望而却步&#xff1f;作为计算机视觉领域的基石&#xff0c;CNN的核心在于理解卷积运算的本质。本文将带你用NumPy从零实…...

终极指南:用D2DX让《暗黑破坏神2》在现代电脑上焕发新生

终极指南&#xff1a;用D2DX让《暗黑破坏神2》在现代电脑上焕发新生 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 还在为经…...

基于STM32与LoRa的低功耗物联网气象站DIY全攻略

1. 项目概述&#xff1a;打造一个低功耗的家庭气象站前阵子想给家里的智能家居系统加点“环境感知”能力&#xff0c;琢磨着搞个能实时监测室外温湿度、风速风向的小玩意儿。市面上成品气象站要么数据出不来&#xff0c;要么功耗感人&#xff0c;不适合长期户外部署。于是&…...

Lovable内部工具开发方法论(从需求黑洞到用户自发推广的完整闭环)

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;Lovable内部工具开发方法论&#xff08;从需求黑洞到用户自发推广的完整闭环&#xff09; Lovable 方法论的核心不是交付功能&#xff0c;而是培育“工具依赖感”——当一线工程师在凌晨三点调试线上问题时&am…...

<数据集>yolo高粱叶片病害识别<目标检测>

数据集下载链接https://download.csdn.net/download/qq_53332949/92902223数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;3242张 标注数量(xml文件个数)&#xff1a;3242 标注数量(txt文件个数)&#xff1a;3242 标注类别数&#xff1a;1 使用标注工具&#xff…...