数据库系列学习(四)-数据的过滤

1.准备学习的数据库

--创建学生表
create table T_Student
(
    --identity表示主键自增长,从1开始,且每次加1
    SId int primary key identity(1,1),
    SName nvarchar(10),
    SGender varchar(2) default(‘男‘),
    SAge int
)
--插入数据
--全部列名与值一一对应
insert into T_Student(SName,SGender,SAge) values(‘李三‘,‘男‘,13)
--全部列名都赋值,则values前边值可省
insert into T_Student values(‘李四‘,‘女‘,14)
--因为SGender有默认值,所以写也有有值
insert into T_Student(SName,SAge) values(‘王五‘,15)
insert into T_Student values(‘赵六‘,‘男‘,16)
insert into T_Student values(‘Kim‘,‘男‘,17)
insert into T_Student values(‘Lily‘,‘女‘,18)
insert into T_Student values(‘Jerry‘,‘女‘,19)

2.select基本用法

(1)简单的数据检索

(2)检索出需要的列

(3)给列设别名

(4)按条件过滤

(5)数据汇总

(6)排序

3.高级数据过滤

(1)通配符过滤

A:单字符匹配

B:多字符匹配

C:集合匹配

D:使用否定匹配法

E:使用通配符过滤虽然方便,但是会对数据库进行全表扫描,所以执行速度非常慢

(2)空值检测

首先插入两条记录先

开始查询

(3)反义运算符

(4)多值检测

(5)范围检测

(6)低效的“where 1 = 1”

在动态组装sql语句时会用到

缺点:使用“1=1”的过滤条件以后数据库系统就无法使用检索等查询优化策略,数据库系统就会被迫对每行数据进行扫描,即全表扫描

时间: 2024-10-25 21:09:57

数据库系列学习(四)-数据的过滤的相关文章

数据库系列学习(二)-数据表的创建和管理

1.数据类型 A:整数类型 bit,int,smallint,tinyint [与操作系统位数有关] B:数值类型 decimal,numeric,money,smallmoney,float,real [可存小数] C:字符相关类型 char,varchar,text,nchar,nvarchar,ntext D:日期时间类型 datetime(精确到0.01秒),smalldatetime(精确到分钟),timestamp E:二进制类型 image [经图片,视频转为二进制,保存到数据库]

数据库系列学习(五)-数据的检索

1.执行本次学习的sql脚本 --创建学生表 create table T_Student ( --identity表示主键自增长,从1开始,且每次加1 SId int primary key identity(1,1), SName nvarchar(10), SGender varchar(2) default('男'), SAge int ) --插入数据 insert into T_Student values('王五','女',17) insert into T_Student val

数据库系列学习(三)-数据的增、删、改

1.开始准备学习的数据库 本次学习,用到的数据库,sql语句如下 2.数据的插入 A:简单的insert语句 B:简化的insert语句 C:非空约束对数据插入 的影响 学生表 中的 SName 为 不可空类型,插入的时候,必须赋值 D:主键对数据插入的影响 主键在同一张表中必须是唯一的,即插入的时候不能有重复 E:外键对数据插入的影响 外键是指向另一个表已有数据的约束,因此学生表中的SClassId 在 班级表中必须有对应的CId 3.数据的更新 A:带where子句的update语句 B:非

Android基础之十四数据存储 之 SQLite数据库详解

Android基础之十四数据存储 之 SQLite数据库详解 SQLite 是一款 轻量级的关系型数据库,它的运算速度非常快,占用资源很少,通常只需要几百 K 的内存就足够了,因而特别适合在移动设备上使用. SQLite 不仅支持标准的 SQL 语法,还遵循了数据库的 ACID( 原子性(Atomicity) .一致性(Consistency) . 隔离性(Isolation) . 持久性(Durability))事务,所以只要你以前使用过其他的关系型数据库,就可以很快地上手 SQLite.而

使用Sqoop1.4.4将MySQL数据库表中数据导入到HDFS中

问题导读:         1.--connect参数作用? 2.使用哪个参数从控制台读取数据库访问密码? 3.Sqoop将关系型数据库表中数据导入HDFS基本参数要求及命令? 4.数据默认导入HDFS文件系统中的路径? 5.--columns参数的作用? 6.--where参数的作用? 一.部分关键参数介绍 参数介绍 --connect <jdbc-uri> 指定关系型数据库JDBC连接字符串 --connection-manager <class-name> 指定数据库使用的管

mongo数据库导入导出数据

一.Mongodb导出工具mongoexport Mongodb中的mongoexport工具可以把一个collection导出成JSON格式或CSV格式的文件.可以通过参数指定导出的数据项,也可以根据指定的条件导出数据.mongoexport具体用法 C:\mongo\bin>mongoexport -help   options:     --help                  produce help message     -v [ --verbose ]        be m

Eclipse中java向数据库中添加数据

前面详细写过如何连接数据库的具体操作,下面介绍向数据库中添加数据. 注意事项:如果参考下面代码,需要 改包名,数据库名,数据库账号,密码,和数据表(数据表里面的信息) 1 package com.ningmeng; 2 3 import java.sql.*; 4 5 /** 6 * 1:向数据库中添加数据 7 * @author biexiansheng 8 * 9 */ 10 public class Test01 { 11 12 public static void main(String

C#中几种数据库的大数据批量插入

C#语言中对SqlServer.Oracle.SQLite和MySql中的数据批量插入是支持的,不过Oracle需要使用Orace.DataAccess驱动. IProvider里有一个用于实现批量插入的插件服务接口IBatcherProvider.批量插入的实现可以通过实现该接口来实现. /// <summary> /// 提供数据批量处理的方法. /// </summary> public interface IBatcherProvider : IProviderServic

ORACLE和SYBASE数据库中实现数据查询条数限制的SQL语句实现

一.概述 对于某些需要通过数据库与大量数据打交道的软件来说,处理性能相当的重要.为了保证软件能够将所有数据处理完而不至于崩溃,分批处理的思想应运而生.分批处理的具体做法是编写SQL语句,每次返回规定条数的数据给软件处理,待这一批数据处理完之后,再接着处理下一批. 本文通过对具体的数据库表(tb_employeeinfo)的操作过程,展示了ORACLE和SYBASE数据库中分批处理SQL语句的编写方法. 二.ORACLE数据库中的处理 首先,建立tb_employeeinfo表,其定义如下: be