sql:常用sql 语句整理一 (整体架构)

来源:互联网 发布:淘宝开店管理平台 编辑:程序博客网 时间:2024/06/05 19:01

今天总结一下常用的sql 语句:


1. 命令 连接数据库
连接本地数据库与远程数据库(112.26.xx.xx:3306):


mysql -h localhost -u root -p123 
mysql -h 112.26.xx.xx -P 3306 -u root -p
PS:u:用户名  P 端口   p:password


2. DDL  数据定义语言
数据定义语言(Data Definition Lanuage, DDL)定义了数据库模式,包括CREATE、ALTER、DROP、TRUNCATE、COMMENT与RENAME语句。
创建(CREATE)
create语句创建了一张表:




CREATETABLE`device_label` (
`id`int(11)NOTNULLAUTO_INCREMENT COMMENT '主键-自增长ID',
`origin_model`varchar(64)COLLATE utf8_bin NOTNULL COMMENT '收集机型',
`origin_vendor`varchar(64)COLLATE utf8_bin NOTNULL COMMENT '收集厂商',
`vendor`varchar(32)COLLATE utf8_bin NOTNULL COMMENT '标注厂商',
`model`varchar(32)COLLATE utf8_bin NOTNULL COMMENT '标注品牌',
PRIMARYKEY(`id`),
UNIQUEKEY`device_key` (`origin_model`,`origin_vendor`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULTCHARSET=utf8COLLATE=utf8_bin COMMENT='设备标注表';
改(ALTER)
ALTER TABLE改变了表的结构,支持如下操作,
修改列类型与列名:




alter table device_label modify origin_modelvarchar(32);
alter table device_label change origin_model device_model varchar(16);
追加列:




alter table device_label addos_type varchar(8)COLLATEutf8_binNOTNULLCOMMENT '操作系统'afterid;
修改列之间的顺序:


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有很精细的权限控制:
?细致的权限分类
?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'IDENTIFIEDBY'mypass';
也可以只赋予某个表的select权限:


GRANT SELECT ON db2.invoice TO'hive'@'localhost';
4. DML  数据操作语言 多用于CURD
数据操作语言(Data manipulation language, DML)主要用于表达数据库的查询与更新,主要包括增删改查(INSERT,UPDATE,DELETE,SELECT)。
增(INSERT)
增加行数据:


insert into device_label (origin_model, origin_vendor, vendor, model)
values(
'h9','bbk','步步高','H9'
);


改(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(distinctmodel)as models
from device_label
group by vendor
having models > 10


请大家多多指教!
下一篇 讲解比较高级一点的查询语句
原创粉丝点击