草庐IT

Mysql常用命令详细大全

袁袁袁袁满 2023-04-21 原文

文章目录

1. 基础命令

  • 默认端口号:3306
  • 查看服务器版本:select version(); 或者 cmd命令 mysql -verison
  • 登录数据库:mysql -uroot -p
  • 退出数据库:exit/quit
  • 查看当前系统下的数据库:show databases;
  • 创建数据库:create 库名;
  • 使用数据库:use 库名;
  • 查看表:show tables;
  • 建表:create table 表名 (字段名+空格+数据类型);
  • 查看表结构:desc 表名;
  • 添值:insert into 表名 (列名) values (值);
  • 查看表中所有数据:select * from 表名;
  • 查询建表时的结构:show create table 表名;
  • 删除字段中的值:delete from 表名 where 条件;
  • 删除表中的字段:delete from 表名 drop column 字段名;或者alter table 表名 drop 字段名
  • 删除表:drop table 表名;
  • 删除库:drop database 库名;
  • 主键约束:primary key
  • 唯一约束:unique
  • 非空约束:not null
  • 默认约束:default
  • 外键约束:foreign key(外键)references主表(主键)
  • 查看别的数据库的表格:show tables from 表名;

2. where条件查询

  • 精确查询:=、!=、>、<、>=、<=
  • 模糊查询:like(像)、not like(不像)
  • 通配符:%:任意字符、-:单个字符
  • 逻辑运算符:
    • and:同时满足(优先级大于or)
    • or:满足任意条件即可
  • 区间运算:between a and b (闭区间)
  • 集合运算:in 、not in
  • 非空运算:is null 、is not null

3. 针对表内数据的操作

  • 增加:insert into 表名 (列名) values (值);
  • 删除:delete from 表名 where 条件;
  • 查看:select * from 表名 where 条件;
  • 修改:update 表名 set 字段=新值 where 条件;
  • 排序:order by 字段名;(asc 升序、desc降序)
    • 例:select * from 表名 order by 列名1 asc ,列名2 desc;
  • 聚合函数:
    • sum() 函数:求累加和
      • 例:select sum(字段名) as ‘别名’/别名 from 表名;
    • count() 函数:同级行数数量
      • (1)count(*):表示计算表中总的行数,不管某列是否有数值或者是为空
        • select count(*) from 表名;
      • (2)count(字段名):表示计算指定列下总的行数,计算或将忽略空值
        • select count(字段名) from 表名;
    • avg() 函数:返回一个平均值函数
      • 例:select avg(字段名) as 别名 from 表名;
    • max() 函数:返回指定列中的最大值
    • select max(字段名) as 别名 from 表名;
    • min() 函数: 返回最小值
    • 例:select min(字段名) as 别名 from 表名;
  • 分组:
    • group by 字段 :将查询结果按一列/多列的值分组,值相等为一列
    • having 字段:二次判断,用到聚合函数后,又需筛选条件时,having和group by组合用
    • 例:select 列名1 ,count(列名2) 别名 from 表名 group by 列名1 having 别名 >2;
  • 限制查询结果输出条数:limit 数字
    • 传一个参数(输出前五条数据)
      • select * from 表名 limit 5;
    • 传两个参数(输出6-15)
      • select * from 表名 limit 5,10;
      • :5:从5后开始,10:条数
  • 修改表名:alter table 旧表名 rename 新表名;
  • 修改表中id字段为sid:alter table 表名 change id sid char;
  • 去掉某列:alter table 表名 drop 列名;
  • 添加某列:alter table 表名 add 列名 char;
  • 修改列为字符型:alter table 表名 modify 列名 char(20);
  • 增加多列:alter table 表名 add(xh int(4),zc char(8),ads char(50),);
  • 删除多列:alter table 表名 drop xh,zc,ads;
  • 添加一个字段设主键约束:alter table 表名 add id sm unsigned primary key auto_increment;
  • 关联查询-等值查询:select * from 表名 where a.id=b.id and 条件
  • 内连接:select * from 表名1 inner join 表名2 on 表名1.xh=表名2.xh where 条件;
  • 左连接:select * from 表名1 left join 表名2 on 表名1.xh=表名2.xh where 条件;
  • 右连接:select * from 表名1 right join 表名2 on 表名1.xh=表名2.xh where 条件;

4. 创建索引

  • 原文链接:https://blog.csdn.net/dengchenrong/article/details/88425762
  • 1.要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引
  • 2.在经常需要进行检索的字段上创建索引,比如要按照表字段username进行检索
  • 3.一个表的索引数最好不要超过6个,若太多则应考虑一些不常使用到的列上建的索引是否有必要

普通索引(INDEX)

  • 这是最基本的索引,它没有任何限制,比如上文中为title字段创建的索引就是一个普通索引,MyIASM中默认的BTREE类型的索引,也是我们大多数情况下用到的索引。
  • 直接创建索引
CREATE INDEX index_name ON table(column(length));
  • 修改表结构的方式添加索引
ALTER TABLE table_name ADD INDEX index_name ON (column(length));
  • 创建表的时候同时创建索引
CREATE TABLE `table` (
	`id` int(11) NOT NULL AUTO_INCREMENT ,
	`title` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
	`content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL ,
	`time` int(10) NULL DEFAULT NULL ,
	PRIMARY KEY (`id`), //主键索引
	INDEX index_name (title(length)) //普通索引
);

唯一索引(UNIQUE)

  • 与普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须是唯一的,创建方法和普通索引类似。
  • 创建唯一索引
CREATE UNIQUE INDEX index_name ON table(column(length)); 
  • 修改表结构
ALTER TABLE table_name ADD UNIQUE INDEX index_name ON (column(length));
  • 创建表时同时创建索引
CREATE TABLE `table` (
	`id` int(11) NOT NULL AUTO_INCREMENT ,
	`title` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
	`content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL ,
	`time` int(10) NULL DEFAULT NULL ,
	PRIMARY KEY (`id`),
	UNIQUE indexName (title(length))
);

多列索引

  • 语句一般都有比较多的限制条件,所以为了进一步榨取MySQL的效率,就要考虑建立组合索引。例如上表中针对title和time建立一个组合
ALTER TABLE article ADD INDEX index_titme_time (title(50),time(10));
ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` );

全文索引(FULLTEXT)

ALTER TABLE `table_name` ADD FULLTEXT ( `column`); 

主键索引(PRIMARY KEY)

ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` );

有关Mysql常用命令详细大全的更多相关文章

  1. 华为常用命令 - 2

    system-view进入系统视图quit退到系统视图sysname交换机命名vlan20创建vlan(进入vlan20)displayvlan显示vlanundovlan20删除vlan20displayvlan20显示vlan里的端口20Interfacee1/0/24进入端口24portlink-typeaccessvlan20把当前端口放入vlan20undoporte1/0/10删除当前VLAN端口10displaycurrent-configuration显示当前配置02配置交换机支持TELNETinterfacevlan1进入VLAN1ipaddress192.168.3.100

  2. 使用canal同步MySQL数据到ES - 2

    文章目录一、概述简介原理模块二、配置Mysql使用版本环境要求1.操作系统2.mysql要求三、配置canal-server离线下载在线下载上传解压修改配置单机配置集群配置分库分表配置1.修改全局配置2.实例配置垂直分库水平分库3.修改group-instance.xml4.启动监听四、配置canal-adapter1修改启动配置2配置映射文件3启动ES数据同步查询所有订阅同步数据同步开关启动4.验证五、配置canal-admin一、概述简介canal是Alibaba旗下的一款开源项目,Java开发。基于数据库增量日志解析,提供增量数据订阅&消费。Git地址:https://github.co

  3. 7个大一C语言必学的程序 / C语言经典代码大全 - 2

    嗨~大家好,这里是可莉!今天给大家带来的是7个C语言的经典基础代码~那一起往下看下去把【程序一】打印100到200之间的素数#includeintmain(){ inti; for(i=100;i 【程序二】输出乘法口诀表#includeintmain(){inti;for(i=1;i 【程序三】判断1000年---2000年之间的闰年#includeintmain(){intyear;for(year=1000;year 【程序四】给定两个整形变量的值,将两个值的内容进行交换。这里提供两种方法来进行交换,第一种为创建临时变量来进行交换,第二种是不创建临时变量而直接进行交换。1.创建临时变量来

  4. 在VMware16虚拟机安装Ubuntu详细教程 - 2

    在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主

  5. ruby-on-rails - 无法安装 mysql2 0.3.14 gem - 2

    我看到其他人也遇到过类似的问题,但没有一个解决方案对我有用。0.3.14gem与其他gem文件一起存在。我已经完全按照此处指示完成了所有操作:https://github.com/brianmario/mysql2.我仍然得到以下信息。我不知道为什么安装程序指示它找不到include目录,因为我已经检查过它存在。thread.h文件存在,但不在ruby​​目录中。相反,它在这里:C:\RailsInstaller\DevKit\lib\perl5\5.8\msys\CORE\我正在运行Windows7并尝试在Aptana3中构建我的Rails项目。我的Ruby是1.9.3。$gemin

  6. ruby - 如何使用 ruby​​ mysql2 执行事务 - 2

    我已经开始使用mysql2gem。我试图弄清楚一些基本的事情——其中之一是如何明确地执行事务(对于批处理操作,比如多个INSERT/UPDATE查询)。在旧的ruby-mysql中,这是我的方法:client=Mysql.real_connect(...)inserts=["INSERTINTO...","UPDATE..WHEREid=..",#etc]client.autocommit(false)inserts.eachdo|ins|beginclient.query(ins)rescue#handleerrorsorabortentirelyendendclient.commi

  7. 100个python算法超详细讲解:画直线 - 2

    1.问题描述使用Python的turtle(海龟绘图)模块提供的函数绘制直线。2.问题分析一幅复杂的图形通常都可以由点、直线、三角形、矩形、平行四边形、圆、椭圆和圆弧等基本图形组成。其中的三角形、矩形、平行四边形又可以由直线组成,而直线又是由两个点确定的。我们使用Python的turtle模块所提供的函数来绘制直线。在使用之前我们先介绍一下turtle模块的相关知识点。turtle模块提供面向对象和面向过程两种形式的海龟绘图基本组件。面向对象的接口类如下:1)TurtleScreen类:定义图形窗口作为绘图海龟的运动场。它的构造器需要一个tkinter.Canvas或ScrolledCanva

  8. H2数据库配置及相关使用方式一站式介绍(极为详细并整理官方文档) - 2

    目录H2数据库入门以及实际开发时的使用1.H2数据库的初识1.1H2数据库介绍1.2为什么要使用嵌入式数据库?1.3嵌入式数据库对比1.3.1性能对比1.4技术选型思考2.H2数据库实战2.1H2数据库下载搭建以及部署2.1.1H2数据库的下载2.1.2数据库启动2.1.2.1windows系统可以在bin目录下执行h2.bat2.1.2.2同理可以通过cmd直接使用命令进行启动:2.1.2.3启动后控制台页面:2.1.3spring整合H2数据库2.1.3.1引入依赖文件2.1.4数据库通过file模式实际保存数据的位置2.2H2数据库操作2.2.1Mysql兼容模式2.2.2Mysql模式

  9. ruby-on-rails - 当我通过 rvm 使用 rails3 时,如何在 ubuntu 上安装 mysql2 gem? - 2

    我正在尝试绕过rails配置这个极其复杂的迷宫。到目前为止,我设法在ubuntu上设置了rvm(出于某种原因,ruby在ubuntu存储库中已经过时了)。我设法建立了一个Rails项目。我希望我的测试项目使用mysql而不是mysqlite。当我尝试“rakedb:migrate”时,出现错误:“!!!缺少mysql2gem。将其添加到您的Gemfile:gem'mysql2'”当我尝试“geminstallmysql”时,出现错误,告诉我需要为安装命令提供参数。但是,参数列表很大,我不知道该选择哪些。如何通过在ubuntu上运行的rvm和mysql获取rails3?谢谢。

  10. 华为ensp详细安装包、安装教程及所遇问题 - 2

    目录一、安装包链接二、安装详细步骤1.安装Wireshark和WinPcap2.安装OracleVMVirtualBox3.安装ensp三、安装后注册四、启动路由器出现40错误怎么解决一、安装包链接二、安装详细步骤链接:https://pan.baidu.com/s/1QbUUYMOMIV2oeIKHWP1SpA?pwd=xftx提取码:xftx1.安装Wireshark和WinPcap找到Wireshark安装包所在文件夹,双击它,按照以下步骤安装。2.安装OracleVMVirtualBox找到OracleVMVirtualBox安装包所在文件夹,双击它,按照以下步骤安装。注:可自定义安装

随机推荐