MySQL基本操作指令
MySQL
注: MySQL对大小写不敏感, 需要对大小检索, 使用关键字binary, "[]"中内容为可选内容; table_name, tableName表示表名, columnName表示列名, DataType表示表中列数据类型, 粗体部分表示关键字
- 创建数据库: create database [if not exits] 数据库名;
- 删除数据库: drop databases 数据库名;
- 使用数据库: use 数据库名;
- 创建数据表: create table 数据表(column_name1 column_type,…);
- 为column字段添加: not null#不为空, auto_increment#自增, primary key#主键, engine#储存引擎, charset#设置编码
- 删除表: drop table table_name;
- 表中插入数据:insert into table_name(field1,field2…)values(value1,value2…); 字符串使用双引号, 插入多条记录 insert into table_name(field1,field2,…)values(valueA1…),(valueB1…)…;
- insert ignore into与insert into的区别: 如果当前表限制插入重复数据, 那么insert ignore into会忽略你要插入的重复数据返回以个警告, 而insert into不会忽略, 依旧插入, 直到SQL语句报错
- 检索:select column_name1,column_name2 from table_name[where Clause][limit n][offset m]; limit设定返回记录数, offet指定select检索数据开始的偏移量
- where使用:类似于编程语言中的if, 可使用">,<,!=,>=,<="具有条件性的选取数据, 可用于delete/update(删除/修改);
- 修改表中数据:update table_name set field1=new_value1, field2=new_value2…[where Clause]
- 删除表中记录: delete from table_name[where Clause]; 操作行记录, 没有where, 表中所有记录全被删除
- 模糊搜索:select field1, filed2…fieldN from table_name where field1 like condition1 [and [or]] field2=‘somevalue’; 通常将like与"% 下划线"结合使用, “%” 表示任意字符与unix正则表达式中 “*” 差不多, “下划线"表示字符只出现一次, 不使用”% _“进行模糊判断时, like的效果与”="一致
- 连接两个select语句结果组合到一个集合中(就所谓的求两个结果在指定词条下的交集),union具有删除重复数据的功能: select expression1…expressionN from tables [where conditions] union [all|distinct] select expression1…expressionN from tables [where conditions]; expression1: 要检索的列, tables:要检索的数据表, all:返回所有结果集,包含重复数据, distinct: 默认已经删除重复数据, distinct对结果没有影响
- 排序:select field1…fieldN from table_name1…table_nameN order by field,[field2…][asc[desc]] where [like]; 使用任何字段作为排序条件,asc:升序, desc:降序 ; 数据默认为升序排列
- 根据一个或多个列结果集进行分组: 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处的字段一致
- 数据表连接,在两个或多个表中查询数据: inner join(内连接):获取两个表中字段关系的记录可以省略,求交集inner, left join(左连接):获取左表记录,即使右表没有对应匹配的记录, right join(右连接):与左连接相反
- null处理: 表中记录为null时, where只能采用is null或者 is not null 来进行判断, 而不能使用=null或者!=null判断
- MySQL事务: 用于处理操作量大,复杂度高的数据, 维护数据库完整性
- 默认情况下,事务自动提交(执行完SQL,自动执行commit), 显示开启事务使用begin ,start transaction, set autocommit=0禁止自动提交
- 回滚结束用户事务,撤销正在进行的所有未提交的修改: rollback/rollback work;
- 在事务中创建一个保存点,允许有多个保存点:savepoint identifier;
- 删除事务保存点,没有指定保存点执行会抛出异常:release savepoint identifier;
- 把事务回滚到标记点:rollback to identifier;
- 设置事务隔离级别: set transaction;
- MySQL Alter 修改数据:
- 添加表字段: alter table table_name add column_name DataType; #添加后的字段可在DataType后面使用 first/after固定字段在第一列或者在某一列之后
- 删除表字段: alter table table_name drop column_name; #数据表中只剩下一个字段无法删除当前字段
- 修改字段类型: alter table table_name modify column_name New_DataType;
- 使用change修改字段名,新字段名后面必须指定类型:alter table table_name change column_name NewColumn_name ColumnDataType;
- 修改字段后可指定字段是否包含默认值/not null;
- 设置字段默认值: alter table table_name alter column_name set default value;
- 删除字段默认值:alter table table_name alter column_name drop default;
- 修改表名: alter table table_name rename to Newtable_name;
- 创建普通索引: create index indexName on table_name(username(length));
- 修改表结构添加索引: alter table table_name add index indexName(columnName);
- 单列索引:一个索引只包含单个列; 组合索引: 一个索引包含多个列
- 创建表的时候直接指定: create table table_name(… index [index_name] (userName(length)));
- 删除索引: drop index [indexName] on table_name;
- 创建唯一索引(索引值必须唯一,可为null) ,组合索引,列值必须唯一: create unique index indexName on tableName(userName(length)); #唯一索引相比于普通索引就添加一个unique, 在唯一索引中插入相同数据会出错
- 使用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
- 显示索引信息:show index from tableName;
- alter添加/删除主键: 在primary key 主键名前面添加 add/drop
- MySQL临时表:保存一些临时数据, 临时表只在当前连接可见, 关闭连接, MySQL会自动删除并释放所有空间
- 临时表创建:create temporary table tableName(columnName DataType…); 创建完成后使用show tables是无法查看临时表, 它只在当前连接可见; 删除使用drop table tableName
- 服务器版本信息:select version() 当前数据库名:select database() 当前用户名:select user()
- 服务器状态: show status; 服务器配置变量: show variables
- 查看当前数据库下包含数据表情况:show tables;
- 查看指定数据表的表结构: desc 表名;
- 重置序列: 当删除使用auto_increment列中记录会导致序列出错, 需要重写对该列使用auto_increment, 使用auto_increment=value; 指定开始值
- 统计重复数据: 首先确定那一列会出现重复记录,在列选择列表使用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; - 过滤重复数据: 使用distinct/group by, 例: select distinct columnName from tableName 或者select columnName from tableName group by columnName;
- 删除重复数据: 可以使用为表添加index或者primary key
注: 一部分内容, 在后期进行修改和补充, 有错误的地方还请指出
MySQL基本操作指令相关推荐
- mysql数据库安装资源、步骤及基本操作指令详解
mysql数据库安装及基本操作详解 目录 mysql安装资源及教程 安装资源 安装教程 mysql基本指令操作详解 实例操作 mysql安装资源及教程 安装资源 mysql安装包链接 链接:https ...
- 史上最全MySQL基本操作(这一篇就够用了!!!)
基础知识请移步:数据库.MySQL基本知识 欢迎学习交流!!! 持续更新中- 文章目录 MySQL基本操作 一.SQL语法规则 二.SQL库操作 1.创建数据库 2.显示数据库 3.使用数据库 4.修 ...
- MySQL基本操作——删除数据各类情况总结
MySQL基本操作--删除数据各类情况总结 一.删除单张表&按条件删除表中行数据 二.删除数据库中所有表且不保留表结构 三.一次性删除整个数据库中所有表数据并保留表结构 附录:informat ...
- MySQL中定义fk语句_MySQL基础篇/第3篇:MySQL基本操作语句.md · qwqoo/MySQL-Review - Gitee.com...
### 第3篇:MySQL基本操作语句 - MySQL基础操作 #### 排序检索数据 - 之前的数据没有进行排序,其是按照默认在数据表中的数据返回的 - SELECT语句的ORDER BY 子句进行 ...
- mysql desc指令_MySQL Desc指令相关
MySQL Desc指令相关 2011-08-09 11:25:50| 分类: my基本命令 |举报 |字号 订阅 1.desc tablename; 例如 :mysql> desc jos_ ...
- 20分钟学会mysql_5分钟学会mysql基本操作
mysql视频教程栏目介绍如何快速学会mysql基本操作 相关免费学习推荐:mysql视频教程 文章目录一.SQL是什么? 分类: 二.关于数据库CRUD操作 1.操作表list: 2.对表内数据进行 ...
- mysql键1键2_详解mysql基本操作详细(二)
前言 本文类容 1.数据库的几大约束 2.表与表之间的关系 约束: 主键约束: 作用:为了保证数据的有效性和完整性 mysql中常用的约束:主键约束(primary key) 唯一约束(unique) ...
- Git简单基本操作指令集合
Git简单基本操作指令集合 常用置顶 新添加到暂存区中文件前面有绿色的 A 标记 (这是精简的方式查询出来的状态 git status -s), 非精简方式查询出来的是 文件名全绿色的 修改过的.没有 ...
- linux服务器运维操作命令,Windows和Linux系统服务器运维基本操作指令
原标题:Windows和Linux系统服务器运维基本操作指令 服务器总归是机械化设备,在运行过程中难免会出现一些问题,遇到这些问题怎么办?请运维人员代维修?即使请也会造成,运维人员维护不及时和成本太高 ...
最新文章
- Hadoop Streaming 编程
- 中国大学MOOC 计算机组成原理第4章 测试(下)
- java通过匹配合并数据(数据预处理)
- python加载文件并显示文件内容到qtextedit上_如何在python中读取QTextedit?
- java中如何切割图片_Java 切割图片代码
- 最简单的TCP网络封包解包(补充)-序列化
- python visio_再见,Visio! - Python绿色通道的个人空间 - OSCHINA - 中文开源技术交流社区...
- 4款Windows必装的软件,免费又实用,让你的电脑无所不能
- c语言实验报告参考文献,c语言编程参考文献
- 【强化学习入门】人工智能、深度学习理论框架以及学习资料
- 深入理解操作系统实验——bomb lab(phase_3)
- Spring Kafka消费模式(single, batch)及确认模式(自动、手动)示例
- 线程池之ThreadPoolExecutor详解
- 周报8.22-8.28
- Java代码审计手册(3)
- Node的json解析
- 晶振(有源晶振、无源晶振)构造,工作原理。
- 【信号与系统】笔记(1)绪论
- TCP-IP详解笔记5
- 利用最小二乘法拟合脱密坐标的方法
热门文章
- vmware linux
- Android怎么插手机卡,魅蓝E手机卡怎么装 魅蓝E手机SIM卡安装图文教程
- Python 内置函数之 open (文件操作)
- Django源代码写DetailView与ListView
- Hive安装报错:Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient的解决办法
- Linux设备驱动程序(第三版)/深入理解计算机系统(原书第2版)/[Android系统原理及开发要点详解].(韩超,梁泉)百度云盘下载
- java服务器向客户端发消息_java一个简单的客户端向服务端发送消息
- tableau 倒序都倒了_Tableau优秀作品拆解复刻01-是时候终结瘘管病了
- 衰落信道中的平均信噪比和瞬时信噪比
- java 数据网格,easyui数据网格