MySql系列-常用命令

基础知识-常用命令

命令不区分大小写

1、mysql连接

mysql -u username -p

实例:

mysql -u root -p

2、元数据查询

//服务器版本信息
SELECT VERSION( ) 
//当前数据库名 (或者返回空)
SELECT DATABASE( ) 
//当前用户名
SELECT USER( ) 
//服务器状态
SHOW STATUS 
//服务器配置变量
SHOW VARIABLES

3、数据库操作

1)创建数据库

语法

CREATE DATABASE 数据库名;

2)查询数据库

语法

SHOW DATABASES;

实例:

3)删除数据库

drop database <数据库名>;

实例:

4)使用数据库

use DATABASE;

实例:

4、创建数据表

语法

CREATE TABLE table_name (column_name column_type);

或者顺便指定索引

CREATE TABLE table_name (column1_name data_type,column2_name data_type,...,INDEX index_name (column1 [ASC|DESC], column2 [ASC|DESC], ...)
);

实例:

CREATE TABLE IF NOT EXISTS `User`(`user_id` INT UNSIGNED AUTO_INCREMENT,`user_name` VARCHAR(100) NOT NULL,`user_sex` VARCHAR(10) NOT NULL,`insert_date` DATE,PRIMARY KEY ( `user_id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

5、删除数据表

语法

DROP TABLE table_name ;

实例:

DROP TABLE User;

6、修改数据表结构

在进行重要的结构修改时,建议先备份数据,并在生产环境中谨慎操作,因为修改时会影响到数据库的性能和运行时间。

1)添加新字段

ALTER TABLE table_name
ADD column_name data_type;

2)修改字段类型

ALTER TABLE table_name
MODIFY column_name new_data_type;

3)修改字段名称

ALTER TABLE table_name
CHANGE old_column_name new_column_name data_type;

4)删除字段

ALTER TABLE table_name
DROP column_name;

5)添加主键约束

ALTER TABLE table_name
ADD PRIMARY KEY (column_name);

6)添加外键约束

ALTER TABLE table_name
ADD FOREIGN KEY (column_name) REFERENCES referenced_table(ref_column_name);

7)添加普通索引

ALTER TABLE table_name
ADD INDEX index_name (column1 [ASC|DESC], column2 [ASC|DESC], ...);

或者

CREATE INDEX index_name
ON table_name (column1 [ASC|DESC], column2 [ASC|DESC], ...);

8)添加唯一索引

ALTER TABLE table_name
ADD UNIQUE INDEX index_name (column1 [ASC|DESC], column2 [ASC|DESC], ...);

或者

CREATE UNIQUE INDEX index_name
ON table_name (column1 [ASC|DESC], column2 [ASC|DESC], ...);

9)删除索引

ALTER TABLE table_name
DROP INDEX index_name;

或者

DROP INDEX index_name ON table_name;

10)重命名表

ALTER TABLE old_table_name
RENAME TO new_table_name;

11)修改表的存储引擎

ALTER TABLE table_name ENGINE = new_storage_engine;

7、复制数据表

如果我们需要完全的复制MySQL的数据表,包括表的结构,索引,默认值等。 如果仅仅使用CREATE TABLE ... SELECT 命令,是无法实现的。下面介绍如何完全复制一张表

原始表是User,复制一个新的表叫User_2

1)获取数据表User的建表语句。
命令:SHOW CREATE TABLE User;

2)修改SQL语句的数据表名为User_2,并执行SQL语句。

CREATE TABLE `user_2` (`user_id` int(10) unsigned NOT NULL AUTO_INCREMENT,`user_name` varchar(100) NOT NULL,`user_sex` varchar(10) NOT NULL,`insert_date` date DEFAULT NULL,PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8

此时表user_2的结构和原始表user完全一致,但是没有数据。

3)使用INSERT INTO... SELECT 语句拷贝表中的数据

命令:

INSERT INTO User_2(user_id,user_name,user_sex,insert_date) select user_id,user_name,user_sex,insert_date from user;

通过上面三个步骤,就会完整的复制表的内容,包括表结构及表数据。

8、插入数据行

语法

INSERT INTO table_name ( field1, field2,...fieldN )
VALUES
( value1, value2,...valueN );

实例:

INSERT INTO User(user_name,user_sex,insert_date) VALUES('admin','男','2023-08-29');

9、查询数据行

语法

SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]

实例:

SELECT user_name,user_sex FROM User WHERE user_name='admin' LIMIT 1;

10、更新数据行

语法

UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]

实例:

UPDATE User SET user_sex='女' where user_name='admin';

11、删除数据行

语法

DELETE FROM table_name [WHERE Clause]

实例:

DELETE FROM User WHERE user_name='admin';

12、模糊查询LIKE

语法

SELECT field1, field2,...fieldN 
FROM table_name
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'

LIKE 通常与 % 一同使用,类似于一个元字符的搜索

实例:

SELECT *FROM User WHERE user_name LIKE '%ad%';

13、联合查询UNION

语法

SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
UNION [ALL | DISTINCT]
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];

UNION ALL: 返回所有结果集,包含重复数据。
UNION: 返回所有结果集,不包含重复数据。

14、排序

语法

SELECT field1, field2,...fieldN FROM table_name1, table_name2...
ORDER BY field1 [ASC [DESC][默认 ASC]], [field2...] [ASC [DESC][默认 ASC]]

实例:

//按插入时间升序
SELECT * from User ORDER BY insert_date ASC;

15、分组

语法

SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;

实例:

//按用户名分组
SELECT user_name,count(1) from User GROUP BY user_name

16、多表连接查询

  • INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
  • LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
  • RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。

我们可以在SELECT, UPDATE 和 DELETE 语句中使用 Mysql 的 JOIN 来联合多表查询。

语法:

SELECT a.x,b.y from a inner join b on a.id = b.a_id

17、正则表达式

MySQL中使用 REGEXP 操作符来进行正则表达式匹配。

实例:

//查找user_name字段中以'st'为开头的所有数据:
SELECT user_name FROM User WHERE user_name REGEXP '^ad';

18、事务控制

在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。

语法:

//MYSQL 事务处理主要有两种方法:
//1、用 BEGIN, ROLLBACK, COMMIT来实现
BEGIN 开始一个事务
ROLLBACK 事务回滚
COMMIT 事务确认
//2、直接用 SET 来改变 MySQL 的自动提交模式:
SET AUTOCOMMIT=0 禁止自动提交
SET AUTOCOMMIT=1 开启自动提交

实例:

19、数据导出

可以使用 SELECT ... INTO OUTFILE 语句导出数据

实例:

select *from user into outfile 'D:\\mysql-5.7.43-winx64\\outfile';

直接执行上述导出会报错:

ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

看字面意思是和--secure-file-pri这个变量有关系,我们看下这个变量的设置是什么:

show variables like '%secure%';

可以看到这个值是NULL, 查阅资料得知

secure-file-pri这个变量被用于限制数据导入的导出操作,诸如执行LOAD DATA以及SELECT ... INTO OUTFILE操作以及LOAD_FILE()函数。 
这个secure_file_priv可以设置的值有三个可选项:
- If empty, the variable has no effect. This is not a secure setting. 【如果此配置项值为空,则表示没有安全设置】
- 如果设置为目录名,则服务器将限制导入和导出操作,使其仅适用于该目录中的文件。该目录必须存在;服务器将不会创建它。
- 如果设置为NULL,则服务器将禁用导入和导出操作。从MySQL 5.7.6开始允许使用此值

根据上述的NULL值,可以看到是不允许导出(入)到文件。

解决办法就是在配置文件中,设置secure-file-priv为某个路径即可,如下:

注意配置前一定要加一行[mysqld]

最后要想配置生效,需要重启mysql服务,注意是重启服务!不是退出重新登录!

配置生效后,重新执行前面的导出命令即可导出数据

20、数据导入

1)使用mysql命令导入
语法:

mysql -u用户名 -p密码 < 要导入的数据库数据(data.sql)

以上命令将将备份的整个数据库 data.sql 导入。

2)使用source命令导入

source 命令导入数据库需要先登录到数库终端

导入步骤:

mysql> create database gyd; # 创建数据库
mysql> use gyd; # 使用已创建的数据库 
mysql> set names utf8; # 设置编码
mysql> source /home/gyd/gyd.sql # 导入备份数据库

3)使用 LOAD DATA 导入数据

以下实例中将从当前目录中读取文件 outfile.txt ,将该文件中的数据插入到当前数据库的 user 表中。

mysql> LOAD DATA LOCAL INFILE 'outfile.txt' INTO TABLE user;

LOAD DATA 默认情况下是按照数据文件中列的顺序插入数据的,如果数据文件中的列与插入表中的列不一致,则需要指定列的顺序。

如,在数据文件中的列顺序是 user_sex,user_name, insert_date,但在插入表的列顺序为user_name, user_sex, insert_date,则数据导入语法如下:

mysql> LOAD DATA LOCAL INFILE 'outfile.txt' 
-> INTO TABLE user (user_name, user_sex, insert_date);

4)使用 mysqlimport 导入数据

$ mysqlimport -u root -p --local user outfile.txt
password *****

mysqlimport有很多可选项,有兴趣的可以自行查资料啦!

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

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

相关文章

C++项目实战——基于多设计模式下的同步异步日志系统-①-项目介绍

文章目录 专栏导读项目介绍开发环境核心技术环境搭建日志系统介绍1.为什么需要日志系统2.日志系统技术实现2.1同步写日志2.2异步写日志 专栏导读 &#x1f338;作者简介&#xff1a;花想云 &#xff0c;在读本科生一枚&#xff0c;C/C领域新星创作者&#xff0c;新星计划导师&a…

SpringMVC的文件上传文件下载多文件上传---详细介绍

目录 前言&#xff1a; 一&#xff0c;文件上传 1.1 添加依赖 1.2 配置文件上传解析器 1.3 表单设置 1.4 文件上传的实现 二&#xff0c;文件下载 controller层 前端jsp 三&#xff0c;多文件上传 Controller层 运行 前言&#xff1a; Spring MVC 是一个基于 Java …

ES-索引管理

前言 数据类型 ​ 搜索引擎是对数据的检索&#xff0c;所以我们先从生活中的数据说起。我们生活中的数据总体分为两种&#xff1a; 结构化数据非结构化数据 结构化数据&#xff1a; 也称作行数据&#xff0c;是由二维表结构来逻辑表达和实现的数据&#xff0c;严格地遵循数…

idea中mapper直接跳转到xml的插件

一.点击File | Settings | Plugins&#xff0c;下载插件 二、重启idea

分割等和子集【动态规划】

分割等和子集 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集&#xff0c;使得两个子集的元素和相等。 class Solution {//testpublic boolean canPartition(int[] nums) {if(nums null || nums.length 0) return false;int n nums…

如何曲线斩获大厂校招SP Offer

大家好&#xff0c;我是洋子&#xff0c;时至9月&#xff0c;24届校招正式批笔试环节很多公司都开始了&#xff0c;近期也有同学逐渐开始正式批面试&#xff0c;今天分享一篇22届学长的上岸大厂测开经验指南&#xff0c;干货满满 原文链接 https://zhuanlan.zhihu.com/p/479687…

virtualbox虚拟机中安装FreeDOS系统和DJGPP编译环境

一、安装FreeDOS系统 1、从官网下载FreeDOS系统镜像&#xff0c;下载的压缩包中包含两个文件&#xff1a;后缀为.iso和.img的镜像 ​​​下载页面 http://www.freedos.org/download/ 直接下载链接 https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.…

TOWE雷达光敏感应开关,让生活更智能、更安全

现代生活中&#xff0c;智能家居成为人们追求品质生活的必备之选。其中&#xff0c;照明控制的智能化已然成为一种趋势&#xff0c;传统的灯光开关需要人们手动操作&#xff0c;既不方便&#xff0c;有时候也会造成资源的过度浪费&#xff0c;而雷达光敏感应开关的出现&#xf…

05 C/C++ 指针复杂类型说明 9月5日

目录 C语⾔ (1)数组 (2)指针 指针变量 空指针 (3)指针复杂类型 int a 0; int *p &a; int p[3];​​​​​​​ int *p[3]; int (*p)[3]; int **p; int p(int); int(*p)(int); C语⾔ (1)数组 当数据具有相同的数据类型&#xff1b;使用过程中需要保留原始…

纯前端读写文件?

事情是这样的我发现vscode在线版居然可以打开文件目录和文件&#xff0c;还能保存文件。 兼容性一般 目前 谷歌 edge Opera 支持 其他均不支持 https://vscode.dev/ 查了一下MDN 发现增加新的API 了 https://developer.mozilla.org/zh-CN/docs/Web/API/Window/showDirectoryP…

2023-09-07 LeetCode每日一题(修车的最少时间)

2023-09-07每日一题 一、题目编号 2594. 修车的最少时间二、题目链接 点击跳转到题目位置 三、题目描述 给你一个整数数组 ranks &#xff0c;表示一些机械工的 能力值 。ranksi 是第 i 位机械工的能力值。能力值为 r 的机械工可以在 r * n2 分钟内修好 n 辆车。 同时给你…

Nginx 配置错误导致漏洞

文章目录 Nginx 配置错误导致漏洞1. 环境启动2. CRLF注入漏洞2.1 漏洞描述2.2 漏洞原理2.3 漏洞利用2.4 修复建议 3. 目录穿越漏洞3.1 漏洞描述3.2 漏洞原理3.3 漏洞利用3.4 修复建议 4. add_header被覆盖4.1 漏洞描述4.2 漏洞原理4.3 漏洞利用4.4 修复建议 Nginx 配置错误导致…

数据结构与算法:数据结构基础

目录 数组 定义 形式 顺序存储 基本操作 读取元素 更新元素 插入元素 删除元素 扩容 初始化 时机 步骤 优劣势 链表 定义 单向链表 特点 双向链表 随机存储 基本操作 查找节点 更新节点 插入节点 删除元素 数组VS链表 栈与队列 栈 定义 基本操作…

uniapp使用webview将页面转换成图片支持h5、app、小程序

uniapp使用webview将页面转换成图片支持h5、app、小程序 在uniapp项目中新建主页和webview页面 index.vue代码 <template><view><!-- 微信小程序要设置src为网络路径 --><web-view src"/hybrid/html/webview.html"></web-view><…

51单片机的智能台灯控制系统仿真( proteus仿真+程序+原理图+报告+讲解视频)

51单片机的红外光敏检测智能台灯控制系统仿真 1.主要功能&#xff1a;2.仿真3. 程序代码4. 原理图5. 设计报告6. 设计资料内容清单&&下载链接 51单片机的红外光敏检测智能台灯控制系统仿真( proteus仿真程序原理图报告讲解视频&#xff09; 仿真图proteus7.8及以上 程…

SpringMVC应用

文章目录 一、常用注解二、参数传递2.1 基础类型String2.2 复杂类型2.3 RequestParam2.4.路径传参 PathVariable2.4 Json数据传参 RequestBody2.5 RequestHeader 三、方法返回值3.1 void3.2 Stringmodel3.3 ModelAndView 一、常用注解 SpringMVC是一个基于Java的Web框架&#…

深度学习在医疗保健领域的应用:从图像识别到疾病预测

文章目录 深度学习在医学影像识别中的应用1. 癌症检测2. 病理学图像分析3. 医学图像分割 深度学习在疾病预测中的应用1. 疾病风险预测2. 疾病诊断辅助3. 药物研发 深度学习在个性化治疗中的应用1. 基因组学分析2. 临床数据集成 深度学习在医疗保健中的挑战和未来数据隐私和安全…

【小吉送书—第二期】阿里后端开发:抽象建模经典案例

文章目录 0.引言1.抽象思维2.软件世界中的抽象2.1 命名抽象2.2 分层抽象2.3 原则抽象 3. 经典抽象案例3.1 方案一&#xff1a;战术抽象&#xff0c;多快好省&#xff0c;跑步前进3.2 方案二&#xff1a;深入分析&#xff0c;透过表象&#xff0c;探寻本质 5. 推荐一本书&#x…

给 Ubuntu 操作系统配置静态 IP

针对 Ubuntu 22.04.3 操作系统的静态 IP 配置 一、查看初始的网络信息 查看网卡名称 ifconfig查看网关信息 route -n二、编辑网络配置文件 编辑文件&#xff0c;配置文件的名称可能不一样&#xff0c;自己去 /etc/netplan/ 目录查看 sudo vim /etc/netplan/01-network-manager-…

虚幻引擎集成web前端<一>:win环境UE4.27导出像素流并集成到vue2环境(附案例)

本案例附件&#xff1a;https://download.csdn.net/download/rexfow/88303544 第一部分&#xff1a;虚幻引擎导出像素流windows包 第1步&#xff1a;软件设置 -AudioMixer -PixelStreamingIPlocalhost -PixelStreamingPort8888 第2步&#xff1a;信令服务器设置 1、执行run_l…