专栏首页零基础自学Java【JavaWeb】61:数据记录基本操作

【JavaWeb】61:数据记录基本操作

一直听人说,程序员面试,面试官喜欢聊底层原理,聊数据结构与算法,聊多线程与高并发。

等你进去以后就是每天CRUD,每天加班。

虽然当时有点听不懂,但我还是将CRUD记下了下,毕竟很常用很重要的样子。

后来发现其实就是增删改查。

一开始学集合的时候,发现集合的方法基本都是增删改查,莫非说的就是它?

那看来很重要啊,必须学好。

现在才发现自己想的太简单了,CRUD不是简简单单的集合,而是数据库?

前天学了对数据库本身的操作;

昨天学了对数据表本身的操作;

今天继续学对数据表里的数据记录操作。

一样的道理,无外乎都是增删改查:

一、增加数据记录

insert,插入添加的意思,也就是增加。

①增加数据(全写)

insert into student1(id,username,gender,address)values (null,'刘小爱','男','上海');

给表添加一行数据,每一列都要赋值,格式为:

insert into+表名+所有列名+values+所有值

因为主键设置了自增长,可以直接书写null

但是这种格式太繁琐了,可以省略部分列。

②增加指定列的数据

如果有一列的数据可以为空或者有默认值,可以省略不赋值,也就是上图中的Null和Default两列。

因为主键设置了自增长,也相当于有默认值,所以id和address这两列可以省略。

insert into student1(username,gender)values('张三','男');

给表中指定列的数据赋值,格式为:

insert into+表名+指定列+values+对应值

③省略所有列(简写)

insert into student1 values(null,'李四','男','武汉');

将所有列名省略,但每一列都要赋值,格式为:

insert into+表名+values+所有值

注意:

  • SQL中字符串用单引号而不是双引号,和Java中不一样。
  • 列约束若是unique,唯一的,那么添加数据不允许重复。
  • 列约束若是not null,不允许重复的,同时又没有默认值的话,那么必须添加数据。

二、修改数据记录

update,更新的意思,也就是修改。

①修改整列数据

update student1 set address='北京';

将address这一列所有数据改成北京,格式如下:

update+表名+set+列名+值

②修改指定行的列数据

update student1 set gender='女'where username='张三';

将gender这一列中username为‘张三’的数据修改成‘女’,格式如下:

update+表名+set+列名+值+where+指定条件。

where等于是加了一个指定条件。

③使用运算修改指定行的数据

update student1 set age=age+2 where username=‘张三’;

格式同上,不过在运算时注意:

SQL中没有+=这样的运算符,和Java不一样。

其中!= 和 < > 都表示不等于。

三、删除数据记录

delete,删除的意思。

①删除指定的数据

delete from student1 where username='李四';

删除username为‘李四’的整行数据,格式如下:

delete from+表名+where+指定条件

②删除表所有数据

delete from student1;

③也是删除表所有数据

truncate,截断的意思,也就是删除的意思。

truncate table student1;

附面试题:delete,truncate,drop之间的区别?

  • delete:删除数据是一行一行删除,数据有可能会被恢复。
  • truncate:先删除表,再创建表,就等于将数据全部删除了。
  • drop:删除表的时候是删除整张表,表都没了,数据肯定也没了。

所以truncate和drop都是对表本身的操作,语法中有table这个单词。

delete是对表中数据的操作,对表本身没有操作。

四、查询数据记录(基础查询)

select,选择的意思,也就是查询。

select * from student1;

*代表所有的意思,即查询表中的所有数据。

然后我悲催地发现……查询操作太多了,可以说增删改加起来都没有它多。

用命令行操作的本意是想让自己对单词进一步加深印象,但是实在是太多了,所以上可视化工具。

我这边使用的可视化工具是Navicat。

详细的安装步骤不便讲解,直接连接数据库:

可以连接多种数据库,我们选择MySQL:①连接名

自定义创建一个连接名,以便于自己做区分,不创建也不影响。

②IP+端口

数据库在本机,所以用localhost表示本地主机,3306是默认端口。

③用户名+密码

即在安装数据库时设定的一个密码。

连接好后体验了下,发现真香。

至于更多的查询操作明天继续详细学习。

最后

回到开头的问题,CRUD增删改查:

  • C:应该是create,即增
  • U:应该是update,即改
  • D:应该是delete或者drop,即删
  • R:至于这个R应该就是查了,但是查询不是select么,应该是s呀。

看来CRUD也不是简简单单的这几天在学的操作。

谢谢你的观看。

如果可以的话,麻烦帮忙点个赞,谢谢你。

本文分享自微信公众号 - 刘小爱(liuxiaoai946),作者:刘小爱

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【JavaWeb】107:分页查询功能

    在每个显示页码的地方绑定一个点击事件,其对应的函数即为getPageData()。

    刘小爱
  • 【微服务】131:最好用的框架SpringBoot

    SpringBoot是Spring项目中的一个子工程,Spring大家族中的一员。

    刘小爱
  • 【JavaWeb】90:response响应

    response和request有一定的类似之处,今天就来仔细学一学这个response。

    刘小爱
  • 机器视觉的情感判断实践(From Pixels to Sentiment: Fine-tuning CNNs for Visual Sentiment Prediction)

      看到了2017年的一篇文章From Pixels to Sentiment: Fine-tuning CNNs for Visual Sentiment P...

    sparkexpert
  • cocos2d-objc 3.0+ 游戏开发学习手册(二): CCNode 了解

    在cocos2d中,CCNode是最基本的显示对象. 在3.0后的新版本中CCNode继承自CCResponder类,可以响应用户的交互事件(点击,触摸等),也...

    代码行者
  • CUDA入门教程(一)——CUDA安装

    CUDA框架是NVIDIA发布的在GPU上的并行计算的平台和模型, 在2006年第一代CUDA发布,到现在已经是第9代CUDA。今天我将分享如何正确安装...

    用户7498388
  • Flask的路由解读以及其配置

    推荐使用原因:因为测试和上线时候DEBUG属性再测试时候一般为true上线为false所有可以把其他公用的内容放一个基类中,下面测试和上线都继承基类,用的时候切...

    小小咸鱼YwY
  • python爬取链家租房之获取北京所有区的网站分栏地址(第一次写,code太粗犷,欢迎提建议)

    __author__ = 'Lee' import requests from bs4 import BeautifulSoup url_list = 'h...

    98k
  • Vue基础3 - VUEX

    更改 Vuex 的 store 中的状态的唯一方法是提交 mutation。Vuex 中的 mutation 非常类似于事件:每个 mutation 都有一个字...

    剑行者
  • 数据库安全·为数据安全而分库

    以下节选择《Netkiller Architect 手札》地址 http://www.netkiller.cn/architect/ 接下来几周的话题是数据库安...

    netkiller old

扫码关注云+社区

领取腾讯云代金券