阅读目录

一:插入数据

把数据插入表中的最简单方法是使用基本的 INSERT 语法。它的要求是需要我们指定表名和插入到新行中的值。

1.1 插入完整的行

比如如下语法:

INSERT INTO User(username, password) VALUES('kongzhi2', '654321');

如上基本的含义是: 将用户名和密码插入到User表中,存储到表中每一列的数据在VALUES子句中给出,必须给每一列提供一个值。如果某列没有值,则应该使用NULL值代替(假设该字段允许NULL值)。各列必须以他们在表定义中出现的顺序填充。

首先我们来查询下user表中的数据;如下所示:

然后我们使用插入操作,INSERT INTO user(username, password) VALUES('kongzhi2', '654321'); 插入一条数据到表中,然后我们继续使用查询该表操作,查询下数据,看看表中是否有该数据。如下图所示:

1.2 插入部分行

比如说,我只给username这个字段插入值,不给password这个字段设置值,可以如下语法代码:

INSERT INTO user(username, password) values ('kongzhi3', null);
INSERT INTO user(username) values ('kongzhi3');

如上这两句代码插入的时候会报错的,或者我只给username插入值,不给password插入值,也会报错的,那是因为username和password 是必填的,不允许为空的。如果某个表中的字段允许为空的话,我们可以不给该值插入的。

为了演示插入部分数据,我们可以在创建一个user2表,该表有2个字段为 username和age字段,都可以允许为空,然后向表中user2中插入username字段,不插入age字段,可以看到,我们再查询下该表,age默认值就变成了 null了。

1.3 插入检索出的数据

什么叫插入检索出的数据呢?就是说,我们有2个表,一个是user表和另一个是user2表,我想把user2表中查询到的数据合并到user表中,那么这样的基本语法需要如下语法:

insert into user(username, password) select username, age from user2;

上面语法的含义是,我首先从user2表中查询username,age的值后,然后把该值合并到 user 表中对应的 username 和 password字段中。但是由于 user2表中的age字段为null,但是user表中的password字段不允许为null,因此会报错,
如下所示:

这边简单的为了演示,我们可以把user2表中的username的值合并到user表中的password的值就可以了。因为user2表中的username值不为空。如下基本语法:

insert into user(username, password) select username, username from user2;

如下图所示:

1.4 从一个表复制到另一个表的数据

我们要将一个表中的数据全部复制到另一个全新的表中,我们可以使用 INSERT INTO 语句。那么它和上面的 INSERT SELECT 语句有什么不同呢?INSERT SELECT 是将数据添加到一个已经存在的表中。而 SELECT INTO 是将数据复制到一个新表中。也就是说 INSERT SELECT 是导出数据,比如上面的从user2表中查询到的数据导出到user表中去。而我们的SELECT INTO 是导入数据,是把某一个表中的数据导入到另一个全新的表中。

比如如下语法:

create table user3 as select * from user2;

如上我们创建一个user3表,然后从user2表中的数据查询出来后,把user2中所有的数据复制到user3中新表中。

如下图所示:

然后我们再查询 user3表看下有如下数据;如下图所示:

二:更新数据

更新表中的数据,我们需要使用 UPDATE 语句。有两种使用UPDATE的方式;

1. 更新表中的特定行。
2. 更新表中的所有行。

2.1 更新表中特定的行。

基本语法是:update user set username = 'xxxx' where id=3;

上面的语法的含义是: 更新表中user中的数据,字段名为 username这个字段,它的条件是根据 id=3 这个条件进行更新的。

如下图所示:

2.2 更新表中特定的行中的多个字段

基本语法是:update user set username = 'yyy', password='aaaa' where id = 3;

如下图所示:

如上更新多个列字段时,使用一条 set 命令,每个 "列=值" 对之间用逗号分隔(最后一列不用逗号)。

2.3 更新表中所有的行。

如果我们想更新表中所有的行,那么我们就不需要where这个条件即可;如下:

update user set username = '我是空智', password = '123456abcder';

如上是更新user表中的username字段和password的字段的所有值更改成为 '我是空智',password="123456abcdef" 的值了,如下所示:

三:删除数据

从一个表中删除数据的话,需要使用DELETE语句。有两种使用DELETE的方式:

1. 从表中删除特定的行。
2. 从表中删除所有的行。

基本语法也是如下:

delete from user where id = 3;

如上语法的含义是:删除user表中的 id = 3 的数据。如下图所示:

3.2 删除表中所有的数据。

如果我们省略where这个条件,就会删除表中所有的数据了。基本语法如下:

delete from user;

执行结果如下所示:

SQL 增删改语句的更多相关文章

  1. SQL增删改语句

    一,插入数据 1.使用  insert ...values 语句插入单行或多行元组数据 insert  into 表名 (列名,列名,...,列名) values 值 表名:指被插入数据的表名 列名: ...

  2. SQL增删改语句常用

    创建table: create table tab_name( col1 type; 约束:主键-外键-非空-检查-唯一 col2 type; ); 删除表 : drop table tab_name ...

  3. 第16课-数据库开发及ado.net-数据库SQl,创建数据库和表,增删改语句,约束,top和Distinct,聚合函数介绍

    第16课-数据库开发及ado.net 数据库SQl,创建数据库和表,增删改语句,约束,top和Distinct,聚合函数介绍 SQL语句入门(脚本.命令) SQL全名是结构化查询语言(Structur ...

  4. Linq to sql 增删改查(转帖)

    http://blog.csdn.net/pan_junbiao/article/details/7015633   (LINQ To SQL 语法及实例大全) 代码 Code highlightin ...

  5. sql增删改查封装

    App.config文件 <?xml version="1.0" encoding="utf-8" ?> <configuration> ...

  6. 表结构修改以及sql增删改查

    修改表结构 修改表名 alter table 表名 rename 新名 增加字段 alter table 表名 add 字段名 数据类型 约束 删除字段 alter table 表名 drop 字段名 ...

  7. SQL Server高速生成SQL增删改查语句

    你还在手写程序生成SQL语句吗?你还在为由于马虎出错的SQL语句而感到无语吗?你还在为不知如何表达复杂的SQL语句而纠结吗?假设你的回答为"是".那你就OUT啦.快来试试应用SQL ...

  8. sql增删改查-转载

    一.增:有2种方法 1.使用insert插入单行数据: 语法:insert [into] <表名> [列名] values <列值> 例:insert into Strdent ...

  9. SQL 增删改查(具体)

    一.增:有3种方法 1.使用insert插入单行数据: insert [into] <表名> [列名] values <列值> insert into Strdents (na ...

随机推荐

  1. leetcode — path-sum-ii

    import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * Source : https://o ...

  2. sysbench的框架实现介绍

    sysbench是一个非常经典的综合性能测试工具,它支持CPU,IO,内存,尤其是数据库的性能测试.那它是怎么做到通用性的呢,总结一句话是大量运用了重载的方法. sysbench总体架构 sysben ...

  3. Spring Boot (十):邮件服务

    Spring Boot 仍然在狂速发展,才几个多月没有关注,现在看官网已经到 2.1.0.RELEASE 版本了.准备慢慢在写写 Spring Boot 相关的文章,本篇文章使用 Spring Boo ...

  4. DriverManager 驱动管理器类简介 JDBC简介(三)

    驱动程序管理器是负责管理驱动程序的,驱动注册以后,会保存在DriverManager中的已注册列表中 后续的处理就可以对这个列表进行操作 简言之,驱动管理器,就是字面含义,主要负责就是管理 驱动 概述 ...

  5. vb.net MakeWParam

    Private Function MakeWParam(loWord As Integer, hiWord As Integer) As Integer ) End Function

  6. 【c#】队列(Queue)和MSMQ(消息队列)的基础使用

    首先我们知道队列是先进先出的机制,所以在处理并发是个不错的选择.然后就写两个队列的简单应用. Queue 命名空间 命名空间:System.Collections,不在这里做过多的理论解释,这个东西非 ...

  7. [Go] golang缓冲通道实现管理一组goroutine工作

    通道1.当一个资源需要在goroutine之间共享时,通道在goroutine之间架起了一个管道2.无缓冲通道和有缓冲通道,make的第二个参数就是缓冲区大小3.无缓冲通道需要发送和接收都准备好,否则 ...

  8. 40K刚面完Java岗,这些技术必须掌握

    学习是一份苦差事,这句话真的不是说说而已,真的是你认真学习过,才会懂得,学习是多么的辛苦,这点我深有体会,但是我还是想说,没办法,想要更好的生活,你就要不断地努力学习. 所幸的是,程序员这个行业,学习 ...

  9. Java开发笔记(二十二)神奇的冒号

    Java中的标点符号主要有两类用途,一类是运算符,包括加号+.减号-.乘号*.除号/.取余号%.等号=.大于号>.小于号<.与号&.或号|.非号!.异或号^等等,另一类则是分隔符, ...

  10. 814-Binary Tree Pruning

    Description: We are given the head node root of a binary tree, where additionally every node’s value ...