MySQL常用基本SQL语句总结
1.常见命令
连接本地数据库与远程数据库(172.16.xx.xx:3306):
mysql-hlocalhost-uroot-p123 mysql-h172.16.xx.xx-P3306-uroot-p
2.DDL
数据定义语言(DataDefinitionLanuage,DDL)定义了数据库模式,包括CREATE、ALTER、DROP、TRUNCATE、COMMENT与RENAME语句。
创建(CREATE)
create语句创建了一张表:
CREATETABLE`device_label`( `id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'主键-自增长ID', `origin_model`varchar(64)COLLATEutf8_binNOTNULLCOMMENT'收集机型', `origin_vendor`varchar(64)COLLATEutf8_binNOTNULLCOMMENT'收集厂商', `vendor`varchar(32)COLLATEutf8_binNOTNULLCOMMENT'标注厂商', `model`varchar(32)COLLATEutf8_binNOTNULLCOMMENT'标注品牌', PRIMARYKEY(`id`), UNIQUEKEY`device_key`(`origin_model`,`origin_vendor`) )ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8COLLATE=utf8_binCOMMENT='设备标注表'; 改(ALTER)
ALTERTABLE改变了表的结构,支持如下操作,
修改列类型与列名:
altertabledevice_labelmodifyorigin_modelvarchar(32); altertabledevice_labelchangeorigin_modeldevice_modelvarchar(16);
追加列:
altertabledevice_labeladdos_typevarchar(8)COLLATEutf8_binNOTNULLCOMMENT'操作系统'afterid;
修改列之间的顺序:
altertabledevice_labelmodifyos_typevarchar(8)afterorigin_model;
修改primarykey:
altertabledevice_labeldropprimarykey,addprimarykey(`origin_model`,`origin_vendor`);
清空(TRUNCATE)
TRUNCATE为清空表,相当于deletefrom不指定where条件。
truncatedevice_label;
3.DCL
数据控制语言(DataControlLanguage,DCL)用于用户权限的管理,包括了GRANT与REVOKE命令。
授权(GRANT)
MySQL有很精细的权限控制:
•细致的权限分类
•DB->表->列,权限的粗细粒度
•对host(可通配符匹配)控制
创建hive用户,并赋予以localhost访问db1所有表的权限:
CREATEUSER'hive'@'localhost'IDENTIFIEDBY'mypass'; GRANTALLONdb1.*TO'hive'@'localhost'; --可简写为 GRANTALLONdb1.*TO'hive'@'localhost'IDENTIFIEDBY'mypass';
也可以只赋予某个表的select权限:
GRANTSELECTONdb2.invoiceTO'hive'@'localhost';
4.DML
数据定义语言(Datamanipulationlanguage,DML)主要用于表达数据库的查询与更新,主要包括增删改查(INSERT,UPDATE,DELETE,SELECT)。
增(INSERT)
增加行数据:
insertintodevice_label(origin_model,origin_vendor,vendor,model) values( 'h9','bbk','步步高','H9' );
复制一个表到另外一个表:
insertintodevice_label_copy(`origin_model`,`origin_vendor`,`vendor`,`model`) select`origin_model`,`origin_vendor`,`vendor`,`model` fromdevice_label;
此外,MySQL支持以loaddata方式将结构化的纯文本入库:
loaddatalocalinfile'dvc-label.csv' intotabledevice_label fieldsterminatedby',' ignore1lines (origin_model,origin_vendor,vendor,model);
若出现ERROR1148(42000)错误,则用mysql--local-infile-uuser-ppasswd命令进入mysql。
改(UPDATE)
更新列的值:
updatedevice_label setorigin_model='t2',origin_vendor='xiami' wherevendor='锤子';
删(DELETE)
根据where条件删除行:
deletefromdevice_labelwhereorigin_vendor='alps';
查(SELECT)
查询标注机型数超过10的厂商:
selectvendor,count(distinctmodel)asmodels fromdevice_label groupbyvendor havingmodels>10
以上所述是小编给大家介绍的MySQL常用基本SQL语句总结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!