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

Mysql常用武功招式

数据库常用招式

在这里插入图片描述

1. 查看当前使用的数据库

 select database();  -- 返回当前使用的数据库名

2. 查看数据库

show databases;  -- 查看所有数据库
show databases like "数据库名";  -- 查看匹配模式的数据库(支持%通配符)

3. 清空屏幕(命令行客户端)

system cls;  -- Windows 系统
system clear;  -- Linux/macOS 系统

4. 创建数据库

create database 数据库名;  -- 直接创建数据库(存在则报错)
create database [if not exists] 数据库名 [character set 字符集];  -- 安全创建并可选指定字符集

5. 查看数据库创建语句

show create database 数据库名;  -- 显示数据库的完整创建语句

6. 修改数据库

alter database 数据库名 [character set 字符集];  -- 可选修改字符集

7. 删除数据库

drop database 数据库名;  -- 直接删除(不存在则报错)
drop database [if exists] 数据库名;  -- 安全删除(不存在不报错)

8. 数据库备份与恢复

mysqldump -u用户名 -p密码 数据库名 > 备份文件路径;  -- 备份数据库到SQL文件
mysql -u用户名 -p密码 数据库名 < 备份文件路径;  -- 从SQL文件恢复数据库

关键点说明:

  1. 中文替换:直接使用 数据库名用户名密码 等中文描述

  2. 可选参数:用 [] 标注可省略的参数,如 [if not exists]

  3. 字符集建议:优先使用 utf8mb4(支持 emoji 等特殊字符)

  4. 备份命令

    • 执行时 -p 后不直接写密码(更安全),会提示输入
    • 示例:mysqldump -uroot -p 数据库名 > /data/backup.sql
  5. 需要示例时,可以将 数据库名 替换为 testdbmydata 等实际名称演示。

数据类型大杂烩

数据表是数据库的重要组成部分,每一个数据库都是由若干个数据表组成的。比如,在电脑中一个文件夹有若干excel文件。这里的文件夹就相当于数据库,excel文件就相当于数据表。

MySQL 的数据类型有大概可以分为 5 种,分别是整数类型浮点数类型日期和时间类型字符串类型二进制类型等。

字符串和整数类型

在这里插入图片描述
在 MySQL 中,布尔类型被称为 BOOLEANBOOL 类型。BOOLEAN 类型用于存储布尔值,即 TRUE(真)或 FALSE(假)。

MySQL 中的布尔类型可以有以下几种表示方式:

  1. 整数类型:布尔类型可以表示为整数类型,其中 0 表示 FALSE,非零整数表示 TRUE。常见的表示 TRUE 的整数值为 1
  2. 字符串类型:布尔类型也可以表示为字符串类型,其中 '0' 表示 FALSE,而 '1' 表示 TRUE。这种表示方式更贴近人类可读的布尔值。

需要注意的是,尽管 MySQL 支持布尔类型的不同表示方式,但它并没有专门的存储布尔值的数据类型。在实际使用中,你可以选择使用 TINYINT(1)VARCHAR(1) 等其他数据类型来存储布尔值,但约定使用 01'0''1' 来表示布尔值。

小数和日期类型

在这里插入图片描述

二进制类型

在这里插入图片描述
BIT数据类型可以用来存储布尔值。

CREATE TABLE my_table (is_active BIT(1)
);
INSERT INTO my_table (is_active) VALUES (1); -- 存储真值
INSERT INTO my_table (is_active) VALUES (0); -- 存储假值

数据表常用招式

创建数据表

-- 语法
CREATE TABLE tab_name(field1 type [约束条件],field2 type,...fieldn type    -- 一定不要加逗号,否则报错!
)[character set utf8];

创建一个学生表

-- 创建一个 student的表
create table student(name varchar(32), -- 姓名 32个字符gender bit, -- 性别 1bit 0/1age int,    -- 年龄birth date, -- 日期 默认是 YYYY-MM-DDgpa decimal(4,2) -- 绩点 xx.xx 总共四位 最大 99.99 小数点占后两位 (位数,小数点位数)
);
-- 如果不设定 character set 默认和数据库的 character set 一样

在这里插入图片描述

语法注意

  • 必须在使用 USE 数据库名; 切换到目标数据库后执行,否则会显示默认数据库(如 mysql)的表。
  • 正确语法:
    SHOW TABLES;  -- 查看当前数据库的表
    
  • 若要查看指定数据库的表,需显式指定:
    SHOW TABLES FROM 数据库名;  -- 例如:SHOW TABLES FROM student_db;
    

约束

约束是一种限制,它通过限制表中的数据,来确保数据的完整性和唯一性。使用约束来限定表中的数据很多情况下是很有必要的。在 MySQL 中,约束是指对表中数据的一种约束,能够帮助数据库管理员更好地管理数据库,并且能够确保数据库中数据的正确性和有效性。例如,在数据表中存放年龄的值时,如果存入 200、300 这些无效的值就毫无意义了。因此,使用约束来限定表中的数据范围是很有必要的。

添加记录:

INSERT <表名> 字段1,...字段n VALUES (1,...值n) ;

非空约束

非空约束用来约束表中的字段不能为空。比如,在用户信息表中,如果不添加用户名,那么这条用户信息就是无效的,这时就可以为用户名字段设置非空约束。

创建表时可以使用NOT NULL关键字设置非空约束

CREATE TABLE user(name VARCHAR(22),age int
);
insert user (name) values ("宇宙第一小趴菜");

在这里插入图片描述

CREATE TABLE user(name VARCHAR(22),age int NOT NULL
);insert user (name) values ("宇宙第一小趴菜");

在这里插入图片描述

Field ‘age’ doesn’t have a default value:age这个字段缺少默认值

insert user (name,age) values ("宇宙第一小趴菜",18);

在这里插入图片描述

唯一约束

唯一约束(Unique Key)是指所有记录中字段的值不能重复出现。例如,为name字段加上唯一性约束后,每条记录的name值都是唯一的,不能出现重复的情况。

创建表时可以使用UNIQUE关键字设置非空约束

例如,在用户信息表中,要避免表中的用户名重名,就可以把用户名列设置为唯一约束。

CREATE TABLE user(name VARCHAR(22),age int
);
insert user (name) values ("宇宙第一小趴菜");
insert user (name) values ("宇宙第一小趴菜");
select * from user;

在这里插入图片描述

删除数据表

 drop table if exists user; -- 如果存在这个user表就删除
CREATE TABLE user(name VARCHAR(22) UNIQUE,age int
);
insert user (name) values ("宇宙第一小趴菜");
insert user (name) values ("宇宙第一小趴菜");
select * from user;

在这里插入图片描述

默认值约束

默认值约束用来约束当数据表中某个字段不输入值时,自动为其添加一个已经设置好的值。

创建表时可以使用DEFAULT关键字设置默认值约束

CREATE TABLE user(name VARCHAR(22),gender bit
);
insert user (name) values ("宇宙第一小趴菜");
select * from user;

在这里插入图片描述

CREATE TABLE user(name VARCHAR(22),gender varchar(2) default "保密"
);
insert user (name) values ("宇宙第一小趴菜");
select * from user;

在这里插入图片描述

主键约束

主键约束是使用最频繁的约束。在设计数据表时,一般情况下,都会要求表中设置一个主键。主键是表的一个特殊字段,该字段能唯一标识该表中的每条信息。

CREATE TABLE user(name VARCHAR(22),age int,gender varchar(1) default "男"
);
insert user (name,age) values ("李飞",18);
insert user (name,age) values ("李白",28);
insert user (name,age) values ("杜甫",23);
insert user (name,age) values ("李飞",18);
select * from user;
-- 没有唯一能标识该表中的每条记录的字段值

在这里插入图片描述

CREATE TABLE user(id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(20)
);
insert user (name) values ("宇宙第一小趴菜");
select * from user;

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

  1. 一张表中最多只能有一个主键
  2. 主键类型不一定必须是整型
  3. 表中如果没有设置主键,默认设置NOT NULL和UNIQUE的字段为主键;此外,表中如果有多个NOT NULL和UNIQUE的字段,则按顺序将第一个设置NOT NULL和UNIQUE的字段设为主键。所以主键一定是非空且唯一,但非空且唯一的字段不一定是主键。

最终学生表

create table student
(sid    int PRIMARY   KEY   auto_increment,  -- 主键约束name   varchar(32)   not null,              -- 非空约束gender bit           default 1,             -- 默认约束age    int           not null,              -- 非空约束birth  date          not null,              -- 非空约束gpa    decimal(4, 2) not null               -- 非空约束
)character set utf8mb4;

查看表

show tables -- 查看当前数据库中的所有的表

在这里插入图片描述

查看表结构

desc 表名;    -- 查看表结构,等同于show columns from tab_name  

在这里插入图片描述

查看创建数据表的语句

show create table tab_name      -- 查看当前数据库表建表语句 

在这里插入图片描述

删除表

DROP TABLE [IF EXISTS] 表名1 [ ,表名2, 表名3 ...]

在这里插入图片描述

修改表名

ALTER TABLE <旧表名> RENAME [TO] <新表名>

在这里插入图片描述

修该表所用的字符集

ALTER TABLE 表名 [DEFAULT] CHARACTER SET <字符集名> 

在这里插入图片描述

增加列(字段)

ALTER TABLE <表名> ADD <新字段名><数据类型>[约束条件]firstafter 字段名];

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

增加多个字段

alter table studentadd age int not null,add gender varchar(2) not null default 1,add birth date not null;

在这里插入图片描述

删除某字段

ALTER TABLE <表名> DROP <字段名>

在这里插入图片描述

修改某字段类型

ALTER TABLE <表名> MODIFY <字段名> <数据类型> [完整性约束条件]firstafter 字段名];

在这里插入图片描述

修改某字段名

ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>  [完整性约束条件]firstafter 字段名];

在这里插入图片描述

调整添加字段位置

ALTER TABLE <表名> MODIFY <字段名> <数据类型> [完整性约束条件]firstafter 字段名];

在这里插入图片描述

在这里插入图片描述

http://www.dtcms.com/a/295309.html

相关文章:

  • 大脑各脑区功能解析:从痛觉处理到动作执行的协作机制
  • runc源码解读(一)——runc create
  • 技术赋能与体验升级:高端网站建设的核心要义
  • 【VSCode】复制到下一行快捷键
  • SparkSQL 子查询 IN/NOT IN 对 NULL 值的处理
  • 【分布式锁】什么是分布式锁?分布式锁的作用?
  • Windows计算器项目全流程案例:从需求到架构到实现
  • 宝塔通过docker部署JupyterHub指南【常见错误处理】
  • 深入解析文件操作(下)- 文件的(顺序/随机)读写,文件缓冲区,更新文件
  • 【AI】Jupyterlab中数据集的位置和程序和Pycharm中的区别
  • 20-ospf技术
  • MIT线性代数01_方程组的几何解释
  • 绿色转向的时代红利:创新新材如何以技术与标准主导全球铝业低碳重构
  • 旅行短视频模糊的常见原因及应对方法
  • 内网穿透:打破网络限制的利器,内外网概念、穿透原理、实际操作方法步骤
  • 【LeetCode 热题 100】39. 组合总和——(解法一)选或不选
  • 【物联网】基于树莓派的物联网开发【16】——树莓派GPIO控制LED灯实验
  • 暑期算法训练.7
  • 97.2%灵敏度,桐树基因MSI NGS 2249 Panel——低肿瘤含量MSI检测的王者
  • CIRL:因果启发的表征学习框架——从域泛化到奖励分解的因果革命
  • LLM:Day1
  • 【Linux】linux基础开发工具(一) 软件包管理器yum、编辑器vim使用与相关命令
  • Web前端:JavaScript some()迭代方法
  • 前端如何利用多通道发布(MCP)打造高效AI驱动应用?
  • Hadoop磁盘I/O瓶颈的监控与优化:从iostat指标到JBOD vs RAID的深度解析
  • 2025真实面试试题分析-iOS客户端开发
  • Spring工程中集成多个redis数据源
  • iOS WebView 加载失败与缓存刷新问题排查实战指南
  • [iOS开发工具] 【iOS14以及以下】cydia商店按键精灵iOS新版V2.X安装教程
  • STM32 IAP升级失败之谜:时钟源配置的陷阱与解决方案