MySQL常用SQL总结
1. 常见命令
连接本地数据库与远程数据库(172.16.xx.xx:3306):
mysql -h localhost -u root -p123
mysql -h 172.16.xx.xx -P 3306 -u root -p
2. DDL
数据定义语言(Data Definition Lanuage, DDL)定义了数据库模式,包括CREATE、ALTER、DROP、TRUNCATE、COMMENT与RENAME语句。
创建(CREATE)
create语句创建了一张表:
CREATE TABLE `device_label` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键-自增长ID',
`origin_model` varchar(64) COLLATE utf8_bin NOT NULL COMMENT '收集机型',
`origin_vendor` varchar(64) COLLATE utf8_bin NOT NULL COMMENT '收集厂商',
`vendor` varchar(32) COLLATE utf8_bin NOT NULL COMMENT '标注厂商',
`model` varchar(32) COLLATE utf8_bin NOT NULL COMMENT '标注品牌',
PRIMARY KEY (`id`),
UNIQUE KEY `device_key` (`origin_model`,`origin_vendor`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='设备标注表';
修改(ALTER)
ALTER TABLE改变了表的结构,支持如下操作,
修改列类型与列名:
alter table device_label modify origin_model varchar(32);
alter table device_label change origin_model device_model varchar(16);
追加列:
alter table device_label add os_type varchar(8) COLLATE utf8_bin NOT NULL COMMENT '操作系统' after id;
修改列之间的顺序:
alter table device_label modify os_type varchar(8) after origin_model;
修改primary key:
alter table device_label drop primary key, add primary key (`origin_model`,`origin_vendor`);
清空(TRUNCATE)
TRUNCATE为清空表,相当于delete from 不指定where条件。
truncate device_label;
3. DCL
数据控制语言(Data Control Language, DCL)用于用户权限的管理,包括GRANT与REVOKE。
授权(GRANT)
MySQL有非常精细的权限控制:
- 权限有分类,比如:ALTER、CREATE、DROP、INSERT、SELECT等;
- 根据DB -> 表 -> 列对权限做了粗细粒度的划分;
- 对host(可通配符匹配)访问控制。
创建hive用户,并赋予以localhost访问 db1 所有表的权限:
CREATE USER 'hive'@'localhost' IDENTIFIED BY 'mypass';
GRANT ALL ON db1.* TO 'hive'@'localhost';
-- 可简写为
GRANT ALL ON db1.* TO 'hive'@'localhost' IDENTIFIED BY 'mypass';
-- access from IP 81.10.20.1 -> 81.10.20.14
GRANT ALL PRIVILEGES ON db1.* TO 'hive'@'81.10.20.1/255.255.255.240';
-- access from all host
GRANT ALL PRIVILEGES ON db1.* TO 'hive'@'%';
也可以只赋予某个表的select权限:
GRANT SELECT ON db2.invoice TO 'hive'@'localhost';
4. DML
数据定义语言(Data manipulation language, DML)主要用于表达数据库的查询与更新,主要包括增删改查(INSERT,UPDATE,DELETE,SELECT)。
增(INSERT)
增加行数据:
insert into device_label (origin_model, origin_vendor, vendor, model)
values (
'h9', 'bbk', '步步高', 'H9'
);
复制一个表到另外一个表:
insert into device_label_copy (`origin_model`, `origin_vendor`, `vendor`, `model`)
select `origin_model`, `origin_vendor`, `vendor`, `model`
from device_label;
此外,MySQL支持以load data方式将结构化的纯文本入库:
load data local infile 'dvc-label.csv'
into table device_label
fields terminated by '\t'
ignore 1 lines
(origin_model, origin_vendor, vendor, model);
若出现ERROR 1148 (42000)错误,则用mysql --local-infile -u user -ppasswd 命令进入mysql。
-------------------------------------------------------- 2016-08-16 更新 --------------------------------------------------------
在load excel处理后CSV文件时,需要加上lines terminated by '\r\n'。因为excel在处理数据时在行末尾加上控制字符。
改(UPDATE)
更新列的值:
update device_label
set origin_model = 't2', origin_vendor = 'xiami'
where vendor = '锤子';
删(DELETE)
根据where条件删除行:
delete from device_label where origin_vendor = 'alps';
查(SELECT)
查询标注机型数超过10的厂商:
select vendor, count(distinct model) as models
from device_label
group by vendor
having models > 10
MySQL常用SQL总结的更多相关文章
- Mysql 常用 SQL 语句集锦
Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...
- Mysql 常用 SQL 语句集锦 转载(https://gold.xitu.io/post/584e7b298d6d81005456eb53)
Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...
- MySQL常用SQL整理
MySQL常用SQL整理 一.DDL #创建数据库 CREATE DATABASE IF NOT EXISTS product DEFAULT CHARSET utf8 COLLATE utf8_ge ...
- mysql 常用 sql 语句 - 快速查询
Mysql 常用 sql 语句 - 快速查询 1.mysql 基础 1.1 mysql 交互 1.1.1 mysql 连接 mysql.exe -hPup ...
- php面试专题---MySQL常用SQL语句优化
php面试专题---MySQL常用SQL语句优化 一.总结 一句话总结: 原理,万变不离其宗:其实SQL语句优化的过程中,无非就是对mysql的执行计划理解,以及B+树索引的理解,其实只要我们理解执行 ...
- Mysql常用sql语句(一)- 操作数据库
21篇测试必备的Mysql常用sql语句,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1683347.html ...
- Mysql常用sql语句(二)- 操作数据表
21篇测试必备的Mysql常用sql语句,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1683347.html ...
- Mysql常用sql语句(八)- where 条件查询
测试必备的Mysql常用sql语句,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1683347.html 前言 ...
- Mysql常用sql语句(九)- like 模糊查询
测试必备的Mysql常用sql语句,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1683347.html 前言 ...
- Mysql常用sql语句(13)- having 过滤分组结果集
测试必备的Mysql常用sql语句,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1683347.html 前言 ...
随机推荐
- java学习笔记(2)
上篇讲了一些概念之类的知识点,现在继续总结知识点: 1.用户自己在控制面板输入内容是如何实现的:java中有一个类可实现这个功能 类Scanner: import java.util.Scanner; ...
- ecshop二次开发 商品分类描述编辑框
- jquery.ajax
var params = {};//定义一个数组 var USERNAME= $("#USERNAME").val(); params["USERNAME"]= ...
- 自定义cell右侧 多按钮
#import "ViewController.h" @interface ViewController () <UITableViewDataSource, UITable ...
- ASP.NET Core 文件上传
前言 上篇博文介绍了怎么样在 asp.net core 使用 Redis 和 Protobuf 进行 Session缓存.本篇的是开发过程中使用的一个小功能,怎么做单文件和多文件上传. 如果你觉得对你 ...
- 性能分析工具-PerfView
Roslyn的PM(程序经理) Bill Chiles,Roslyn使用纯托管代码开发,但性能超过之前使用C++编写的原生实现,这有什么秘诀呢?他最近写了一篇文章叫做<Essential Per ...
- Creating a Clean, Minimal-Footprint ASP.NET WebAPI Project with VS 2012 and ASP.NET MVC 4
Creating a Clean, Minimal-Footprint ASP.NET WebAPI Project with VS 2012 and ASP.NET MVC 4 Building O ...
- Ubuntu 安装OpenERP
网上的都TM不靠谱.... 1.用root登录,修改/etc/apt/sources.list 文件 sudo /etc/apt/sources.list u root 注意一定要加U root否则没 ...
- Module-Zero之启动模板
返回<Module Zero学习目录> 概览介绍 社交登录 基于Token的认证 单元测试 概览介绍 使用ABP和Module-Zero开始一个新的项目最简单的方式通过ABP官网的模板页面 ...
- C语言 · 求矩阵各个元素的和
问题描述 这里写问题描述. 输入格式 测试数据的输入一定会满足的格式. 例:输入的第一行包含两个整数n, m,分别表示矩阵的行数和列数.接下来n行,每行m个正整数,表示输入的矩阵. 输出格式 要求用户 ...