阅读目录

一:插入数据

把数据插入表中的最简单方法是使用基本的 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. Linux基础知识第四讲,文件内容命令

    目录 一丶常用命令 1.cat命令演示以及常用选项 2.grep 搜索命令的使用 3.echo 以及 重定向的使用 4.管道概念 一丶常用命令 序号 命令 对应英文 作用 01 cat 文件名 con ...

  2. 第58章 Profile Service - Identity Server 4 中文文档(v1.0.0)

    IdentityServer通常在创建令牌或处理对userinfo或内省端点的请求时需要有关用户的身份信息.默认情况下,IdentityServer仅具有身份验证cookie中的声明,以便为此身份数据 ...

  3. vb.net連接SQL数据库

    '導入命名空間Imports System.Data.SqlClient '定義變量 Dim Sql As String 'SQL字串 Dim Sqlado As SqlConnection '连接数 ...

  4. Java学习笔记——判断字符Character类

    常用方法 下面所说的均是静态方法,也就是可以不创建对象直接调用 例:Character.isLetter(char c); isLetter 判断参数是否为字母(不分大小写),返回结果 isDigit ...

  5. 原生JS编写兼容IE6,7,8浏览器无缝自动轮播(带按钮切换)

    项目要求页面兼容IE6,7,8等浏览器,我们可能会遇到这个轮播效果,轮播板块要求:无限循环.自动轮播和手动切换功能,每一次滚动一小格,网上有很多这类插件,例如:swiper等! 但是很多都是不兼容IE ...

  6. springboot之JdbcTemplate

    springboot可以使用JdbcTemplate进行数据库访问,代码如下 添加pom文件 <parent> <groupId>org.springframework.boo ...

  7. npm run dev 启动错误:Module build failed: Error: No PostCSS Config found in:xxxxxxxxxxxxxx

    解决办法:在根目录新建postcss.config.js module.exports = { plugins: { 'autoprefixer': {browsers: 'last 5 versio ...

  8. 【代码笔记】Web-CSS-CSS Margin(外边距)

    一,效果图. 二,代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  9. 用 async/await 来处理异步

    昨天看了一篇vue的教程,作者用async/ await来发送异步请求,从服务端获取数据,代码很简洁,同时async/await 已经被标准化,是时候学习一下了. 先说一下async的用法,它作为一个 ...

  10. 2019-02-18 扩展Python控制台实现中文反馈信息之二-正则替换

    "中文编程"知乎专栏原文地址 续前文扩展Python控制台实现中文反馈信息, 实现了如下效果: >>> 学 Traceback (most recent call ...