(二) 初入MySQL 【数据库管理】

news2024/12/24 1:00:11

一、SQL语言分类

DDL:数据定义语言,用于创建数据库对象,如库、表、索引等
DML:数据操纵语言,用于对表中的数据进行管理,用来插入、删除和修改数据库中的数据
DQL:数据查询语言,用于从数据表中查找符合条件的数据记录
DCL:数据控制语言,用于设置或者更改数据库用户或角色权限(数据控制语句,用于控制不通数据段直接的许可和访问级别的语句,这些语句定义了数据库、表、字段、用户的访问权限和安全级别,如COMMIT、ROLLBACK、GRANT、REVOKE)

1.1、DDL

数据定义语言,用来定义数据库对象(数据库,表,字段)

关键词create   drop ,truncate    alter,

➢创建

1、创建新的数据库

create  database  数据库名;

2、创建新的表

  • 主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。可以用在最后用   primary key(主键名)定义,也可以写在数据类型之后的 primary key。

create  table  表名 (字段1  数据类型,字段2   数据类型, primary key (主键名)  );

1.1.1、常用的数据类型

数据类型描述字节大小备注
int整型4用于定义整数类型的数据
float单精度浮点432位,准确表示到小数点后六位(近似值)
double双精度浮点864位,比float更高的精度
char固定长度的字符类型1用于定义字符类型数据,长度固定,最大长度取决于数据库实现(这里写的20字节可能是误解,char通常只占用一个字符的存储空间,但会占用固定长度的空间,如CHAR(20)会预留20个字符的空间)
varchar可变长度的字符类型可变根据实际存储的字符数分配空间,最大长度由定义决定(如VARCHAR(20)),但会额外占用1或2个字节来存储长度信息
text文本可变用于存储大量文本数据,长度远大于varchar
image图片可变用于存储二进制图像数据,但请注意,现代数据库系统通常推荐使用BLOB(Binary Large Object)类型来存储二进制数据
decimal(5,2)精确数值类型可变总共5个有效数字,其中2个在小数点后,用于需要精确计算的场景,如金融数据

注意:

主键是唯一的,但主键可以由多个字段构成

char如果存入数据的实际长度比指定长度要小,会补空格至指定长度,如果存入的数据的实际长度大于指定长度,低版本会被截取,高版本会报错。

➢删除

drop database 数据库名;

drop table  [数据库名.]表名

truncate table 表名;

详细请看二

➢修改表名和表结构

alter table  表  rename   新表;

➢扩展表结构(增加字段)

alter  table  表  add  新字段   varchar(20)   default   '地址不详';

➢修改字段(列)名,添加唯一键

alter  table  表名 change  旧列名   新列名  想要修改的数据类型   [unique key];

可以选

unique    key:唯一键(特性:唯一,但可以为空,空值只允许出现一次)
Primary  key:唯一且非空(主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键)

但是数据不能冲突,比如数据内有不唯一数据就不可以,unique key;

alter table  表名 modify column 字段名   想修改的类型。

数据库中表字段是varchar(30),修改类型可以用(谨慎修改类型,可能会导致原有数据出错)

➢删除字段

alter table 表名 drop  字段名;

 补充

create table if not exists info (
id int(4) zerofill primary key auto_increment,     #指定主键的第二种方式
name varchar(10) not null,
cardid int(18) not null unique key,
hobby varchar(50));

------------------------------------------------------------------------------------------------------------------------
#if not exists:表示检测要创建的表是否已存在,如果不存在就继续创建
#int(4) zerofill:表示若数值不满4位数,则前面用"0"填充,例0001
#auto_increment:表示此字段为自增长字段,即每条记录自动递增1,默认从1开始递增;
自增长字段数据不可以重复;自增长字段必须是主键;如添加的记录数据没有指定此字段的值且
添加失败也会自动递增一次
#unique key:表示此字段唯一键约束,此字段数据不可以重复:一张表中只能有一个主键,但是一张表中可以有多个唯一键
#not null:表示此字段不允许为NULL
--------------------------------------------------------------------------------------------------------------------------------

1.2、DML

管理表中的数据记录----数据操纵语言,用于对表中的数据进行管理,用来插入、删除和修改数据库中的数据
关键词 insert   update    delete

➢插入

insert  into  表名(字段1,字段2)  values(字段1的值,字段2的值,...);

或者

insert  into  表名   values(字段1的值,字段2的值,...);

示例:
INSERT INTO KY13  (id,name,score,passwd) values(1,'zhangsan',70.5,PASSWORD('123456'));
#PASSWORD('123456'):查询数据记录时,密码字串以加密形式显示:若不使用PASSWORD(),查询时以明文显示。

➢修改,更新

update   表名  set   字段名1=字段值1  where  条件表达式;

➢删除

delete from  表名   where  条件表达式;

1.3、DQL

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

关键词select 、show

show属于DQL属于查询

➢查询

查询所有数据库

show databases;

进入数据库

use xxxxx;

查询所有表

show tables;

显示数据表的结构(字段) 

describe 表;

或者简写 desc  表;

➢查询

select   字段名1,字段名2     from   表名    where 条件表达式;

示例:
SELECT * FROM zzz;
SELECT id,name,score FROM zzz WHERE id=2;
select name from zzz\G           #以列表方式竖向显示
select * from info limit 2;        #只显示头2行
select * from info limit 2,3;     #显示第2行后的前3行

查看当前库

select database();

1.4、DCL

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

二、数据表删除

数据很重要,删除请谨慎

清空表的两种方法,删除表内的所有数据
方法一:

delete from 表名;

#DELETE清空表后,返回的结果内有删除的记录条目; 
DELETE 工作时是一行一行的删除记录数据的;如果表中有自增长字段,使用DELETE FROM 删除
所有记录后,再次新添加的记录会从原来最大的记录ID后面继续自增写入记录

方法二:

truncate table 表名;

#TRUNCATE清空表后,没有返回被删除的条目: TRUNCATE 工作时是将表结构按原样重新建立,因此在速度上TRUNCATE会比DELETE清空表快;使用TRUNCATE TABLE 清空表内数据后,
ID会从1开始重新记录。

删除总结

操作类别可回滚性是否可带WHERE删除内容删除速度
drop table  table_nameDDL不可回滚(无法恢复)不可带WHERE表内容和结构删除
truncate table  table_nameDDL不可回滚不可带WHERE表内容删除
delete from table_nameDML可回滚(可恢复)可带WHERE表结构在,表内容要看WHERE执行的情况慢,需要逐行删除

速度       :drop> truncate > delete
安全性   :delete 最好

删除之前可以用select一下,查看内容(delete换成select)删除之前可以报备。

总结:

  • 不再需要一张表的时候,用drop
  • 想删除部分数据行时候,用delete,并且带上where子句
  • 保留表而删除所有数据的时候用truncate

三、创建临时表

临时表创建成功之后,使用 show tables;命令是看不到创建的临时表的,临时表会在连接退出后被销毁。如果在退出连接之前,也可以可执行增删改查等操作,比如使用drop table语句手动直接删除临时表。

PS:临时表无法创建外键

关键词:temporary
create temporary table  表名 (字段1 数据类型,字段2 数据类型, PRIMARY KEY (主键名));

3.1、sql操作过程

sql 写入——》数据表中—》先把数据保存在内存中—》写入到磁盘
insert into xxx——》xxx这张表,会先复制一份表数据到内存里面,给我们进行修改---》

敲完回车之后,确定提交了,才会写入数据表中—》再保存在磁盘里面

create table test01—》只会保存在内存中,在数据库退出连接之前的所有操作,都是在内存中进行的,不会保存在磁盘里面,退出连接后,临时表会释放掉


示例:
 

create temporary table xxx (
id int(4) zerofill primary key auto_increment,
name varchar(10) not null,
cardid int(18) not null unique key,
hobby varchar(50));

insert into xxx values (1,'zhangsan',123456,'running');
select * from xxx;(可以发现有数据)
show tables;(没有存在临时表)
quit  (退出)
select * from xxx; (数据不存在)

  • int(4) zerofill:表示若数值不满4位数,则前面用"0"填充,例0001
  • primary key 是一个字段(或字段的组合),用于唯一地标识表中的每一行。每个表只能有一个主键,且主键的值必须唯一,不能包含NULL值。主键的主要作用是帮助数据库快速定位到表中的某一行记录,同时也保证了数据的完整性。
  • auto_increment:表示此字段为自增长字段,即每条记录自动递增1,默认从1开始递增;
  • 自增长字段数据不可以重复;自增长字段必须是主键;如添加的记录数据没有指定此字段的值且添加失败也会自动递增一次
  • unique key:表示此字段唯一键约束,此字段数据不可以重复(就像确保身份证号是一样)一张表中只能有一个主键,但是一张表中可以有多个唯一键
  • not null:表示此字段不允许为NULL

四、克隆表

方法一

复制格式,通过LIKE方法,复制A表结构生成B表

#只有表结构

create table B like A;    

#然后备份内容

insert into B select * from A;      

方法二

克隆表,将数据表的数据记录生成到新的表中

#复制test 表数据到test02中

craeate table   test02 (select * from test);  

#获取数据表的表结构、索引等信息  \G是显示横向的,创建过程

show create table test02\G;   
 

五、整体流程

primary key       主键 ,也可以写在外边

not null              不为空

decimal              精确数值类型

describe             描述表;

temporary          临时的

truncate              截断

auto_increment  自增量(必须为主键)

drop                    减少

unique  key         唯一键

if not exists

1、查看所有的数据库

2、创建一个数据库AAA (进入,查看在不在)

3、创建一个表BBB

内容为

id     数字20  不为空,主键,自增

name  字符串

sex     字符串 默认值为 空

passwd  字符串(50)

cardid    数字  唯一键

4、查看表属性,字段

5、插入数据

1  xiaoming   男   密码加密123   身份证 666666

2  lisi   女        密码加密321   身份证 666667

1  wangwu   男   密码加密666   身份证 666668

6、查看表内容(只看男生)

7、删除第一条数据

8、改变第id为2的数据的密码为456(明文)

9、查看表内容

10、克隆表(2种方式)CCC

11、查看所有表

12、查看表内容

13、修改表名为DDD和表结构

14、删除表(三种方式)DDD

15、创建一个临时表

create table 表(字段 数据类型 状态)

insert into 表 values()

delete from 表 where

update   表名  set   字段名=字段值  where  条件表达式;  

select * from

alter table 表 rename 新表;


字段的

扩展

alter table 表 add 新字段 varchar(20) default '地址不详';

修改

alter table 表名 change 旧列名 新列名 想要修改的数据类型 [unique key];

删除字段

alter table 表名 drop 字段名;

(谨慎)修改类型

alter table 表名 modify column 字段名 想修改的类型。

克隆

1、创建  like   (复制表结构)加  插入 查询

2、另一个是创造的时候查询想要克隆的表内容



删除表(三种方式)

drop   table      (整体表删除)

truncate  table(只能删除数据,表结构还在)

delete     (条件删除)

1

2

3

4、

5、

6、

7

8、

9

10、11、

也可以

12

13、

14

15、

六、MySQL数据库的数据文件

扩展
MySQL数据库的数据文件存放在/usr/local/mysql/data目录下,每个数据库对应一个子目录,用于存储数据表文件。

每个数据对应为三个文件,扩展名分别为“.frm”、“.MYD”和“.MYI”。

  • MYD”文件是MyISAM存储引擎专用,存放MyISAM表的数据。每一个MyISAM表都会有一个“.MYD”文件与之对应,同样存放于所属数据库的文件夹下,和“.frm”文件在一起。
  • “.MYI”文件也是专属于 MyISAM 存储引擎的,主要存放 MyISAM 表的索引相关信息,索引,对于 MyISAM 存储来说,可以被 cache 的内容主要就是来源于“.MYI”文件中。每一个MyISAM 表对应一个“.MYI”文件,存放于位置和“.frm”以及“.MYD”一样。
  • frm就是存储熟悉列的

MyISAM 存储引擎的表在数据库中,每一个表都被存放为三个以表名命名的物理文件
(frm,myd,myi)。 每个表都有且仅有这样三个文件做为 MyISAM 存储类型的表的存储,也就是说不管这个表有多少个索引,都是存放在同一个.MYI 文件中。

另外还有“.ibd”和 ibdata 文件,这两种文件都是用来存放 Innodb 数据的,之所以有两种文件来存放 Innodb 的数据(包括索引),是因为Innodb的数据存储方式能够通过配置来决定是使用共享表空间存放存储数据,还是独享表空间存放存储数据。独享表空间存储 方式使用“.ibd”文件来存放数据,且每个表一个“.ibd”文件,文件存放在和 MyISAM 数据相同的位置。如果选用共享存储表空间来存放数据,则会使用 ibdata  文件来存放,所有表共同使用一个(或者多个,可自行配置)ibdata 文件。
 

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

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

相关文章

Mybatis:基础巩固-DML

目录 一、概述二、新增三、修改四、删除 一、概述 DML语句主要用来完成对数据的增删改的操作。可以分为以下几类: 新增(INSERT)修改(UPDATE)删除(DELETE) 二、新增 INSERT INTO tb_user(name, …

【MySQL 14】用户管理

文章目录 🌈 一、用户管理⭐ 1. 用户信息⭐ 2. 创建用户⭐ 3. 修改密码⭐ 4. 删除用户 🌈二、数据库的权限⭐ 1. 权限列表⭐ 2. 查看权限⭐ 3. 授予权限⭐ 4. 回收权限 🌈 一、用户管理 MySQL 也会区分普通用户和超级用户。如果只是访问某一…

centos基础设置

1.设置网络 # 配置网络 vi /etc/sysconfig/network-scripts/ifcfg-ens33 #将里面的onboard设置为yes 2.修改计算机名 使用命令行: 打开终端。 使用 hostnamectl 命令可以直接修改主机名。例如,如果您想将主机名更改为 mynewhostname,您可以使…

selenium(一)基于java、元素定位

Selenium自动化 Selenium是一个用于Web应用程序的自动化测试工具。它直接运行在浏览器中,可以模拟用户在浏览器上面的行为操作。 chrome下载 https://www.google.com/chrome/ 下载的结果是 “ChromeSetup.exe”,双击该文件,安装程序会自…

selenium(二)基于java、元素操控、Frame切换、元素等待

元素操控 选择到元素之后,我们的代码会返回元素对应的 WebElement对象,通过这个对象,我们就可以 操控 元素 输入sendKeys 项目实战:在网银环境下载流水[交易明细]的时候,需要指定查询日期,有些银行是可以…

一个简单的CRM客户信息管理系统,提供客户,线索,公海,联系人,跟进信息和数据统计功能(附源码)

前言 在当今快速发展的商业环境中,企业管理面临着种种挑战,尤其是如何有效管理和维护客户关系成为了一个关键问题。现有的一些处理方案往往存在功能分散、操作复杂、数据孤岛等痛点,这不仅影响了工作效率,也难以满足企业对客户关…

仿华为车机功能之--修改Launcher3,实现横向滑动桌面空白处切换壁纸

本功能基于Android13 Launcher3 需求:模仿华为问界车机,实现横向滑动桌面空白处,切换壁纸功能(本质只是切换背景,没有切换壁纸)。 实现效果: 实现思路: 第一步首先得增加手势识别 第二步切换底图,不切换壁纸是因为切换壁纸动作太大,需要调用到WallpaperManager,耗…

【赵渝强老师】构建Docker Swarm集群

在了解了Docker Swarm的体系架构以后,基于已经部署好三台虚拟主机便可以非常容易地构建Swarm集群。下表列出了这三台虚拟机的相关信息。其中:master主机将作为Swarm Manager运行;而node1和node2将作为Swarm Node运行。 视频讲解如下&#xf…

nacos 动态读取nacos配置中心项目配置

实现了项目稳定运行情况下不需要在项目中改配置&#xff0c;直接在nacos中修改更方便。 pom文件&#xff1a; <!--读取bootstrap文件--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap…

大数据测试怎么做,数据应用测试、数据平台测试、数据仓库测试

本期内容由中通科技高级质量工程师龙渊在公益讲座中分享&#xff0c;他从大数据测试整体介绍、数据应用测试、数据平台测试以及数据仓库测试等方面&#xff0c;与大家共同探讨了大数据测试的方法实施与落地。 以下是讲座正文&#xff1a; 今天我们分享的内容主要从大数据简介…

阿里云Ubuntu系统安装/简单使用Kafka

一、安装kafka 1.下载安装包 1.1下载地址 https://kafka.apache.org/downloads 注意&#xff1a; 版本可以随意选择&#xff0c;我们选择版本为2.4.1 2.压缩文件上传/解压 2.1上传 2.2解压文件 #解压文件指令 tar -zxvf kafka_2.12-2.4.1.tgz -C /export/server/ #创建软…

py_gif制作

from PIL import Image import moviepy.editor as mp import os# 1. 定义函数 resize_frame&#xff0c;用于调整视频帧的大小 def resize_frame(frame, max_size240):img Image.fromarray(frame)img img.resize((max_size, max_size), Image.Resampling.LANCZOS) # 使用 LA…

【Java】—— Java面向对象基础:Java中如何创建和使用三角形类(TriAngle)来计算面积

目录 第一步&#xff1a;定义TriAngle类 第二步&#xff1a;编写TriAngleTest测试类 运行程序 总结 在Java编程中&#xff0c;面向对象的编程思想是一种非常强大的工具&#xff0c;它允许我们将现实世界中的实体&#xff08;如三角形&#xff09;抽象成程序中的类&#xff…

c++关于字符串的练习

提示并输入一个字符串&#xff0c;统计该字符串中字母个数、数字个数、空格个数、其他字符的个数 #include <iostream> #include<string> using namespace std;int main() {string s1;int letter0,digit0,space0,other0;cout<<"请输入一个字符串:"…

redis学习笔记 ——redis中的四大特殊数据结构

一.前言 在之前的学习中&#xff0c;我们已经介绍了Redis中常见的五种基本的数据结构&#xff0c;而今天我们就要开始介绍Redis的四种特殊的数据结构&#xff0c;它们分别是bitmap(位图)&#xff0c; HyperLogLog(基数统计),Geospatial(地理信息),Stream。 二.位图(Bitmap) …

springboot+vue+mybatis计算机毕业设计电子产品交易系统+PPT+论文+讲解+售后

系统根据现有的管理模块进行开发和扩展&#xff0c;采用面向对象的开发的思想和结构化的开发方法对电子产品交易管理的现状进行系统调查。采用结构化的分析设计&#xff0c;该方法要求结合一定的图表&#xff0c;在模块化的基础上进行系统的开发工作。在设计中采用“自下而上”…

并发高负载场景下的负载均衡优化方案

并发高负载场景下&#xff0c;负载均衡优化技术 负载均衡是一种计算机技术&#xff0c;主要用于在多个计算机(如计算机集群)、网络连接、CPU、硬盘驱动器或其他资源中分配工作负载。 其主要目标是优化资源使用、最大化吞吐率、最小化响应时间&#xff0c;同时避免任何一个资源的…

跨境电商避坑指南:如何在亚马逊和速卖通安全进行测评补单

大家好&#xff0c;近期&#xff0c;不少从事跨境电商的朋友纷纷向我求助&#xff0c;他们在执行测评补单时频繁遭遇支付难题&#xff0c;如支付失败、支付成功后订单被取消&#xff0c;更有甚者&#xff0c;账号遭遇封禁。许多朋友误以为这仅仅是支付卡的问题&#xff0c;但实…

【生信分析常用软件】plink常用功能之翻转正负链(--flip)

官网:PLINK 1.9 plink --bfile plink --flip flip.txt --make-bed --out test 当不同数据合并时&#xff0c;如果一个数据使用正链&#xff0c;另外一个数据使用反链&#xff0c;就会导致合并数据出现问题&#xff0c;报错。 这种时候方案一&#xff1a;舍弃所有不能合并位点&…

【图像去噪】论文复现:代替ReLU!Pytorch实现即插即用激活函数模块xUnit,并插入到DnCNN中实现xDnCNN!

请先看【专栏介绍文章】&#xff1a;【图像去噪&#xff08;Image Denoising&#xff09;】关于【图像去噪】专栏的相关说明&#xff0c;包含适配人群、专栏简介、专栏亮点、阅读方法、定价理由、品质承诺、关于更新、去噪概述、文章目录、资料汇总、问题汇总&#xff08;更新中…