目录

  • 一、基本信息查看

    • 1. 表描述
  • 二、表操作
    • 1. 查看建表语句
    • 2.查看表
    • 3. 创建表
    • 4. 更新表
    • 5. 删除表
    • 6. 重命名表
  • 三、索引操作
    • 1. 查看索引
    • 2. 创建索引
    • 3. 修改索引
    • 4. 删除索引
  • 四、记录操作
    • 1. 查询记录
    • 2. 添加记录
    • 3. 更新记录
    • 4. 删除记录

一、基本信息查看

1. 表描述

DESCRIBE `table_name`;

二、表操作

1. 查看建表语句

SHOW CREATE TABLE `table_name`;

2.查看表

SHOW TABLES;

3. 创建表

CREATE TABLE `table_name` (`c_id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '唯一ID',`c_is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除',`c_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',`c_create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',PRIMARY KEY (`c_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='table_name'
CREATE TABLE IF NOT EXISTS `table_name` (`c_id` bigint(20) unsigned NOT NULL COMMENT '唯一ID',`c_uid` char(11) NOT NULL DEFAULT '' COMMENT 'uid列',`c_char` char(11) NOT NULL DEFAULT '' COMMENT 'char列',`c_varchar1` varchar(30) NOT NULL DEFAULT '' COMMENT 'varchar列',`c_varchar2` varchar(300) CHARACTER SET utf8mb4 NOT NULL DEFAULT '' COMMENT 'varchar列,单独设置字符集',`c_text` text CHARACTER SET utf8mb4 NOT NULL COMMENT 'text列,单独设置字符集',`c_tinyint` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'tinyint,当枚举用(0A 1B 2C)',`c_enum` enum('0','1') NOT NULL DEFAULT '0' COMMENT 'enum,枚举用',`c_json` json NOT NULL COMMENT 'json类型列',`c_is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除',`c_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',`c_create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',PRIMARY KEY (`c_id`),KEY `inx_c_uid` (`c_uid`) USING BTREE,UNIQUE KEY `udx_c1_c2` (`c_char`,`c_tinyint`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='table_name';

4. 更新表

  • 增加列
ALTER TABLE `table_name` ADD `c_column` tinyint(1) not null DEFAULT 0 COMMENT '新增列';
  • 修改列
ALTER TABLE `table_name` MODIFY COLUMN `c_varchar1` VARCHAR ( 300 ) NOT NULL DEFAULT '' COMMENT '标识符' AFTER `c_varchar2`;
  • 删除列
ALTER TABLE `table_name` DROP COLUMN `c_column`;

5. 删除表

DROP TABLE if EXISTS `table_name`;

6. 重命名表

RENAME TABLE `table_name` TO `table_name_2`;

三、索引操作

1. 查看索引

SHOW INDEX FROM table_name [FROM db_name]

2. 创建索引

  • 语法
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
[USING index_type]
ON table_name (index_col_name, ...)
CREATE UNIQUE INDEX idx_uid ON `table_name` (`c_uid`);-- TEXT和BLOB要指定长度
CREATE UNIQUE INDEX idx_text ON `table_name` (`c_text`(6));
  • ALTER TABLE方式
ALTER TABLE table_name
ADD [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name (index_col_name,...) [USING index_type]
ALTER TABLE `table_name` ADD PRIMARY KEY ( `c_uid` )ALTER TABLE `table_name` ADD INDEX `udx_c1_c2` ( `c_char`(n), `c_tinyint` ) USING BTREE;

3. 修改索引

ALTER TABLE `table_name` DROP INDEX `udx_c1_c2`,
ADD INDEX `udx_c1_c2` ( `c_char`, `c_tinyint`, `c_is_deleted` ) USING HASH;

4. 删除索引

ALTER TABLE table_name DROP PRIMARY KEY;DROP INDEX `idx_name` ON `table_name`;ALTER TABLE `table_name` DROP INDEX `udx_c1_c2`;

四、记录操作

1. 查询记录

  • 简单查询

子句顺序:SELETCFROMWHEREGROUP BYHAVINGORDER BYLIMIT

SELECT * FROM table_name WHERE ... ORDER BY c_column1,c_column2 DESC;
  • 模糊查询
    特殊字符要转义% _
SELECT * FROM table_name WHERE c_column LIKE CONCAT('first','second','third');SELECT * FROM table_name WHERE c_column LIKE CONCAT('%','_','%');
  • 分组查询

    WHERE过滤行, HAVING过滤分组

SELECT GROUP_CONCAT(c_column) FROM table_name WHERE c_is_deleted=0 GROUP BY c_column1, c_column2 HAVING COUNT(c_column3) >= 2;-- 可能报错:incompatible with sql_mode=only_full_group_by
SELECT GROUP_CONCAT(c_column) FROM table_name WHERE c_is_deleted=0 GROUP BY c_column1, c_column2 HAVING COUNT(c_column3) >= 2 ORDER BY c_order DESC;SELECT GROUP_CONCAT(c_id),COUNT(*) FROM table_name GROUP BY c_type WITH ROLLUP;
  • 分页查询

    检索出来的第一行为行0而不是行1。

-- 查询两条记录,开始行1
SELECT * FROM table_name LIMIT 1, 2;
  • 计算字段和函数

(1)计算字段

SELECT 1+1 AS result;SELECT CONCAT('first', c_column, 'third') AS c_alias_name FROM table_name;SELECT CONCAT('first', TRIM(c_column), 'third') AS c_alias_name FROM table_name;

(2)处理函数

SELECT UUID() AS `uid`;SELECT UPPER('a');SELECT DATE(c_create_time) AS `date`, TIME(c_create_time) AS `time` FROM table_name;

(3)聚集函数

SELECT COUNT( * ),MIN( c_column ),MAX( c_column ),AVG( c_column )
FROM table_name;SELECT SUM( c_column1 * c_column2 )
FROM table_name;
  • 子查询
SELECT *
FROM table_name1
WHERE c_column IN ( SELECT c_column FROM table_name2WHERE c_is_deleted = 1 );-- 计算字段作为子查询
SELECT table_name1.c_name,( SELECT COUNT( * ) FROM table_name2 WHERE table_name2.c_key = table_name1.c_key ) AS nums
FROM table_name1
WHERE c_is_deleted = 0;
  • 联结查询

(1) 自联结

SELECT t1.c_id, t1.c_name
FROM table_name AS t1, table_name AS t2
WHERE t1.c_id = t2.c_id
AND t2.c_key = '';

(2) 自然联结

SELECT t1.c_id, t1.c_name
FROM table_name1 AS t1, table_name2 AS t2
WHERE t1.c_id = t2.c_id
AND t2.c_key = '';

(3) 外部联结

SELECTtable_name1.c_id,table_name1.c_name,table_name2.c_name
FROM table_name1
LEFT JOIN table_name2 ON table_name2.c_key = table_name1.c_key
WHERE ...;
  • 查询结果case when then else end用法

(1) 语法

--简单Case函数
CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他'
END 
--Case搜索函数,
CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他'
END 

(2) 示例

SELECT `name`,
CASE `name` WHEN 'sam' THEN 'yong' WHEN 'lee' THEN 'handsome' ELSE 'good'
END AS `alias`
FROM `table_name`;SELECT `name`,
CASEWHEN birthday < '1981' THEN 'old' WHEN birthday > '1988' THEN 'yong' ELSE 'ok'
END AS `yorn`
FROM `table_name`;

2. 添加记录

  • 简单插入
INSERT INTO table_name ( column1, column2 ) VALUES ( value1, value2 );
  • 批量插入
INSERT INTO table_name ( column1, column2 )
VALUES( value1, value2 ),( value1, value2 );
  • INSERT SELECT插入
INSERT INTO table_name ( column1, column2 )SELECT column1, column2 FROM table_name WHERE c_id=1;

3. 更新记录

UPDATE `table_name`
SET `c_varchar1` = 'string',`c_update_time` = CURRENT_TIMESTAMP
WHERE `c_id` = 1;

4. 删除记录

  • DELETE方式
DELETE FROM `table_name` WHERE `c_id`=1;
  • TRUNCATE方式-清空表-慎用
 -- 删除原表再新建表TRUNCATE TABLE `table_name`

转载于:https://www.cnblogs.com/flylinran/p/10171508.html

后台开发常用mysql语句_v1.0相关推荐

  1. Linux 后台开发常用命令目录(更新 ing)

    文章目录 前言 帮助命令 进程与作业管理 文本查看 文本编辑 编程相关 系统管理 文件传输 网络管理 文件与目录管理 磁盘管理 权限管理 用户与组管理 备份压缩 代码版本控制 性能检测 实用工具 前言 ...

  2. php常用mysql语句_PHP中常用MySql操作语句

    PHP中常用的几个 mysql 语句 显示数据库或表: show databases;//然后可能use database_name; show tables; 更改表名: alter table t ...

  3. 反编译linux内核_Linux 后台开发常用调试工具

    01 总览 编译阶段 nm 获取二进制文件包含的符号信息 strings 获取二进制文件包含的字符串常量 strip 去除二进制文件包含的符号 readelf 显示目标文件详细信息 objdump 尽 ...

  4. Linux 后台开发常用调试工具

    来源:李海彬 https://urlify.cn/VF7V7v 01 总览 编译阶段 nm                 获取二进制文件包含的符号信息 strings           获取二进制 ...

  5. crash工具解析_Linux 后台开发常用调试工具

    shell脚本-变量_Linux 基础_JAVA架构师-创客学院 01 总览 编译阶段 nm 获取二进制文件包含的符号信息 strings 获取二进制文件包含的字符串常量 strip 去除二进制文件包 ...

  6. java inputtools_Java后台开发常用工具类

    本文涉及的工具类部分是自己编写,另一部分是在项目里收集的.工具类涉及数据库连接.格式转换.文件操作.发送邮件等等.提高开发效率,欢迎收藏与转载. 数据库连接工具类 数据库连接工具类--仅仅获得连接对象 ...

  7. 50个常用mysql语句_50个常用的sql语句

    50个常用的sql语句 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,T ...

  8. 面试常用mysql语句_50个常用的笔试、面试sql语句

    50个常用的笔试.面试sql语句Posted on 50个常用的笔试.面试sql语句 2009-12-17 15:05 Student(S#,Sname,Sage,Ssex) 学生表 Course(C ...

  9. mysql语句命令_常用MySQL语句(命令行)

    # 命令行客户端MySQLMySQL是一个关系型数据库管理系统 安装MySQL服务端软件使用: sudo apt-get install mysql-server 安装MySQL客户端软件使用: su ...

最新文章

  1. C面向对象之透明指针的运用
  2. 在qemu模拟的aarch32上使用kgtp
  3. mysql查询时间between and_Mysql中用between...and...查询日期时注意事项
  4. 语言关键字特别注意没有_从零开始写文本编辑器(三十三):前20名编程语言的关键字...
  5. SQLite 运算符(http://www.w3cschool.cc/sqlite/sqlite-operators.html)
  6. CodeForces - 888G Xor-MST(贪心+字典树+最小生成树)
  7. line-height 属性
  8. 浅谈Dynamic 关键字系列之三(下):ExpandoObject,DynamicObject,DynamicMetaObject
  9. 揭开伟大架构师的秘密
  10. 安装MySql报错(This application requires .NET Framework x.x.x)
  11. jq获取验证码成功之后弹出的提示框_验证码填写错误,请重新填写。。。
  12. 书评第001篇:《C++黑客编程揭秘与防范》
  13. 2020年“华为杯”中国研究生数学建模竞赛题目及简单分析
  14. abb机器人伺服电机报闸是什么_什么是抱闸电机
  15. 操作系统 | Linux基础教程
  16. 【iOS逆向与安全】frida-trace入门
  17. excel填充序列_数据太多输不完?Excel自动填充帮你搞定
  18. win10 nginx部署前端项目(静态资源服务器和HTML)
  19. 全基因DNA甲基化检测“金标准”--- 改进版简化基因组甲基化测序
  20. 【漏洞发现-sql注入】有回显注入--sqli-labs

热门文章

  1. 利用闭包实现onclick事件传递参数
  2. CSS之media query模板
  3. GitHub上有哪些比较好的计算机视觉/机器视觉的项目?
  4. java为何重复调用方法_通过反射调用Java中的getter:重复调用它的最快方法是什么(在性能和可伸缩性方面)?...
  5. laravel常用响应操作
  6. [05] Session概要
  7. Web开发入门疑问收集(不定期更新)
  8. Ruby学习-第二章
  9. maya计算机内存不足请保存,Maya内存不足不能渲染怎么优化场景?
  10. fastjson导致的OOM