美文网首页
表的内容操作

表的内容操作

作者: 杜大个 | 来源:发表于2018-09-06 08:51 被阅读0次

最基本的crud操作:

增(insert into)

顾名思义,INSERT是用来插入(或添加)行到数据库表的。插入可以用几种方式使用:

  • 插入完整的行;
  • 插入行的一部分;
  • 插入多行;
  • 插入某些查询的结果。

首先创建一个表

CREATE TABLE customers ( userid int NOT NULL AUTO_INCREMENT, name char(50) NOT NULL, address char(200) NOT NULL, email char(50) NOT NULL, PRIMARY KEY(userid) );

插入完整行

INSERT INTO customers values(10010,'李同学','北京市朝阳区','1234567@qq.com')

DeepinScrot-5214

查询已插入的数据:SELECT是最常使用的SQL语句

SELECT * FROM customers;

DeepinScrot-5549

虽然这种语法很简单,但并不安全,应该尽量避免使用。上面的SQL语句高度依赖于表中列的定义次序,并且还依赖于其次序容易获得的信息。即使可得到这种次序信息,也不能保证下一次表结构变动后各个列保持完全相同的次序。因此,编写依赖于特定列次序的SQL语句是很不安全的。如果这样做,有时难免会出问题。

根据列插入数据

编写方法如下

INSERT INTO customers(userid,name,adress,email) values('10011','黄同学','北京市通州区','1234789@qq.com')

此例子完成与前一个INSERT语句完全相同的工作,但在表名后 的括号里明确地给出了列名。在插入行时,MySQL将用VALUES 列表中的相应值填入列表中的对应项。VALUES中的第一个值对应于第一个指定的列名。第二个值对应于第二个列名,如此等等。

DeepinScrot-0305

注意:

  • 一般不要使用没有明确给出列的列表的INSERT语句。使用列的列表能使SQL代码继续发挥作用,即使表结构发生了变化。
  • 不管使用哪种INSERT语法,都必须给出VALUES的正确数目。如果不提供列名,则必须给每个表列提供一个值。如果提供列名,则必须对每个列出的列给出一个值。如果不这样,将产生一条错误消息,相应的行插入不成功。

多行插入:

INSERT INTO customers(userid,name,adress,email) values ('10011','黄同学','北京市通州区','1234789@qq.com'), ('10012','黄同学','北京市通州区','1234789@qq.com'), ('10013','黄同学','北京市通州区','1234789@qq.com');

DeepinScrot-4310

将一个表里的数据插入到另一个表中

insert into 表 (列名,列名...) select 列名,列名... from 表

下面sql语句实现的功能是将customers中的字段插入到了customers1中
DeepinScrot-0024

总结: insert into 表 values (值,值,值...) insert into 表 (列名,列名...) values (值,值,值...) insert into 表 (列名,列名...) values (值,值,值...),(值,值,值...) insert into 表 (列名,列名...) select (列名,列名...) from 表

删除数据

为了从一个表中删除(去掉)数据,使用DELETE语句。可以两种方式使用DELETE:

  • 从表中删除特定的行; 下面的语句从customers表中删除一行:

    DELETE FROM customers WHERE userid = 10010;

    这条语句很容易理解。DELETE FROM要求指定表名(从哪个表中删除数据)。WHERE子句过滤要删除的行。在这个例子中,只删除同学10010 。如果省略WHERE子句,它将删除表中每个同学。 DELETE不需要列名或通配符。DELETE删除整行而不是删除列。为了删除指定的列.

DeepinScrot-1826
  • 从表中删除所有行。

    delete from 表

改(更新)

更新(修改)表中的数据,可使用UPDATE语句。可采用两种方 式使用UPDATE:

  • 更新表中特定行;
  • 更新表中所有行。

UPDATE语句非常容易使用,甚至可以说是太容易使用了。基本的 UPDATE语句由3部分组成,分别是:

  • 要更新的表;
  • 列名和它们的新值;
  • 确定要更新行的过滤条件。 示例如下:

UPDATE customers SET email='123@sina.com' where userid=10011;

DeepinScrot-0959

UPDATE语句总是以要更新的表的名字开始。在此例子中,要更新的表的名字为customers。SET命令用来将新值赋给被更新的列。如这里所示,SET子句设置email列为指定的值:

SET email = ‘123@sina.com

UPDATE语句以WHERE子句结束,它告诉MySQL更新哪一行。没有 WHERE子句,MySQL将会用这个电子邮件地址更新customers表中所有行,这不是我们所希望的。

更新多个列

更新多个列的语法稍有不同:

UPDATE customers SET email='345@qq.com', name = '刘起' where userid=10012;

在更新多个列时,只需要使用单个SET命令,每个“列=值”对之间 用逗号分隔(最后一列之后不用逗号)。在此例子中,更新userid为10012的email和name列。 DeepinScrot-1716

为了删除某个列的值,可设置它为NULL(注意:该字段在表中的定义必须允许为NULL值才可以)

UPDATE customers SET email = NULL WHERE userid = 10012;

其中NULL用来去除email列中的值。

更新和删除的指导原则(注意事项)

  • 使用的UPDATE和DELETE语句全都具有WHERE子句,这样做的理由很充分。如果省略了WHERE子句,则UPDATE或DELETE将被应用到表中所有的行。换句话说,如果执行UPDATE而不带WHERE子句,则表中每个行都将用新值更新。类似地,如果执行DELETE语句而不带WHERE子句,表的所有数据都将被删除。

  • 除非确实打算更新和删除每一行,否则绝对不要使用不带WHERE子句的UPDATE或DELETE语句。

  • 保证每个表都有主键尽可能像WHERE子句那样使用它(可以指定各主键、多个值或值的范围)。

  • 在对UPDATE或DELETE语句使用WHERE子句前,应该先用SELECT进行测试,保证它过滤的是正确的记录,以防编写的WHERE子句不正确。 最后提示:对于数据库的操作移动要严谨,数据库一旦修改,没有恢复的操作

相关文章

  • 表的内容操作

    最基本的crud操作: 增(insert into) 顾名思义,INSERT是用来插入(或添加)行到数据库表的。插...

  • 表内容的操作

    对表数据进行增删改查(curd) 增(insert into): auto_increment自增长 SELECT...

  • 5、mysql表内容操作

    [toc] 表内容操作 1、增 insert into 表 (列名,列名...) values (值,值,值......

  • Mysql学习笔记二

    1、表内容操作—条件选择 SELECT * FROM 表 WHERE id BETWEEN 5 AND 16; #...

  • SQL语句中的 drop truncate delete

    SQL语句中常用的三个删除操作: 删除表结构及内容 清空表内容 删除表记录

  • SQL从入门到不放弃(ing)

    常用表操作 显示数据库下的表: 显示表列: 修改表名: 删除表: 删除mysql表中所有内容: 修改表列类型 修改...

  • My SQL 3

    2.1 MySQL 基础 (二)- 表操作 #学习内容# 1. MySQL表数据类型 2. 用SQL语句创建表 ...

  • 《SQL基础教程》阅读笔记2

    主要内容: 数据库和表的创建 表的插入操作,修改操作附:root用户使用mysql: 数据库的创建 (笔者使用的是...

  • Apple Watch入门:手表基本操作、程序基本设置

    内容摘要 手表基本操作(Apple Watch端)表盘操作表冠操作功能按钮操作 程序基本设置(手机端iWatch程...

  • 表连接:2018-06-21

    我们做了三个范式,做了一些拆表的操作,可是有时我们确实同时显示两个表中的内容,那么就需要进行表连接操作。 显示每个...

网友评论

      本文标题:表的内容操作

      本文链接:https://www.haomeiwen.com/subject/costgftx.html