基本SQL命令
库管理
创建库(指定字符集):create database 库名 default charset = utf-8; 查看创建库的语句:show create database 库名; 切换库:use 库名; 查看当前所在库:select database(); 查看库中已有表:show tables; 删除库:drop database 库名;
表管理
创建表(指定字符集):CREATE TABLES 表名(字段名,数据类型,...)DEFAULT CHARSET = UTF-8; 查看创建表的语句(字符集和存储引擎):show create table 表名; 查看表结构:desc 表名; 删除表:drop table 表名; 表记录管理: 插入:insert into 表名 values(),(),...; insert into 表名(字段名列表) values(),(),...; 查询:select * from 表名; select 字段名1,字段名2,...from 表名; 删除:delete from 表名 where 条件; 更新:update 表名 set 字段名=值1,...where 条件; 表字段管理: 添加:alter table 表名 add 字段名 数据类型 first ; alter table 表名 add 字段名 数据类型 after 字段名; 修改:alter table 表名 drop 字段名; 字段重命名: alter table 表名 change 旧字段名 新字段名 数据类型; 表的重命名: alter table 表名 rename 新表名;
修改默认字符集
cd /etc/mysql/mysql.conf.d/ cp -p mysqld.cnf mysqld.cnf.bak vi mysqld.cnf [mysqld] character_set_server = utf-8 /etc/init.d/mysql restart
SQL查询
排序:order by 字段名 ASC/DESC 升序/降序 范围:limit m,n #放在最后 聚合函数:avg(),sum(),max(),min(),count(字段名)##Null不会被统计 分组:group by 过滤:having #having与group by联合使用,用来过滤由group by语句返回的记录集 #where只能操作表中实际存在的列,having则可以操作聚合函数生成的显示列 去重:distinct
索引
mysql索引的数据结构为B Tree
优点:可以加快数据的检索速度
缺点:需要动态维护,降低了数据的维护速度,索引占用物理空间
索引性能分析:
- 开启性能分析:set profiling = 1
- 创建索引字段: create index 索引名 on 表名(字段名)
- 执行sql命令
- 查看性能分析结果:show profiling
索引分类
普通索引:index 创建:create index 索引名 on 表名(字段名) 唯一索引:UNI,字段值可以为空,但不允许重复 创建:create unique index 索引名 on 表名(字段名) 删除:只能一个一个删 show index from 表名; drop index 索引名 on 表名; 主键索引:PRI,字段值不能为空且不允许重复 一个表中只能有一个字段为主键字段 创建:alter table 表名 add primary key(字段名) 删除:先删除自增长属性 alter table 表名 modify 字段名 数据类型; 删除主键 alter table 表名 drop primary key; 已有表添加主键索引:alter table 表名 motify 字段名 数据类型 auto_increment; 外键索引:让当前表字段值在另外一个表字段范围内去选择 创建:foreigin key(参考字段名) reference 被参考表名(被参考字段名) on delete 级联动作 on update 级联动作 alter table 表名 add foregin key(...)... 级联动作:cascade 同步更新 restrict 默认 set null no action 删除:alter table 表名 drop foreign key 外键名;
来源:https://www.cnblogs.com/miloli/p/12447436.html