这一部分是最简单的,也是最麻烦的。简单是因为其实只包括增删该插四个部分。大体上看,增加数据、删除数据、修改数据、查询数据都不麻烦啊,我们日常都是常用的。这个谁不会呢?以前在培训机构学mysql的时候,我就知道,程序员的成长路程上的一个瓶颈就在于数据库。如何书写高维护性的sql语句,如何能保持高维护性的同时又保持执行的高效率,这是个难题。我最近在做一个比较棘手的项目,常常left join 5~6张表,扫表10几万,查询速度慢的惊人。10几万还仅仅是测试数据,等真正的项目上线,数据量可能会达到百万级别。因此低效率的mysql 语句,可能程序直接就崩溃了。兄弟连IT教育(www.lampbrother.net)
因此关于数据这部分的增删改插是最难的,也是至关重要的,一定要学好。但我们今天仅仅书写最简单的增删该插,后面的博客将会持续深入的去整理相关方面的知识。
增加数据:
insert into 表名 (字段1, 字段2, 字段3, 字段n) values (值1,值2,值3,值4);
这个比较简单。这是一条通用语句。可以值inset一条数据,也是insert多条数据。这个在《Mysql学习笔记(二)对表结构的增删改查》的测试sql里面有。可以参考一下,这里就不重复贴代码了。
注意事项:
向char 、varchar 、text 以及日期型的字段插入时,字段值要用单引号括起来。
向自增型auto_increment字段插入数据时,建议插入NULL值,此时字段将向自增型字段插入下一个编号。其实我平时都直接不写。
向默认值约束字段插入数据时,字段值可以使用default关键字,表示插入的是该字段的默认值。
插入新纪录时,需要注意表之间的外键约束关系,原则上先给父表插入数据,然后给子表插入数据。
删除数据:
删除数据是比较危险的操作,平时在开发测试阶段,可能会用到,但是到了真正的项目上线阶段,是不会有delete权限的。
语法: delete from 表名 where 条件;
delete from classes where class_no = 53; (可以继续用《Mysql学习笔记(二)对表结构的增删改查》中的测试sql);
强调一句,删除数据与修改数据,不加条件都是臭流氓。
修改数据:
修改数据也是很危险的操作,在项目上线的时候,只有某些表的某些字段允许更改。
语法:update 表名 set 字段名=字段值 where 条件。
update classes set class_name='roverliang' where class_no=52;
强调一句,删除数据与修改数据,不加条件都是臭流氓。
查询数据:
基本上项目中有90%以上关于数据库的操作是查询操作。因此查询语句写的好不好,将直接体现出一个程序员的编程能力。
反对那些人,一看到很长sql语句就摇头表示否定。他们从一些资料中得知,sql语句写的长会使执行效率下降、简直对长长的mysql语句是避而远之。将本来能一气呵成的mysql硬生生的分成了几个零散的片段。
对于我们搞技术的人来说,凭感觉是不对的。一切要以事实为基础,sql执行快慢优劣不是凭感觉拍脑袋决定的。真正决定sql执行速度的还是mysql本身,所以遇到疑惑的,就放进mysql里跑一跑。那个快那个慢,就高下立见了。
如果两者执行时间几乎相当,当然要毫不犹豫的选用一气呵成的sql。好维护啊!能够大大的减少代码量。
有些朋友可能会反驳说,那么长一段sql,看着都烦人,怎么会好维护呢?这其实与个人习惯有关,对于长的sql语句,我个人平时是这么写的,不知道对不对,请大家给指点下。
复制代码
#长长的sql;
select 字段1,字段2,字段3,字段n
from 表一 as t1,表二 as t2 ,表三 as t3
left join 表四 as t4 on t1.字段1 = t4.字段1
left join 表五 as t5 on t1.字段2 = t5.字段2
where t1.字段1=1 and t2.字段2=2 and t3.字段3 > 3
group by t1. 字段1
order by t1
limit 1,5;
复制代码
总之,一切的原则是要逻辑清晰,排版美观,能对齐的一定要对齐。
将代码当作白居易的诗歌来写,力求简练,但要兼顾可读性,让三岁小儿与七十岁老妪可懂。
将代码当作平面设计作品来写, 等号之间、变量之间排版整齐。代码段与代码段之间错落有致,整齐划一。
不要吝啬空格与换行符。将代码想象为数据流,让代码有流动的空间。
分享到:
相关推荐
node-mysql实现增删改查 环境需求:安装node.js 解压项目npm install 下载项目中所需要的脚手架依赖 npm run 运行项目 测试地址http://127.0.0.1:3000/dist/index.html#/
这是一个mysql-plus使用的入门教程,使用代码测试了mybatis-plus的增删改查和分页功能
基于Java 的选课系统: 具体的要求: 1、 本系统有三类用户,教师,学生,管理员,各自的功能如下: (1) 教师: 所包含功能为: ... ... C, 发布本学期开设的课程,本界面的内容包括:课程名称,课程学时,课程要求,...
maven-springboot-mysql-thymeleaf-mybatis-CRUD增删改查完整版
ssm整合的思路是首先进行spring和mybatis的整合,然后进行spring和springmvc的整合首先进行web.xml的配置,主要是对spring监听器和springmvc的springDispatcherServlet,以及内路径的配置(spring的...
Mysql入门视频,通过视频可以了解Mysql的基本的增删改查操作。可以供广大初学的朋友们了解和熟悉Mysql,基本上都是一些比较简单的语句。
QT版本5.14,实现了连接MySQL进行了增删改查操作,和分页操作。解决了中文SQL提示成功但是执行失败问题。博客地址:https://blog.csdn.net/qq_37529913?spm=1001.2101.3001.5113
JAVA-最简单的图书管理系统-增删改查-MYSQL-GUI,适合新手~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
功能:利用动软代码生成器 从 数据库表或者视图中生成 的三层结构代码 实现 数据增删改查。 如果可以,请下载资源中 修改 的动软代码生成器 C#模板生成 1、由于之前使用 动软生成 java 网页源码,比较成功,此处...
基于QT学生信息管理系统 (mysql数据库--增删改查分页功能) 代码完整版,QT版本5.14录界面功实现 QT版本5.14,实现了连接MySQL进行了增删改查操作,和分页操作。解决了中文SQL提示成功但是执行失败问题, Qt--数据库-...
WPF+MySQL 实现学生信息的增删改查,欢饮下载,欢迎学习。
Python的 Web 框架Django入门学习,Django+Mysql实现基本额增删改查功能。入门学习案例。
使用简单的jsp+mysql技术实现对数据库的增删改查操作,以及权限控制
jdbc封装(实现对实体的增删改查[分页]),辅助学习Hibernate 包含三个文件夹,分别是: code-access实现 是用access实现的,本意是access方便,就一个文件,方便部署。但access有好多不支持,就写成这样.主要是可参考Dao...
开发工具:Myeclipse7.0 服务器:Tomcat 数据库:Mysql 技术: Hibernate + Servlet + Ajax 项目介绍:对单表的增删改查。 通过小项目,深刻理解 Ajax的好处, 以及,它的实现原理。
通用mybatis-MySQL增删改查CRUD源码,不用再写增删改查了
在vs2022开发平台下使用C#语言对mysql数据库的数据的增删改查、使用数据控件GridView显示数据及带参数的MySql
mysql5.7支持json数据的增删改查的例子
java 连接mysql 数据库 实现增删改查
C++、MFC通过ADO连接MYSQL来实现增删改查。完整作者亲自手写完成保证可用。方便快捷、简单明了。一遍就会带你深入探索编程世界。