MySQL的CRUD操作+使用视图
【1】插入数据 1)insert是用来插入(或添加)行到数据库表的。插入可以用以下几种方式使用(methods): m1)插入完整的行; m2)插入行的一部分; m3)插入多行; m4)插入某些查询的结果; 2)插入完整的行 2.1)对于属于 auto_increment 的列,我们用插入null 来替代; 2.2)编写插入行的安全方法:要指定插入列名,后面更values 的各个value,而不仅仅是插入values; 如 insert into product(id,vendor,price) values(null,1,1.1); 2.3)省略列: 如果表的定义允许,则可以在 insert 操作中省略某些列。省略列必须满足以下某个条件(conditions) c1)该列定义为允许null值; c2)在表定义中给出 default值,这表示如果不给出值,则使用该默认值; 2.4)提高整体性能:数据库经常被多个客户访问,对处理什么请求以及用什么次序处理进行管理是MySQL的任务。如果数据检索是重要的,则你可以通过在 insert 和 into 之间添加关键字 low_priority,指示MySQL 降低 insert语句的优先级;(如 insert low_priority into); 3)插入多行

Attention)提高insert性能:MySQL 用单条insert 语句处理多个插入比使用多条insert 语句要快,所以推荐使用如上图所示的insert 方式 ;
4)插入检索出的数据 4.1)intro:将select出的数据作为insert 插入的原始数据;

【2】更新和删除数据 1)更新数据 1.0)update语句由3部分组成:要更新的表, 列名和他们的新值, 确定要更新行的过滤条件; 1.1)更新单个列和更新多个列




3)更新和删除的指导原则(rules),下面是许多SQL程序员使用update 和 delete 时所遵循的习惯; r1)除非确实打算更新和删除每一行,否则绝对不要使用不带 where 子句的update 和 delete语句; r2)保证每个表都有主键; r3)在对update 和 delete 语句使用 where子句前,应该先用 select 进行测试,保证它过滤的是正确记录,以防编写的where子句不正确; r4)使用强制实施引用完整性的数据库,这样MySQL将不允许删除具有与其他表相关联的数据的行; 【3】创建和操纵表 1)创建表 1.1)如果你想在一个表不存在时创建它,应该在表明前给出 if not exists语句;

1.2)使用NULL值
Attention)理解NULL: 不要把null值 与 空串相混淆,NULL 值是没有值,它不是空串。如果指定'’(两个单引号,其间没有字符),这在not null 列中是允许的;空串是一个有效值,它不是无值; 1.3)主键再介绍:单个主键 和 复合主键;

1.4)使用auto_increment:自动递增; Attention) A1)确定auto_increment的值:让MySQL 生成主键的一个缺点是你不知道这些值都是谁; A2)如何在使用 auto_increment 列时获得这个值呢? select last_insert_id() 来获得;



1.6)引擎类型:

1.6.1)intro to engine:MySQL 有一个具体管理和处理数据的 内部引擎。在你使用 create table 语句时,该引擎具体创建表,而在你使用select 语句或进行其他db 处理时,该引擎在内部处理你的请求; 1.6.2)如果省略engine 语句, 则默认的引擎是MyISAM;(干货——这里强烈建议添加engine关键字指定数据库表的引擎) 1.6.3)需要知道以下几个MySQL 的engines: engine1)InnoDB:是一个可靠的事务处理引擎,它不支持全文本搜索; engine2)MEMORY: 在功能上等同于 MyISAM,但由于数据存储在内存中,速度很快; engine3)MyISAM:MyISAM是一个性能很高的引擎,它支持全文本搜索,但不支持事务处理; Attention)外键不能跨引擎,即使用一个引擎的表不能引用具有使用不同引擎的表的外键;
2)下面内容讨论的是更新表,删除表和重命名表的内容
以下内容转自:
ALTER TABLE:添加,修改,删除表的列,约束等表的定义。
查看列:desc 表名; 修改表名:alter table t_book rename to bbb; 添加列:alter table 表名 add column 列名 varchar(30); 删除列:alter table 表名 drop column 列名; 修改列名MySQL: alter table bbb change nnnnn hh int; 修改列名SQLServer:exec sp_rename't_student.name','nn','column'; 修改列名Oracle:lter table bbb rename column nnnnn to hh int; 修改列属性:alter table t_book modify name varchar(22);for spec relative info, please visit MySQL 添加列+修改列+删除列
【4】使用视图 1)intro to view:视图是虚拟的表。与包含数据的表不一样,视图只包含使用时动态减少数据的查询;
1.1)假如吧整个查询包装为一个名为 product_vendor的虚拟表,则可以如下轻松地检索出相同的数据;

【4.1】利用视图简化复杂的联结 【4.2】用视图重新格式化检索出的数据

Attention)就像使用数据库表一样使用视图,包括 过滤数据 和使用视图与计算字段;
【4.3】更新视图 1)更新一个视图将更新其基表:如果你对视图增加或删除行,则实际上是对其基表增加或删除行; 2)但是,并非所有视图都是可更新的。基本上可以说,如果MySQL 不能正确地确定被更新的基数据,则不允许更新(包括插入和更新);这也是说,如果视图中有定义以下操作,则不能进行更新(operations): o1)分组(使用 group by 和 having); o2)联结; o3)子查询; o4)并; o5)聚集函数(min()函数, count()函数,sum() 函数等); o6)distinct; o7)导出(计算)列; Attention)视图主要是用于数据检索,而不是去更新数据;
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://www.juheyunku.com/sql/mysql/12273.shtml
相关文章
热门TAG
命令 外链 企业网站 白帽 php 织梦教程 dedecms修改内容 javascript 织梦 功能 标签 调用 详解 技巧 权重 服务器 网站流量 Dedecms 织梦cms HTML tags标签 python jquery教程 jquery windows 蜘蛛 搜索引擎 网站收录 JSP 实例解析最新文章
-
centos6.7 centos6.5下yum方式搭
时间:2021-01-10
-
MySQL中optimize优化表
时间:2021-01-09
-
MySQL学习总结(二)数据库
时间:2021-01-09
-
MySql体系结构以及各种文件
时间:2021-01-09
-
MySQL入门(四)
时间:2021-01-09
-
浅析使用JDBC操作MySQL需要
时间:2021-01-09
-
详解一条sql语句在mysql中是
时间:2021-01-09
-
Mysql的Binlog数据恢复:不小
时间:2021-01-05
热门文章
-
NodeJs(2)和MySQL(windows下)
时间:2021-01-05
-
详解MySQL开启远程连接权限
时间:2021-01-05
-
MySQL查询优化:LIMIT 1避免全表扫描提高查询
时间:2020-12-07
-
mysql安装图解 mysql图文安装教程(详细说明
时间:2020-12-23
-
MySQL8新特性:降序索引详解
时间:2020-12-23
-
MySQL死锁套路之唯一索引下批量插入顺序
时间:2020-12-28
-
详解mysql解压缩版安装步骤
时间:2021-01-05
-
mysql 5.7.21 解压版安装配置图文教程
时间:2021-01-05
-
mysql 5.7.18 绿色版下载安装教程
时间:2021-01-05
-
MySql体系结构以及各种文件类型
时间:2021-01-09
