MySQL 总结篇 [在Oracle基础上学习的MySQL]
一、学习环境
- MySQL 5.7社区版
- Navicat for MySQL
- 百度网盘下载链接:https://pan.baidu.com/s/1yGnznwoZ8CaMgrCsDBhKAQ
二、MySQL 与 Oracle 的区别
实例区别:
- MySQL 是轻量型数据库,开源免费。
- Oracle 是收费的而且价格非常高。
- MySQL 一个实例可以操作多个库,而 Oracle 一个实例只能对应一个库。
- MySQL 安装完后 300M 而 Oracle 有 3G 左右。
操作区别:
- 主键: MySQL 一般使用自动增长类型,而 Oracle 则需要使用序列对象。
- 单引号的处理: MySQL 里可以用双引号包起字符串,ORACLE 里只可以用单引号包 起字符串。
- 分页的 SQL 语句: MYSQL 用 LIMIT,而 Oracle 需要使用内建视图和 rownum 伪列。
- 事务处理:MySQL 默认是自动提交,而 Oracle 默认不自动提交,需要用户 CTL 语言 进行事务提交。
【注意】:在 MySQL 中,默认情况下,事务是自动提交的,也就是说,只要执行一条 DML 语句 就开启了事物,并且提交了事务
三、常用命令
- 创建数据库:create database 数据库名 default character set 字符编码
- 查看数据库:show databases;
- 查看数据库源码:select schema_name,default_character_set_name from information_schema.sch emata where schema_name = ‘test’;
- 删除数据库:drop database 数据库
- 选择数据库:use 需要选择的库的名称
- 修改表名:alter table 旧表名 rename 新表名
- 修改列名:alter table 表名 change column 旧列名 新列名 类型
- 修改列的类型:alter table 表名 modify 列名 新类型
- 添加列:alter table 表名 add column 新列名 类型
- 删除列:alter table 表名 drop column 列名
- 修改表实现约束添加或删除:alter table 表名 [add|drop] 约束(列名)
- 添加有名字的约束:alter table 表名 add constraint 约束名 约束(列名)
- 删除有名字的约束:alter table 表名 drop key 约束名
- 修改列为添加自动增长:alter table 表名 modify 列名 类型 auto_increment
- 添加外键约束:alter table 表名 add constraint 约束名 foreign key(列名) references 参照的表名(参照的列名)
- 删除外键索引(索引名与约束名相同):alter table 表名 drop index 索引名
- 更新数据:update 表名 set 列名 = 值,列名 = 值 where 条件
- 删除数据:delete from 表名 where 条件
- 清空表的数据(自动增长的数字被置为1):truncate table 表名
- 关闭MySQL 的事务自动提交:start transaction DML… commit|rollback
四、易忘知识总结
- DML、DDL、DCL的区别:
- DML:(data manipulation language)数据操纵语言,就是最常用到的select、update、insert、delete
- DDL:(data definition language)数据库定义语言,创建表或视图等等,create,alter,drop等等。DDL主要是用在定义或改变表的结构,数据类型,表之间的链接和约束等初始化工作上
- DCL:Data Control Language)数据控制语言,是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。这个比较少用到。
2.检查约束:目前MySQL不支持、Oracle支持
3.insert 插入数据的时候,主键的那个位置一般是自增长的,所以选择全插入时,可以采用【default,0,null】进行占位。
4.自动增长的列:一个表只能有一个列有,类型必须时整数类型,只能添加到具备主键约束与唯一性约束的列上。删除主键约束或唯一性约束,如果该列拥有自动增长能力,则需要先去掉自动增长然 后在删除约束。
5.delete 与 truncate 的区别
- truncate 是整体删除(速度较快), delete 是逐条删除(速度较慢);
- truncate 不写服务器 log,delete 写服务器 log,也就是 truncate 效率比 delete 高的原因;
- truncate 是会重置自增值,相当于自增列会被置为初始值,又重新从 1 开始记录,而 不是接着原来的值。而 delete 删除以后,自增值仍然会继续累加。
6.MySQL中并不支持||作为连字符,需要使用concat函数。在参数数量上与oracle的concat 函数有区别。()
还在更新中。。。
MySQL 总结篇 [在Oracle基础上学习的MySQL]的更多相关文章
- Oracle(二)在 Mysql 的基础上学习 Oracle
毕竟我是先学的mysql,对数据库的一切认知都会有一个先入为主的思想在里面,如果不搞清楚其中的异同,我感觉Oracle我是学不会 了,甚至会把它们混淆.那么,不会mysql的没必要往下看了. 下边第一 ...
- oracle基础语句学习
1.寻找公司所有部门信息 select * from dept; 2.寻找特定列 select dept_name from dept; 3.使用列别名 基本书写方法:列名 列别名 列名 as 列别名 ...
- 使用Mysql.data.dll文件在服务器上运行访问Mysql
我使用的这个Mysql.data.dll文件 web.config上面主要需要声明以下代码 <system.data> <DbProviderFactories> <ad ...
- 在C++98基础上学习C++11新特性
自己一直用的是C++98规范来编程,对于C++11只闻其名却没用过其特性.近期因为工作的需要,需要掌握C++11的一些特性,所以查阅了一些C++11资料.因为自己有C++98的基础,所以从C++98过 ...
- 蜗牛—ORACLE基础之学习(二)
如何创建一个表,这个表和还有一个表的结构一样但没有数据是个空表,旧表的数据也插入的 create table newtable as select * from oldtable 清空一个表内的数据 ...
- mysql 再查询结果的基础上查询(子查询)
SELECT A.wx_name, A.wx_litpic, B . * FROM ( SELECT uid, COUNT( * ) AS daticishu FROM statements , ) ...
- Spring Boot 项目学习 (二) MySql + MyBatis 注解 + 分页控件 配置
0 引言 本文主要在Spring Boot 基础项目的基础上,添加 Mysql .MyBatis(注解方式)与 分页控件 的配置,用于协助完成数据库操作. 1 创建数据表 这个过程就暂时省略了. 2 ...
- MySQL学习(4)---MySQL索引
ps:没有特殊说明,此随笔中默认采用innoDB存储引擎中的索引,且索引都是指B+树(多路平衡搜索树)结构组织的索引.其中聚集索引.复合索引.前缀索引.唯一索引默认都是使用B+树,统称为索引. 索引概 ...
- MySQL、SqlServer、Oracle,这三种数据库的优缺点,你知道吗?
盘点MySQL.SqlServer.Oracle 三种数据库优缺点 MySQL SqlServer Oracle 一.MySQL 优 点 体积小.速度快.总体拥有成本低,开源:支持多种操作系统:是开源 ...
随机推荐
- windbg自行下载的sos.dll存放路径“..\SOS_x86_x86_4.7.3132.00.dll\5B5543296ee000\”里的“5B5543296ee000”是什么?
问题的引出 我在调试某个崩溃问题时,要跟踪clr的栈,于是,我先执行了指令.loadby sos clrjit,没有报错,然后我又执行!clrstack,结果却有如下输出:0:000:x86> ...
- Lightning Web Components 开发指南(二)
Lightning Web Components 是自定义元素使用html 以及现代javascript进行构建. Lightning Web Components UI 框架使用web compon ...
- PDE工具箱的简单使用
转载自Here matlab的PDE工具箱的简单使用 问题选择 边界条件选择 菜单按钮和简单使用 命令行输入pdetool,打开GUI编辑界面如下: 注意到工具栏上,就是我们要用到的,从左到右依次使用 ...
- JavaScript高级程序编程(二)
JavaScript 基本概念 1.区分大小写,变量名test与Test 是两个不同的变量,且函数命名不能使用关键字/保留字, 变量命名规范: 开头字符必须是字母,下划线,或者美元符号,ECMAScr ...
- rust学习(二)
play on line match if #![allow(unused)] fn write_bar(size: u64){ match size{ o => println!(" ...
- node.js切换多个版本
开言 试用场景就是我们开发项目的时候,有可能一个项目需要v10版本,另一个项目需要v8版本,遇到这种问题,我们不能卸载再重新安装对应的版本去开发,遇到这样的问题的时候,那我们就可以去用另一种方式去切换 ...
- mysql 唯一键
唯一键特点: 1.唯一键在一张表中可以有多个. 2.唯一键允许字段数据为NULL,NULL可以有多个(NULL不参与比较) //一个表中允许存在多个唯一键,唯一键允许为空,在不为空的情况下,不允许重复 ...
- (转载)ranger原理
文章目录 一.业务背景 现状&&需求 二.大数据安全组件介绍与对比 1.Kerberos 2.Apache Sentry 3.Apache Ranger 4.为什么我们选择Ranger ...
- 2019SDN第7次上机作业
2019SDN第7次上机作业 1.作业要求: 作业博客链接:https://edu.cnblogs.com/campus/fzu/fzusdn2019/homework/10165 2.具体操作步骤与 ...
- iOS9 TableView和ScrollView滚动不响应问题
今天开始适配iOS9,发现在有UITableView或是ScrollView的界面滚动不灵敏有些卡顿,研究了下是因为tableview的cell里有可以相应点击事件的Button,当我点击到Butto ...