后台开发常用mysql语句_v1.0

目录

  • 一、基本信息查看
    • 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

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

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

相关文章

玩转oracle 11g(31):ora-04031

24. ORA-04031错误的解决办法 应用程序报错“ORA-04031错误” 原因分析&#xff1a; SGA 分配不足&#xff0c;32bit 最大的分配1.7G 解决方法&#xff1a; 增大sga 或操作系统和数据库版本升级到64bit

[众包]Eclipse 运行简单亚马逊AMT模板

教程 1.打开esclipe下载AMT 输入 https://aws.amazon.com/eclipse 下载后需要重启 需要自己在亚马逊先注册 填入分配的信息 注册教程 &#xff08;需要信用卡 激活 创建账号 &#xff09; https://docs.aws.amazon.com/zh_cn/AWSMechTurk/latest/AWSMechanicalTurkGetting…

jmap 文件解析_干货分享丨jvm系列:dump文件深度分析

摘要&#xff1a;java内存dump是jvm运行时内存的一份快照&#xff0c;利用它可以分析是否存在内存浪费&#xff0c;可以检查内存管理是否合理&#xff0c;当发生OOM的时候&#xff0c;可以找出问题的原因。那么dump文件的内容是什么样的呢&#xff1f;JVM dumpjava内存dump是jv…

GAN 的推导、证明与实现。

转自机器之心整理的&#xff0c;来自Goodfellow 在 NIPS 2016 的演讲和台大李弘毅的解释&#xff0c;完成原 GAN 的推导、证明与实现。 本文主要分四部分&#xff0c;第一部分描述 GAN 的直观概念&#xff0c;第二部分描述概念与优化的形式化表达&#xff0c;第三部分将对 GAN …

玩转oracle 11g(32):plsql版本低需到配置文件中添加配置

1创建了一个数据库geyao&#xff0c;但是只能显示docare 2plsql版本太低&#xff0c;或者直接修改 C:\app\MDSD\product\11.2.0\dbhome_2\NETWORK\ADMIN 添加配置文件 出现歌谣

[测试智能合约]ganache+metamask+remix

1.谷歌浏览器 下载metamask 2.设置metamask 增加一个7545端口的网络 3.导入账户 从ganache的accounts里面随便找个账户的私钥传进去 4.打开remix 修改environment 5.写好的智能合约编译 remix经常抽风 疯狂来回切换版本号或者换网络 6.黄色按钮Deploy 7.同一页面最下方 打开部署…

mysql datetime timestamp 索引_MYSQL中时间类型底层存储,DATETIME ,TIMESTAMP,INT 如何选择?...

在优化索引时&#xff0c;思考了一个问题&#xff0c;DATE, DATETIME, TIMESTAMP&#xff0c;还有INT存储的时间&#xff0c;在索引中哪个效率更高一些&#xff1f;索引存储的&#xff0c;如果单纯的测试&#xff0c;而不去了解底层存储的方式和类型就不能断言哪个类型的效率更…

Newtonsoft.Json反序列化(Deserialize)出错:Bad JSON escape sequence

使用Newtonsoft.Json反序列化收到的字串为JObject或其它支持的数据模型&#xff0c;有时错误&#xff0c;提示如下&#xff1a; Bad JSON escape sequence: \c. Path idno, line 5, position 34. 甚纳闷之。遂搜索资料&#xff0c;略有小获&#xff0c;其非法分界符所致。合法的…

玩转oracle 11g(33):无监听程序

故意操作删除监听 直接配置监听即可

[剑指offer]面试题第[2]题[JAVA][替换空格][函数][字符串]

【问题描述】 请实现一个函数&#xff0c;将一个字符串中的每个空格替换成“%20”。例如&#xff0c;当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 【解答思路】 找到空格替换空格 2.1 新建字符串&#xff0c;找到空格就替换&#xff0c;非空格添加原…

mysql安装条款_mysql 安装注意

mysql 远程连接赋予权限&#xff1a;GRANT ALL PRIVILEGES ON *.* TO root% IDENTIFIED BY datech WITH GRANT OPTION;FLUSH PRIVILEGES;MySQL 5.1采用了基于密码混编算法的鉴定协议&#xff0c;它与早期客户端(4.1之前)使用的协议不兼容。如果你将服务器升级到4.1之上&#xf…

LeetCode 三数之和 — 优化解法

LeetCode 三数之和 — 改进解法 题目&#xff1a;给定一个包含 n 个整数的数组 nums&#xff0c;判断 nums 中是否存在三个元素 a&#xff0c;b&#xff0c;c &#xff0c;使得 a b c 0 &#xff1f;找出所有满足条件且不重复的三元组。 注意&#xff1a;答案中不可以包含重…

[剑指offer]面试题第[3]题[JAVA][从尾到头打印链表][栈]

【问题描述】 输入一个链表&#xff0c;按链表从尾到头的顺序返回一个ArrayList。 /** * public class ListNode { * int val; * ListNode next null; * * ListNode(int val) { * this.val val; * } * } * */【解答思路】 1…

java学习(126):throw向上抛出异常

//throw抛出异常 import java.util.Scanner; public class test66{static class A {void d() throws Exception {int a, b, c;Scanner in new Scanner(System.in);System.out.println("亲输入a的值");a in.nextInt();System.out.println("请输入b的值");…

mysql存储过程并行_Mysql存储过程的执行顺序问题

Mysql存储过程的执行顺序问题SQL code:CREATE TABLE t_a (a_id int(11) NOT NULL AUTO_INCREMENT,a_name varchar(30) NOT NULL DEFAULT N/A,PRIMARY KEY (a_id)) ENGINEMyISAM DEFAULT CHARSETutf8;CREATE TABLE t_b (b_id int(11) NOT NULL AUTO_INCREMENT,b_name varchar(30…

remove()方法

remove()方法 描述 列表 remove() 方法通过指定元素的值来移除列表中某个元素的第一个匹配项&#xff0c;如果这个元素不在列表中会报一个异常。 语法 remove() 方法语法&#xff1a; L.remove(obj) 参数 obj -- 要从列表中移除的元素的值。返回值 该方法没有返回值&#xff0c…

[Java]集合的小抄 Java初学者必备

文章目录【背景】CollectionsListArrayList优势操作劣势操作LinkedList优势劣势最基本的两种检索集合中的所有对象的方法&#xff1a;CopyOnWriteArrayList补充说明StackMapMap 的常用方法&#xff1a;HashMapLinkedHashMapTreeMapConcurrentHashMapConcurrentSkipListMap补充说…

excel生成mysql语句_通过SQL语句直接实现Excel与数据库的导入导出

1、在SQL数据库中直接从Excel里面查询数据&#xff1a;select \* fromOPENROWSET(MICROSOFT.JET.OLEDB.4.0,Excel 5.0;HDRYES;DATABASEc:\\test.xls,sheet1$)2、从Excel文件中,导入数据到SQL数据库中,select \* into 表 from![](http://images.csdn.net/syntaxhighlighting/Out…

基础知识小记:

什么时候用这些循环&#xff1f; 1,、for(i;i<n;i) 知道循环的起止数, 循环中需要用到不断递增/递减的变量 2、for(String s:slist) 叫foreach循环, 遍历数组/集合中元素用的 为了减少代码量 3、while 不知道确切的循环次数, 但知道循环结束条件时使用 4、do while 先执行一…