MySQL(一)——MySQL的一些概念、数据库操作、数据表操作、数据操作
创始人
2024-03-17 03:05:22
0

一、数据库的分类

1、关系型数据库(RDBMS)

(1)Oracle 数据库(甲骨文公司)
(2)MySQL 数据库(甲骨文公司),流行、开源
(3)SQLSeerver 数据库(微软)
(4)Sqlite(嵌入式关系数据库)

2、非关系型数据库(NoSQL)

(1)Redis(缓存数据库)
(2)MongoDB (文档数据库)
(3)Elasticsearch(搜索服务)
(4)Hbase(分布式、列示数据库)

二、数据库的常用操作

1、创建

创建数据库:create database 数据库名称;

创建数据库,先判断不存在,再创建:create database if not exists 数据库名称;

创建数据库,并指定字符集:create database 数据库名称 character set 字符集名;

2、查询

查询所有数据库的名称:show databases;

查询某个数据库的字符集、查询某个数据库的创建语句:show create database 数据库名称;

查询当前正在使用的数据库名称:select database();

3、修改

修改数据库的字符集:alter database 数据库名称 character set 字符集名称;

4、删除

删除数据库:drop database 数据库名称;

删除数据库,先判断数据库存在,存在再删除:drop database if exists 数据库名称;

三、数据表的常用操作

1、创建

create table if not exists 表名(列名1 数据类型1[长度] 【字段约束】,列名2 数据类型2[长度] 【字段约束】,....列名n 数据类型n[长度] 【字段约束】);

eg:

use mayiktmeite;
CREATE TABLE if not exists mayikt_user(id INT,name VARCHAR(20),age int,create_time date,address VARCHAR(100)
);

2、查询

3、修改

修改表名称:alter table 表名 rename to 新的表名;

eg:

ALTER TABLE user_test RENAME TO user_table ;

4、删除

drop table 表名;
drop table  if exists 表名;

四、数据类型

MySQL 支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。
1、数值类型

类型大小范围(有符号)范围(无符号)说明
TINYINT1 Bytes(-128,127)(0,255)小整数值
SMALLINT2 Bytes(-32 768,32 767)(0,65 535)大整数值
MEDIUMINT3 Bytes(-8 388 608,8 388 607)(0,16 777 215)大整数值
INT或INTEGER4 Bytes(-2 147 483 648,2 147 483 647)(0,4 294 967 295)大整数值
BIGINT8 Bytes(-9,223,372,036,854,775,808,9 223 372 036 854 775 807)(0,18 446 744 073 709 551 615)极大整数值
FLOAT4 Bytes(-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38).0,(1.175 494 351 E-38,3.402 823 466 E+38)单精度 浮点数值
DOUBLE8 Bytes(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)双精度 浮点数值
DECIMAL对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2依赖于M和D的值依赖于M和D的值小数值

2、日期/时间类型

类型大小范围格式说明
YEAR11901/2155YYYY年份值
DATE31000-01-01/9999-12-31YYYY-MM-DD日期值
TIME23‘-838:59:59’/‘838:59:59’HH:MM:SS时间值或持续时间
DATETIME81000-01-01 00:00:00/9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时间值
TIMESTAMP41970-01-01 00:00:00/2038 结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07YYYYMMDD HHMMSS混合日期和时间值,时间戳

3、字符串(字符)类型

类型大小说明
CHAR0-255 bytes定长字符串
VARCHAR0-65535 bytes变长字符串
TINYBLOB0-255 bytes不超过 255 个字符的二进制字符串
TINYTEXT0-255 bytes短文本字符串
BLOB0-65 535 bytes二进制形式的长文本数据
TEXT0-65 535 bytes长文本数据
MEDIUMBLOB0-16 777 215 bytes二进制形式的中等长度文本数据
MEDIUMTEXT0-16 777 215 bytes中等长度文本数据
LONGBLOB0-4 294 967 295 bytes二进制形式的极大文本数据
LONGTEXT0-4 294 967 295 bytes极大文本数据

注:
char(n) 和 varchar(n) 中括号中 n 代表字符的个数,并不代表字节个数,比如 CHAR(30) 就可以存储 30 个字符。

五、数据的常用操作

1、DML与DDL区别?

DDL 对数据库的表结构进行增加、修改、删除操作;
DML 表结构中的数据进行增加(insert)、修改(update)、删除(delete)、查询(select )操作。

2、增加(insert)

INSERT INTO 语句用于向表格中插入新的行。
语法格式:
INSERT INTO 表名称 (列名1,列名2 …) VALUES (值1, 值2,…) // 插入数据列与值的顺序需要一一对应
INSERT INTO 表名称 VALUES (值1,值2,…) // 向表中插入所有列

eg:

INSERT INTO `user_test` (`id`, `name`, `age`, `addres`, `create_time`) VALUES (1, '毛毛', 20, '合肥', '2022-12-04 15:19:32');
INSERT INTO `user_test`  VALUES (1, '毛毛', 20, '合肥', '2022-12-04 15:19:32');

3、修改(update)

语法格式:
UPDATE 表名称 SET 字段=值,字段=值,…; //直接修改整张表的所有行数据
UPDATE 表名称 SET 字段=值,字段=值,… where 条件; //根据条件查找到对应行数据进行修改

eg:

UPDATE `user_test` SET `name` = '毛毛', `age` = 25  WHERE `id` = 1; //修改id等于1的行
UPDATE `user_test` SET `name` = '毛毛', `age` = 25  ---修改所有

4、删除(delete)

语法格式:
delete from 表名称 where 条件; //根据条件删除表中的数据
TRUNCATE 表名称; //–清空表中所有的数据

eg:

delete from user_test  where  where id=1;  //根据条件id=1 删除id=1 行的数据
delete from user_test;  //清空表中所有的数据
TRUNCATE user_test;   //清空表中所有的数据

注:TRUNCATE 与delete 不同?
truncate:会清空表中所有的数据,速度快,不可回滚;实质是删除整张表包括数据再重新创建表;
delete:逐行删除数据,每步删除都是有日志记录的,可以回滚数据;实质是逐行删除表中的数据;

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...