MySQL-其它整理
一:基本操作
插入
INSERT INTO 表名称 VALUES (值1, 值2,....);
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....);
更新
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值;
删除
DELETE FROM 表名称 WHERE 列名称 = 值;
TRUNCATE TABLE 表名称 ; #清空表
二:FOREIGN KEY 约束
一个表中的外键指向另一个表中的主键。用于预防破坏表之间连接的动作,也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。Persons 表中的 "Id_P" 列是 Persons表中的 主键,Orders表中的 "Id_P" 列是Orders表中的 外键。
CREATE TABLE `Orders` (
`Id_O` INT(11) NOT NULL,
`OrderNo` INT(11) NOT NULL,
`Id_P` INT(11) DEFAULT NULL,
PRIMARY KEY (`Id_O`),
KEY `Id_P` (`Id_P`),
FOREIGN KEY (`Id_P`) REFERENCES `Persons` (`Id_P`)
) ENGINE=INNODB DEFAULT CHARSET=utf8 CREATE TABLE `Persons` (
`Id_P` INT(11) NOT NULL,
`LastName` VARCHAR(50) DEFAULT NULL,
PRIMARY KEY (`Id_P`)
) ENGINE=INNODB DEFAULT CHARSET=utf8
三:UNIQUE 约束,用来约束列的唯一性,每个表可以有多个 UNIQUE 约束,但只能有一个 PRIMARY KEY 约束。
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (Id_P)
)
四:创建索引
本例会创建一个简单的索引,名为 "PersonIndex",在 Person 表的LastName 列:
CREATE INDEX PersonIndexON Person (LastName) ;
如果您希望以降序索引某个列中的值,您可以在列名称之后添加保留字DESC:
CREATE INDEX PersonIndexON Person (LastName DESC) ;
假如您希望索引不止一个列,您可以在括号中列出这些列的名称,用逗号隔开:
CREATE INDEX PersonIndexON Person (LastName, FirstName)
五:将表的主键值插入到其它列
UPDATE
`coupon` c1,
`coupon` c2
SET c1.`sequence_num` = c2.`coupon_id` WHERE c1.coupon_id = c2.coupon_id
六:将查出来的数据插入导指定表
INSERT INTO `activity_publicity_cust`(
`match_cust_id`,`is_delete`,`create_time`,`update_time`
)
SELECT
`match_cust_id`,
(SELECT 1) is_delete,
NOW() ce,
NOW() up
FROM `activity_match_cust` WHERE `match_id` IS NULL AND `customer_id` IS NULL
七:select查询执行顺序
(7) SELECT
(8) DISTINCT <select_list>
(1) FROM <left_table>
(3) <join_type> JOIN <right_table>
(2) ON <join_condition>
(4) WHERE <where_condition>
(5) GROUP BY <group_by_list>
(6) HAVING <having_condition>
(9) ORDER BY <order_by_condition>
(10) LIMIT <limit_number> SELECT执行顺序一共分为10步,最先执行FROM操作,最后执行LIMIT操作。其中每一次操作都会产生一张虚拟表作为下一个处理的输入,只是这些虚拟的表对用户来说是透明的,只有最后一个虚拟的表才会被作为结果返回。
#过程分析
1、FORM: 对FROM左表和右表计算笛卡尔积,产生虚表VT1。
2、ON: 对虚表VT1进行ON过滤,只有那些符合<JOIN-CONDITION>的行才会被记录在虚表VT2中。
3、JOIN: 如果指定了OUTER JOIN(比如left join、 RIGHT join),只有匹配的行才会被插入到虚拟表VT3中。
4、WHERE: 对虚拟表VT3进行WHERE条件过滤。只有符合<WHERE-CONDITION>的记录才会被插入到虚拟表VT4中。
5、GROUP BY: 根据group by子句中的列,对VT4中的记录进行分组操作,产生VT5。
6、HAVING: 对虚拟表VT5应用having过滤,只有符合<HAVING-CONDITION>的记录才会被 插入到虚拟表VT6中。
7、SELECT: 执行select操作,选择指定的列,插入到虚拟表VT7中。
8、DISTINCT: 对VT7中的记录进行去重。产生虚拟表VT8.
9、ORDER BY: 将虚拟表VT8中的记录按照<order_by_list>进行排序操作,产生虚拟表VT9.
10、LIMIT:取出指定行的记录,产生虚拟表VT10, 并将结果返回。
八:select case查询
SELECT
CASE counterType
WHEN 1 THEN 'CTP'
WHEN 2 THEN 'NULL'
WHEN 3 THEN '飞鼠'
ELSE 'default'
END AS counterName
FROM urls
九:SQL执行时间
#查询版本5.0之后支持
SELECT VERSION();
#查看profile是否开启
SHOW VARIABLES LIKE "%pro%" SET profiling =1;
SELECT 1;
SET profiling =1;
SELECT 2;
SHOW PROFILES; -- 语法:SHOW PROFILE FOR QUERY QUERY_ID 查询ID对应SQL执行时各个操作耗时
SHOW PROFILE FOR QUERY 497
-- 语法:SHOW PROFILE type FOR QUERY QUERY_ID, 可以查看SQL语句执行各种资源耗时
SHOW PROFILE ALL FOR QUERY 497 其中type:
ALL: 显示所有的开销信息
BLOCK IO : 显示块IO相关开销
CPU : 显示cpu 相关开销
IPC: 显示发送和接收相关开销
MEMORY: 显示内存相关开销
PAGE FAULTS:显示页面错误相关开销信息
SOURCE : 显示和Source_function ,Source_file,Source_line 相关的开销信息
SWAPS :显示交换次数相关的开销信息
十:开启自定义函数功能
-- 查看是否开启创建函数的功能
show variables like '%func%';
-- 开启创建函数的功能
set global log_bin_trust_function_creators = 1;
十一:tinyint类型
tinyint 型的字段如果设置为UNSIGNED类型,只能存储从0到255的整数,不能用来储存负数。
tinyint 型的字段如果不设置UNSIGNED类型,存储-128到127的整数。
1个tinyint型数据只占用一个字节;一个INT型数据占用四个字节。
MySQL-其它整理的更多相关文章
- MySQL基础整理(一)之SQL基础(未完成)
大家好,我是浅墨竹染,以下是MySQL基础整理(一)之SQL基础 1.SQL简介 SQL(Structure Query Language)是一种结构化查询语言,是使用关系模型的数据库应用语言. 2. ...
- MySQL 安全整理
MySQL 安全整理 关闭外网的端口访问. 使用高位的端口号. 如果需要外网访问不给最高的权限. 如果需要外网访问也是绑定客户端. To be continued
- PHP调用mysql函数整理
mysql函数整理 名称:mysql_connect() 用途:打开非持久的 MySQL 连接.如果成功,则返回一个 MySQL 连接标识,失败则返回 FALSE. 语法:mysql_connect( ...
- MySQL 语句整理 2019-5-3
MySQL 语句整理 在整理完Oracle的一些常见用语句后,由于MySQL的语法跟Oracle略有不同,随跟PN的MySQL视频进行了间接整理. 查询薪水大于1800, 并且部门编号为20或30的员 ...
- 最全mysql笔记整理
mysql笔记整理 作者:python技术人 博客:https://www.cnblogs.com/lpdeboke Windows服务 -- 启动MySQL net start mysql -- 创 ...
- Centos7搭建php+mysql环境(整理篇)
终于将mysql+php环境搭建成功,将之前的整理一下,环境:centos7,本机IP:192.168.1.24,数据库用户名及密码都设为root,测试文件路径:/var/www/html 1.取消c ...
- Mysql基本操作整理
1.登录数据库 格式: mysql -h主机地址 -u用户名 -p用户密码 –P端口 –D数据库 –e “SQL 内容”>mysql -uroot -p 数据库名称~~~~~~~~~~~~~~~ ...
- MysqL碎片整理优化
先来说一下什么是碎片,怎么知道碎片有多大! 简单的说,删除数据必然会在数据文件中造成不连续的空白空间,而当插入数据时,这些空白空间则会被利用起来.于是造成了数据的存储位置不连续,以及物理存储顺序与理论 ...
- MySQL 笔记整理(16) --“order by”是怎么工作的?
笔记记录自林晓斌(丁奇)老师的<MySQL实战45讲> (本篇内图片均来自丁奇老师的讲解,如有侵权,请联系我删除) 16) --“order by”是怎么工作的? 在林老师的课程中,第15 ...
- MySQL 笔记整理(1) --基础架构,一条SQL查询语句如何执行
最近在学习林晓斌(丁奇)老师的<MySQL实战45讲>,受益匪浅,做一些笔记整理一下,帮助学习.如果有小伙伴感兴趣的话推荐原版课程,很不错. 1) --基础架构,一条SQL查询语句如何执行 ...
随机推荐
- vue 3.0 vue-cli项目搭建要点
一.使用vue-cli搭建项目(可使用vue ui图形化界面搭建项目,配置dist时,将名称设为项目名称) 二.项目搭建后 1.配置vue.config.js // 翻阅文档https://cli.v ...
- 用三目运算,与if判断 函数调用 达到相同判定作用
三目运算符: 操作数1 ? 操作数2 : 操作数3 (操作数1位bool类型,操作数2和操作数3为两个相同的任何类型) 返回结果:如果操作数1判定结果为真,则将操作数2作为返回结果如果操作 ...
- P哥的桶(线段树+线性基)
https://www.luogu.org/problem/P4839 题目: 有两个操作 1 a b 在a的位置添加b数值 (注意一个位置可以有多个值) 2 a b : 在 a到b的范围任取任意 ...
- php面试专题---14、Linux基础考点
php面试专题---14.Linux基础考点 一.总结 一句话总结: php考linux其实也考不了很难 1.系统定时任务? crontab命令和 at命令 crontab命令 crontab -e ...
- Only variables should be passed by reference
报错位置代码: $status->type = array_pop(explode('\\',$status->type)) (此处$status->type值原本是 APP\ ...
- Python基础学习:operator模块
operator——函数的标准操作 转自:https://blog.csdn.net/zhtysw/article/details/80510113 代码资源:Lib/operator.py oper ...
- 接口自动化之cookies登录
现在有很多网站有验证码,跳过验证码实现登录可以使用cookies登录 目录 1.requests的添加cookies的方法 2.举个栗子 1.requests的添加cookies的方法 request ...
- canvas绘制随机颜色的柱形图
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- poj3280Cheapest Palindrome
给定一个字符串S,字符串S的长度为M(M≤2000),字符串S所含有的字符的种类的数量为N(N≤26),然后给定这N种字符Add与Delete的代价,求将S变为回文串的最小代价和. Input 第一行 ...
- 编程语言-Ruby-问题整理
安装 https://github.com/oneclick/rubyinstaller2/releases/tag/RubyInstaller-2.6.0-1