关于SQL的常用操作(增、删、改、查)
关于SQL的常见操作主要是增、删、改、查。
1、增,顾名思义就是新增数据(insert into)。该语句用于向表中插入新纪录。insert into有两种用法。
(1)、无需指定要插入数据的列名,只提供被插入的值,
语法:INSERT INTO table_name VALUES (value1,value2,value3,...);
但是这种方法要注意一点,那就是需要列出插入行中的每一列数据,如果某一列没有数据的话,可以使用引号替代,如果没有列出插入行中每一列数据,就会报错。
(2)、指定列名及被插入的值,
语法:INSERT INTO table_name (column1,column2,column3,...) VALUES (value1,value2,value3,...);
通过这种方法也可以向指定的列中添加数据
(3)、一次性向表中插入多条数据。
操作为,insert into table_name values (value1,value2,...), (value3, value4,...), (value5, value6)。可以指定列名,也可以不指定列名,如果指定了列名,则是向指定列添加数据。如果不指定列名,那么则需要列出插入行中的每一列数据。
2、删,也就是删除数据,这里其实也有两种,delete与drop。然而这两种的效果确实不一样的,虽然都能删除数据。
(1)、delete。该语句用于删除表中的记录。语法:DELETE FROM table_name WHERE some_column=some_value;
例如,要从myTable表中删除title为 ‘扫毒’的数据。操作为 delete from [dbo].[myTable] where title='扫毒'
如果是要删除myTable表中的所有数据,操作为 delete from [dbo].[myTable],此时表中的数据都会被删除,但是表的结构、属性、索引等仍保持不变,也不会释放内存空间。
注意:使用delete删除数据时,如果省略了where子句,那么所有的数据都将会被删除。
(2)、drop。该语句用于删除表,且内存空间会被释放。
例如,要删除表myTable,那么操作为,drop table [dbo].[myTable]
(3)、删除表中重复的数据。可以这样做,首先去除重复,再获取n条数据并将其插入到临时表中,再将原表的数据删除,然后将临时表的数据插入到原表,最后删除临时表
例如表myTable中有多条title相同的数据,要删除相同的,只保留一条,那么操作为:
select distinct * into [dbo].[newTable] from [dbo].[myTable];
delete from [dbo].[myTable];
insert [dbo].[myTable] select * from [dbo].[newTable];
drop table [dbo].[newTable];
3、改,也就是更改表中的数据(update),用于更新表中已存在的数据。
语法:UPDATE table_name SET column1=value1,column2=value2,... WHERE some_column=some_value;
例如,要将myTable表中 title为 ‘扫毒’ 的这条数据,将play改为 ‘古天乐、张家辉、刘青云’,那么操作为,update [dbo].[myTable] set play='古天乐、张家辉、刘青云' where title='扫毒'
注意:使用update更新表中数据时,如果省略了where子句,那么表中所有数据都将被更新。
4、查,也就是查询表中的数据(select)。
语法:SELECT column_name,column_name FROM table_name; 或 SELECT * FROM table_name;
例如,要查询表myTable中的所有数据,可以使用 select * from [dbo].[myTable] 或者将 "*"更改为表中数据行每一列的数据名。
(1)、选取表中包含某字符的数据。
例如,选取表myTable中play包含 ‘古’ 的所有数据,则操作为,select * from [dbo].[myTable] where play like '%古%'
(2)、选取表中以某字符开始的数据。
例如,选取表myTable中play以 “古” 开头的所有数据,则操作为,select * from [dbo].[myTable] where play like '古%'
(3)、选取表中以某字符结尾的数据。
例如,选取表myTable中play以 “古” 结尾的所有数据,则操作为,select * from [dbo].[myTable] where play like '%古'
(4)、选取表中指定长度包含指定字符的数据。
例如,选取表myTable中play包含三位且中间为 “古”的数据,则操作为 select * from [dbo].[myTable] where play like '_古_'
选取表myTable中play包含三位且开头为 “古”的数据,则操作为 select * from [dbo].[myTable] where play like '古__'
选取表myTable中play包含三位且结尾是 “古” 的数据,则操作为 select * from [dbo].[myTable] where play like '__古'
ps:% => 代表0个或多个字符
_ => 代表1个字符
(5)、使用in操作符,该操作符允许在where子句中规定多个值。
例如,要选取表myTable中title为 "扫毒" 或 "贪狼" 的数据,则操作为 select * from [dbo].[myTable] where title in ('扫毒', '贪狼')
(6)、between操作符,选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
例如,要选取表myTable中score 介于 10 到 200 间的数据。则操作为 select * from [dbo].[myTable] where score between 10 and 200
注意:在某些数据库中,BETWEEN 选取介于两个值之间但不包括两个测试值的字段。
在某些数据库中,BETWEEN 选取介于两个值之间且包括两个测试值的字段。
在某些数据库中,BETWEEN 选取介于两个值之间且包括第一个测试值但不包括最后一个测试值的字段。
(7)、选取要返回指定数目的数据(select top)。
语法:SELECT TOP number|percent column_name(s) FROM table_name;
例如,要选取表myTable中前100条数据,则操作为 select top 100 * from [dbo].[myTable]
选取表myTable中前50%的数据,则操作为 select top 50 percent * from [dbo].[myTable]
(8)、返回表中唯一不同的值(distinct)。
语法:SELECT DISTINCT column_name,column_name FROM table_name;
例如表myTable中有多条 title 为 ‘扫毒’的数据,现在只想返回一条,那么操作为 select distinct title from [dbo].[myTable]
关于SQL的常用操作(增、删、改、查)的更多相关文章
- 好用的SQL TVP~~独家赠送[增-删-改-查]的例子
以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化. 本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...
- django单表操作 增 删 改 查
一.实现:增.删.改.查 1.获取所有数据显示在页面上 model.Classes.object.all(),拿到数据后,渲染给前端;前端通过for循环的方式,取出数据. 目的:通过classes(班 ...
- iOS sqlite3 的基本使用(增 删 改 查)
iOS sqlite3 的基本使用(增 删 改 查) 这篇博客不会讲述太多sql语言,目的重在实现sqlite3的一些基本操作. 例:增 删 改 查 如果想了解更多的sql语言可以利用强大的互联网. ...
- django ajax增 删 改 查
具于django ajax实现增 删 改 查功能 代码示例: 代码: urls.py from django.conf.urls import url from django.contrib impo ...
- iOS FMDB的使用(增,删,改,查,sqlite存取图片)
iOS FMDB的使用(增,删,改,查,sqlite存取图片) 在上一篇博客我对sqlite的基本使用进行了详细介绍... 但是在实际开发中原生使用的频率是很少的... 这篇博客我将会较全面的介绍FM ...
- C# ADO.NET (sql语句连接方式)(增,删,改)
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
- ADO.NET 增 删 改 查
ADO.NET:(数据访问技术)就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 ADO.NET所有数据访 ...
- MVC EF 增 删 改 查
using System;using System.Collections.Generic;using System.Linq;using System.Web;//using System.Data ...
- MongoDB增 删 改 查
增 增加单篇文档 > db.stu.insert({sn:'001', name:'lisi'}) WriteResult({ "nInserted" : 1 }) > ...
- python基础中的四大天王-增-删-改-查
列表-list-[] 输入内存储存容器 发生改变通常直接变化,让我们看看下面列子 增---默认在最后添加 #append()--括号中可以是数字,可以是字符串,可以是元祖,可以是集合,可以是字典 #l ...
随机推荐
- mybatis拦截器案例之获取结果集总条数
最近做的项目前端是外包出去的,所以在做查询分页的时候比较麻烦 我们需要先吧结果集的条数返回给前端,然后由前端根据页面情况(当前页码,每页显示条数)将所需参数传到后端. 由于在项目搭建的时候,是没有考虑 ...
- 连接oracle数据库报错:TNS-12516 TNS:listener could not find available handler with matching protocol stack解决方法
导致此问题的可能原因为:数据库的当前会话说不满足造成的. 解决方法如下: (1)连接数据库: [localhost@oracle]$:sqlplus /nolog sql>conn / as ...
- iptables说明(转)
原文:https://www.linuxidc.com/Linux/2016-09/134832.htm 前提基础: 当主机收到一个数据包后,数据包先在内核空间中处理,若发现目的地址是自身,则传到用户 ...
- p1 批梯度下降算法
(蓝色字体:批注:绿色背景:需要注意的地方:橙色背景是问题) 一,机器学习分类 二,梯度下降算法:2.1模型 2.2代价函数 2.3 梯度下降算法 一,机器学习分类 无监督学习和监督学习 无监 ...
- js点击空白处触发事件
我们经常会出现点击空白处关闭弹出框或触发事件 <div class="aa" style="width: 200px;height: 200px;backgroun ...
- linux下的各个目录(待填)
/系统目录 / 下的目录: 1./bin(binary,二进制文件):打开里面会发现全是绿色的文件,也就是可执行文件,而且名字都是系统命令的名字,其实每个系统命令都是一个小的可执行的文件,这些命令都存 ...
- docker+phantomjs+haproxy 搭建phantomjs集群
目标: 搭建一个远程的phantomjs服务器,提供高可用服务,支持并发. 原料: 1.docker环境.docker-compose环境 2.phantomjs镜像: docker.io/werni ...
- 第87讲:scala中使用For表达式做查询
今天我们来学习下如何用for表达式在scala中做查询. 先来看看示例代码 case class Book(title:String,authors:List[String]) object text ...
- libgdx游戏中的中文字体工具类
// ---------全局Font------------ static FreeTypeFontGenerator Generator; static BitmapFont Font; stati ...
- hive中数据存储格式对比:textfile,parquent,orc,thrift,avro,protubuf
这篇文章我会从业务中关注的: 1. 存储大小 2.查询效率 3.是否支持表结构变更既数据版本变迁 5.能否避免分隔符问题 6.优势和劣势总结 几方面完整的介绍下hive中数据以下几种数据格式:text ...