MySQL基本操作指令

MySQL

注: MySQL对大小写不敏感, 需要对大小检索, 使用关键字binary, "[]"中内容为可选内容; table_name, tableName表示表名, columnName表示列名, DataType表示表中列数据类型, 粗体部分表示关键字

  1. 创建数据库: create database [if not exits] 数据库名;
  2. 删除数据库: drop databases 数据库名;
  3. 使用数据库: use 数据库名;
  4. 创建数据表: create table 数据表(column_name1 column_type,…);
  5. column字段添加: not null#不为空, auto_increment#自增, primary key#主键, engine#储存引擎, charset#设置编码
  6. 删除表: drop table table_name;
  7. 表中插入数据:insert into table_name(field1,field2…)values(value1,value2…); 字符串使用双引号, 插入多条记录 insert into table_name(field1,field2,…)values(valueA1…),(valueB1…)…;
  8. insert ignore into与insert into的区别: 如果当前表限制插入重复数据, 那么insert ignore into会忽略你要插入的重复数据返回以个警告, 而insert into不会忽略, 依旧插入, 直到SQL语句报错
  9. 检索:select column_name1,column_name2 from table_name[where Clause][limit n][offset m]; limit设定返回记录数, offet指定select检索数据开始的偏移量
  10. where使用:类似于编程语言中的if, 可使用">,<,!=,>=,<="具有条件性的选取数据, 可用于delete/update(删除/修改);
  11. 修改表中数据:update table_name set field1=new_value1, field2=new_value2…[where Clause]
  12. 删除表中记录: delete from table_name[where Clause]; 操作行记录, 没有where, 表中所有记录全被删除
  13. 模糊搜索:select field1, filed2…fieldN from table_name where field1 like condition1 [and [or]] field2=‘somevalue’; 通常将like与"% 下划线"结合使用, “%” 表示任意字符与unix正则表达式中 “*” 差不多, “下划线"表示字符只出现一次, 不使用”% _“进行模糊判断时, like的效果与”="一致
  14. 连接两个select语句结果组合到一个集合中(就所谓的求两个结果在指定词条下的交集),union具有删除重复数据的功能: select expression1…expressionN from tables [where conditions] union [all|distinct] select expression1…expressionN from tables [where conditions]; expression1: 要检索的列, tables:要检索的数据表, all:返回所有结果集,包含重复数据, distinct: 默认已经删除重复数据, distinct对结果没有影响
  15. 排序:select field1…fieldN from table_name1…table_nameN order by field,[field2…][asc[desc]] where [like]; 使用任何字段作为排序条件,asc:升序, desc:降序 ; 数据默认为升序排列
  16. 根据一个或多个列结果集进行分组: select column_name,function(column_name) from table_name where column_name operator value group by column_name; 在分组的列上我们可以使用count, sum, avg等函数, 例:select name,cout(*) from employee group by name;将employee中name出现的次数做一个统计, 注:可以使用with rollup在实现分组的基础上再进行统计(sum,avg,count…), group by后面的字段必须与select处的字段一致
  17. 数据表连接,在两个或多个表中查询数据: inner join(内连接):获取两个表中字段关系的记录可以省略,求交集inner, left join(左连接):获取左表记录,即使右表没有对应匹配的记录, right join(右连接):与左连接相反
  18. null处理: 表中记录为null时, where只能采用is null或者 is not null 来进行判断, 而不能使用=null或者!=null判断
  19. MySQL事务: 用于处理操作量大,复杂度高的数据, 维护数据库完整性
  20. 默认情况下,事务自动提交(执行完SQL,自动执行commit), 显示开启事务使用begin ,start transaction, set autocommit=0禁止自动提交
  21. 回滚结束用户事务,撤销正在进行的所有未提交的修改: rollback/rollback work;
  22. 在事务中创建一个保存点,允许有多个保存点:savepoint identifier;
  23. 删除事务保存点,没有指定保存点执行会抛出异常:release savepoint identifier;
  24. 把事务回滚到标记点:rollback to identifier;
  25. 设置事务隔离级别: set transaction;
  26. MySQL Alter 修改数据:
  27. 添加表字段: alter table table_name add column_name DataType; #添加后的字段可在DataType后面使用 first/after固定字段在第一列或者在某一列之后
  28. 删除表字段: alter table table_name drop column_name; #数据表中只剩下一个字段无法删除当前字段
  29. 修改字段类型: alter table table_name modify column_name New_DataType;
  30. 使用change修改字段名,新字段名后面必须指定类型:alter table table_name change column_name NewColumn_name ColumnDataType;
  31. 修改字段后可指定字段是否包含默认值/not null;
  32. 设置字段默认值: alter table table_name alter column_name set default value;
  33. 删除字段默认值:alter table table_name alter column_name drop default;
  34. 修改表名: alter table table_name rename to Newtable_name;
  35. 创建普通索引: create index indexName on table_name(username(length));
  36. 修改表结构添加索引: alter table table_name add index indexName(columnName);
  37. 单列索引:一个索引只包含单个列; 组合索引: 一个索引包含多个列
  38. 创建表的时候直接指定: create table table_name(… index [index_name] (userName(length)));
  39. 删除索引: drop index [indexName] on table_name;
  40. 创建唯一索引(索引值必须唯一,可为null) ,组合索引,列值必须唯一: create unique index indexName on tableName(userName(length)); #唯一索引相比于普通索引就添加一个unique, 在唯一索引中插入相同数据会出错
  41. 使用alter添加/删除索引:alter table tableName add primary key(columnList);#索引值必须唯一不能为空 alter table tableName add unique indexName(columnList);#创建的索引值必须是唯一的 alter table tableName add index indexName(columnList);#添加普通索引,索引值可出现多次 alter table tableName add fulltext indexName(columnList);#指定索引值为fulltext,用于全文索引; 删除就在index indexName前面添加drop
  42. 显示索引信息:show index from tableName;
  43. alter添加/删除主键: 在primary key 主键名前面添加 add/drop
  44. MySQL临时表:保存一些临时数据, 临时表只在当前连接可见, 关闭连接, MySQL会自动删除并释放所有空间
  45. 临时表创建:create temporary table tableName(columnName DataType…); 创建完成后使用show tables是无法查看临时表, 它只在当前连接可见; 删除使用drop table tableName
  46. 服务器版本信息:select version() 当前数据库名:select database() 当前用户名:select user()
  47. 服务器状态: show status; 服务器配置变量: show variables
  48. 查看当前数据库下包含数据表情况:show tables;
  49. 查看指定数据表的表结构: desc 表名;
  50. 重置序列: 当删除使用auto_increment列中记录会导致序列出错, 需要重写对该列使用auto_increment, 使用auto_increment=value; 指定开始值
  51. 统计重复数据: 首先确定那一列会出现重复记录,在列选择列表使用count(*)列出那些列或者使用group by列出那些列, 最后将having子句设置重复数大于1; 例:SELECT COUNT(*) as repetitions, last_name, first_name
    -> FROM person_tbl
    -> GROUP BY last_name, first_name
    -> HAVING repetitions > 1;
  52. 过滤重复数据: 使用distinct/group by, 例: select distinct columnName from tableName 或者select columnName from tableName group by columnName;
  53. 删除重复数据: 可以使用为表添加index或者primary key

注: 一部分内容, 在后期进行修改和补充, 有错误的地方还请指出

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值