目录

前置建表

一、数据的插入

1、插入数据语法

1.1、插入完整的行

1.2、插入行的一部分

1.3 、插入多行

1.4、插入某些查询的结果

二、数据的简单查询

1、查询数据语法

三、数据的修改

1、修改数据语法

2、IGNORE关键字

四、数据的删除

1、删除数据语法

2、DELETE、TRUNCATE 、DROP区别

2.1 、DELETE

2.2、TRUNCATE

2.3、DROP

五、常见导致错误语句


前置建表

CREATE TABLE student (id int NOT NULL AUTO_INCREMENT COMMENT '主键',code varchar(255) NOT NULL COMMENT '学号',name varchar(255) DEFAULT NULL COMMENT '姓名',sex enum('男','女') DEFAULT NULL COMMENT '性别',PRIMARY KEY (`id`)
)

一、数据的插入

1、插入数据语法


INSERT into table-name(field-name-1, field-name2, field-name-n)
VALUES(vaiue-1, value-2, value-n)--省略列明插入
INSERT into table-nameVALUES(vaiue-1, value-2, value-n)
不管使用哪种INSERT语法,都必须给出VALUES的正确数目。如果不提供列名,则必须给每个表列提供 一个值。如果提供列名,则必须对每个列出的列给出一个值。如果不这样,将产生一条错误消息,相应的行插入不成功。

1.1、插入完整的行

INSERT INTO  student (id, code, name, sex) VALUES (1, '202201', '张三', '男');
INSERT INTO  student VALUES (2, '202202', '李四', '男');

如果指定列名形式插入,则列明先后顺序可以随意切换,只要列明跟数据一一对应即可如:

INSERT INTO  student (id, code, name, sex) VALUES (1, '202201', '张三', '男');
跟INSERT INTO  student (id, name, code,sex) VALUES (1, '张三','202201', '男');结果一样

1.2、插入行的一部分

如果表的定义允许,则可以在INSERT操作中省略某些列。省略的列必须满足以下某个条件。
1、 该列定义为允许NULL值(无值或空值)。
2、在表定义中给出默认值。这表示如果不给出值,将使用默认值。

如果对表中不允许NULL值且没有默认值的列不给出值,则MySQL将产生一条错误消息,并且相应的行插入不成功。

INSERT INTO  student (id, code, name) VALUES (3, '202203', '王五');

1.3 、插入多行

如果你想插入多个行,可以使用多条INSERT语句,甚至一次提交它们,每条语句用一个分号结

束。
INSERT INTO student (`id`, `code`, `name`, `sex`) VALUES (1, '202201', '张三', '男');
INSERT INTO student (`id`, `code`, `name`, `sex`) VALUES (2, '202202', '李四', '男');
INSERT INTO student (`id`, `code`, `name`, `sex`) VALUES (3, '202203', '王五', NULL);
或者,只要每条INSERT语句中的列名(和次序)相同,可以如下组合语句
INSERT INTO student (`id`, `code`, `name`, `sex`) VALUES (1, '202201', '张三', '男'),(2, '202202', '李四', '男'),(3, '202203', '王五', NULL);

1.4、插入某些查询的结果

INSERT一般用来给表插入一个指定列值的行。但是,INSERT还存在另一种形式,可以利用它将一条SELECT语句的结果插入表中。这就是所谓的INSERT SELECT,顾名思义,它是由一条INSERT语句和一条SELECT语句组成的。语法如下:
INSERT INTO TABLE1  (field-name-1, field-name2, field-name-n)SELECT   (field-name-1, field-name2, field-name-n) FROM TABLE2

二、数据的简单查询

1、查询数据语法

-- 全列查询
SELECT * FROM table-name where condition-- 部分列查询select field-name-1, field-name2,... field-name-n from  table-name where condition

如查询所有学生信息和只查询姓名,性别结果分别如下

   

SELECT语句一般跟WHERE结合使用,用于查询筛选之后的结果,比如查询name为张三的学生信息

三、数据的修改

1、修改数据语法

update   table-name
set field-name-1=value-1,
field-name2=value-2,...
field-name-n=value-n where condition
UPDATE语句非常容易使用,甚至可以说是太容易使用了。在使用UPDATE时一定要注意细心。因为稍不注意,就会更新表中所有行。基本的UPDATE语句由3部分组成,分别是:
1、要更新的表;
2、列名和它们的新值;
3、 确定要更新行的过滤条件。

如把学号为202201的学生学号修改为20220101

update student set  code ='20220101' where code='202201';

2、IGNORE关键字

IGNORE关键字 如果用UPDATE语句更新多行,并且在更新这些行中的一行或多行时出一个现错误,则整个UPDATE操作被取消(错误发生前更新的所有行被恢复到它们原来的值)。为即使是发
生错误,也继续进行更新,可使用IGNORE关键字,如下所示:
UPDATE IGNORE student…

四、数据的删除

1、删除数据语法

DELETE  table-name where condition;

如删除code为202203的学生,语句如下

DELETE student where code='202203';

2、DELETE、TRUNCATE 、DROP区别

2.1 、DELETE

语法 DELETE from table-name where

删除内容,不删除表结构,但不释放空间,delete删除数据后只会从删除前的最后一行续写,可以与WHERE结合使用

2.2、TRUNCATE

语法:TRUNCATE 表名

删除内容,不删除表结构,但不释放空间,truncate是直接从1开始,即全部清空开始,而delete需要先得到当前行数,从而进行续写;所以truncate删除速度比delete快,可以理解为 TRUNCATE是删除原来的表并重新创建一个表,而不是逐行删除表中的数据

2.3、DROP

语法: drop 表名

drop语句将表所占用的空间全释放掉,删除表结构 

执行效率:一般来说按执行速度可分为  DROP>TRUNCATE>DELETE

下面是许多SQL程序员使用UPDATE或DELETE时所遵循的习惯:
1、除非确实打算更新和删除每一行,否则绝对不要使用不带WHERE子句的UPDATE或DELETE语句。
2、保证每个表都有主键(如果忘记这个内容,请参阅第15章),尽可能像WHERE子句那样使用它(可以指定各主键、多个值或值的范围)。
3、在对UPDATE或DELETE语句使用WHERE子句前,应该先用SELECT进 行测试,保证它过滤的是正确的记录,以防编写的WHERE子句不正确。
4、 使用强制实施引用完整性的数据库,这样MySQL将不允许删除具有与其他表相关联的数据的行。

五、常见导致错误语句

1、主键不唯一

ERROR 1062 (23000): Duplicate entry 'l' for key 'PRIMARY'

2、不存在的外键

ERROR 1452(23000) : Cannot add or update a child row :

3、列值不合法

ERROR 1265 (01000): Data truncated for column 'xxx' at row 1

4、无效的日期转换

ERROR 1292(22007) : Incorrect date value: 'xxx' for column'xxx' at row 1

零基础学SQL(六、数据的增删改查简单语句)相关推荐

  1. 零基础学Java大数据难不难

    java大数据如今在企业中用到的次数是非常多的,很多人都比较看好java技术,那么零基础学Java大数据难不难?想要学习java技术说难不难,说简单也不是很简单,来看看下面的详细介绍就知道了. 零基础 ...

  2. 零基础学SQL(1):初识数据库与SQL

    零基础学SQL(1):初识数据库与SQL 一.初识数据库 数据库是将大量数据保存起来,通过计算机加工而成的可以 进行高效访问的数据集合.该数据集合称为数据库(Database,DB).用来管理数据库的 ...

  3. SQL Server创建数据库和数据的增删改查

    SQL Server创建数据库和数据的增删改查 本文是针对数据的增删改查,数据的创建 首先我们使用命令创建sql server数据库 D盘新建一个文件夹DB use master go --创建数据库 ...

  4. Vue+ElementUI纯前端技术实现对表格数据的增删改查

    Vue+ElementUI纯前端技术实现对表格数据的增删改查 页面展示效果 一.页面结构 分为三个部分 head body 以及script 一般我个人是在head中引入一些组件库 , 还有一些样式 ...

  5. IOS开发基础之SQLite3数据库的使用增删改查

    IOS开发基础之SQLite3数据库的使用增删改查 ios开发我们可能会使用到数据库进行持久化存储.sqlite3 是轻量级的数据库. 今天我们来介绍sqlite3 数据库.此方法跟java的增删改查 ...

  6. Redis概述_使用命令对redis的数据进行增删改查_Jedis连接redis进行数据操作_redis进行数据缓存案例

    学习目标 redis 概念 下载安装 命令操作 1. 数据结构 持久化操作 使用Java客户端操作redis Redis 前言(从百度上抄的, 看看了解一下, 懒得排版了) 1. 概念: redis是 ...

  7. 从零开始的VUE项目-03(数据的增删改查)

    代码svn地址 (用户名:liu,密码;123) 这一篇中,我们要实现的基本就是这么个东西 这个页面就是我们创建的DataManagement.vue页面,我们的主要代码将写在这里面,这个表格我们将用 ...

  8. JavaWeb小项目(二)- 完成品牌数据的增删改查(JSP/MVC/三层架构综合应用)

    JavaWeb小项目(二)- 完成品牌数据的增删改查(JSP/MVC/三层架构综合应用) 文章目录 JavaWeb小项目(二)- 完成品牌数据的增删改查(JSP/MVC/三层架构综合应用) 环境搭建 ...

  9. vue访问php时做增删改查,node连接mysql生成接口,vue通过接口实现数据的增删改查(一)...

    武汉加油遇新是直朋能到分览支体调!中国加油! 想必许多干用是处框它观有理近货框万理架是察放是近学vue的小伙伴想连接数据库,对数据进行增删改查吧,奈何不知道怎么实现.作为一路踩坑的我,为大家带来我的一 ...

最新文章

  1. SpringBoot+JsTree实现在编辑时能选择树形结构并获取选中的ID
  2. SpringBoot从入门到实战只需一篇文章
  3. 剑指0ffer04.二维数组中的查找
  4. 【经典回放】JavaScript学习详细干货笔记之(一)
  5. Cisco2960交换机密码忘记恢复教程
  6. 电商项目的app学习笔记(一)---webpack相关配置
  7. 国内主流的ERP软件大盘点
  8. 在多媒体计算机中静态媒体是指,《多媒体技术及应用》按章复习题
  9. 关于深度森林的一点理解
  10. 组合数公式用C语言怎么算,排列组合c怎么算 公式是什么
  11. iOS 组件化/模块化架构设计实践
  12. 区块链入门教程(4)--搭建单机四节点FISCO BCOS联盟链
  13. MatLab中的多项式拟合(lsqcurvefit函数的非线性曲线拟合)
  14. 使用串口线连接调试机顶盒
  15. 插入u盘计算机未响应,u盘启动电脑无反应,教您电脑插上U盘后无法启动解决方法...
  16. Ristretto 简介:一个高性能 GO 缓存
  17. SUMPRODUCT多列求和的应用
  18. 如何react中使用redux和react-redux
  19. RunAsDate 1.01
  20. 6个「会议议程」实例和免费模板

热门文章

  1. 绝地求生,把命运掌握在自己手中
  2. 微信春节大数据出炉:《三体》阅读量第一 ;曝iOS 17应用商店将向第三方开放;斯坦福大学推出DetectGPT|极客头条...
  3. 用压力传感器测量小米净水器及接管线机的改装方案
  4. html图片手机端不清楚,HTML+CSS图片大小自适应~PC电脑端、手机端
  5. i3处理器_为什么Intel的处理器很保值?新款i3吊打老款i5而其价格依旧虚高
  6. 小司机带你撸一个简单的RPC框架
  7. 随笔7(arduino)
  8. Java根据姓名生成头像(类似钉钉)
  9. HADOOP jps查看不到进程
  10. 问题 B: 黑暗意志