后台开发常用mysql语句_v1.0
一、基本信息查看
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. 查询记录
- 简单查询
子句顺序:SELETC
、 FROM
、 WHERE
、 GROUP BY
、 HAVING
、 ORDER BY
、 LIMIT
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_name2
WHERE 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) 外部联结
SELECT
table_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`,
CASE
WHEN 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`
后台开发常用mysql语句_v1.0的更多相关文章
- 【PHP基础】常用mySQL语句以及WampServer2.2设置数据库默认编码
一.WampServer2.2设置数据库默认编码(此部分转自http://www.cnsecer.com/5984.html) wamp下MySQL的默认编码是Latin1,不支持中文,要支持中文的话 ...
- 常用MySQL语句整合
常用MySQL语句整合 1. MySQL服务的配置和使用 修改MySQL管理员的口令:mysqladmin –u root password 密码字符串 如:mysqldmin –u root pas ...
- discuz后台开发常用函数
showsetting()表单显示 返回值:无 参数: $setname - 指定输出标题,如:setting_basic_bbname, 自动匹配描述文字为:setting_basic_bbname ...
- Linux后台开发常用工具
内存分析工具valgrind valgrind辅助工具qcachegrind 可视化查看valgrind结果 淘宝DBA团队发布的监控脚本,使用perl开发,可以完成对linux系统和MySql相关指 ...
- 运维常用mysql语句
1..select @@version; ##查询当前mysql的版本. 2. show variables like 'port';##查看mysql实例的端口. 3.show variables ...
- 简单介绍几种Java后台开发常用框架组合
01 前言 Java框架一直以来都是面试必备的知识点,而掌握Java框架,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能对当前正在开发中的系统有整体的认知,从而更好的熟悉和学习技术,这篇 ...
- 网站开发常用Sql语句
维护网站,经常操作数据库,使用sql语句可以达到事半功倍的效果.比如,把所有密码为空的教师初始设成id一致,sql语句比手动快万倍. 下面介绍数据库开发中经常用到的一些sql语句: 一 建库操作 1. ...
- Linux后台命令导入MySQL语句
1.首先输入命令: mysql -u root -p 然后输入MySQL的密码会进入到MySQL的命令界面. 2.输入命令use+数据库名字: use databaseName 3.最后输入命令sou ...
- 常用MySQL语句(持续更新)
1. 客户端登录 在终端输入 mysql -u[用户名] -p[密码] 2. 数据库级别操作 // 创建数据库 create database [db name]; // 查看数据库列表 show d ...
随机推荐
- 关于linux下crontab mysql备份出来的数据为0字节的问题
问题出在计划任务所执行的脚本上! 脚本中的调用的指令应该都写全路径~ 实例: # crontab -c 编辑下的内容 30 18 * * * /root/backup.sh 意思为:每天18:30执行 ...
- 【洛谷 P2472】 [SCOI2007]蜥蜴 (最大流)
题目链接 简单网络流. 源点向蜥蜴连流量为\(1\)的边. 能跳出去的点向汇点连流量为\(INF\)的边. 把每个点拆成\(2\)个点,\(O(n^4)\)枚举两两点,如果距离小于等于\(d\),就互 ...
- redis笔记之两种持久化备份方式(RDB & AOF)
Redis支持的两种持久化备份方式(RDB & AOF) redis支持两种持久化方式,一种是RDB,一种是AOF. RDB是根据指定的规则定时将内存中的数据备份到硬盘上,AOF是在每次执行命 ...
- C - Contest Setting Gym - 101982C dp 补题
题目链接:https://vjudge.net/contest/273260#problem/C 学习了一下别人的思路,首先去重,然后离散化. dp数组开二维,每一次更新,状态转移方程,dp[ i ] ...
- windows+python3.6下安装fasttext+fasttext在win上的使用+gensim(fasttext)
真是坑了好久,faxttext对win并不是很友好,所以遇到了很多坑,记录下来,以供大家少走弯路. 法1:刚开始直接用pip install fasttext,最后一直报下面这个错误 “error:M ...
- 148.Sort List---链表排序(冒泡、归并)
题目链接 题目大意:对链表进行排序,要求时间复杂度是o(nlgn). 法一:冒泡,不交换结点,而交换结点中的数值.超时了.代码如下: public ListNode sortList(ListNode ...
- sendEmail实现邮件报警
安装 wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz 或者点击下载 tar -xf sen ...
- 关于函数strtok和strtok_r的使用要点和实现原理
strtok函数的使用是一个老生常谈的问题了.该函数的作用很大,争议也很大.以下的表述可能与一些资料有区别或者说与你原来的认识有差异,因此,我尽量以实验为证.交代一下实验环境是必要的,winxp+vc ...
- chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息
chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息.谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接. 使用语法:chkconfig [--ad ...
- entos 7 mailx配置163邮箱发送邮件
配置: .com .com set smtp-auth-user=wcczcl set smtp-auth=login set smtp-use-starttls set ssl-verify=ign ...