龙空技术网

sql的语句

大白大大白 116

前言:

现在各位老铁们对“sql like 转义符”大约比较着重,咱们都想要分析一些“sql like 转义符”的相关文章。那么小编也在网络上收集了一些关于“sql like 转义符””的相关资讯,希望看官们能喜欢,朋友们一起来了解一下吧!

1.了解

1.1. 存放数据的地方 4

1.2. 前台--》后台----》数据库 可以叫数据库,或数据库管理系统 4

1.3. 三范式 4

1.3.1. 1NF:最小原子 2NF:主键依赖 3NF:消除传递依赖 4

1.4. 创始人:拉里,埃里森 4

1.5. 基本单位是:用户,Oracle,是那个用户是有多少表,MySQL,这个数据库是有多少表 4

1.6. Oracle体系 4

2. 增删改 5

2.1. 当增删改的数据时,会自动开启事物,允许回滚一次,可以后退一次 5

2.2. 格式; insert into(所需插入的表名)values(所需插入的值) 5

3. 查询 select 5

3.1. 基础 5

3.1.1. where过滤行记录:就是过滤某些数据 6

3.1.2. 查询思路: 1、查询的数据 2、数据的来源 3、条件 6

3.1.3. 判断符号: 6

3.1.4. 条件逻辑符 6

3.1.5. 条件判断 7

3.1.6. 集合 7

3.1.7. 排序和分组 7

3.1.8. 函数 内置函数 8

3.1.9. 条件查询 9

3.1.10. 伪列 系统中存在,但是不会显示出来的,需要人工需要在手动列出来的 10

3.2. 联表查询 10

3.2.1. 92语法 10

3.2.2. 99语法 join左右放表名 on后面放条件 join和on一组一个,无法分开 11

4. 视图 12

4.1. 介于表(存在)与结果集(不存在)之间的虚拟表,可以存储的 12

4.2. 作用: 1、区分相同数据不同的查询 2、隐藏内部细节 3、重启:封装select语句,命名 12

4.3. 操作 13

4.3.1. 1、前提:creat view ->组 connet resource 2、授权:sqlplus/noking 3、sys登录:conn sys/123456@orcl as sysdba 4、授权:grant dba to scott; 5、回收:revoke dba from scott; 6、重新登录:create or replace view 视图名 as select 语句 [with read only] 7、删除视图:但不会删除结果集:drop view 视图名 13

5. 索引 13

5.1. 了解 13

5.1.1. 1、提高查询效率,对大量数据有效果,少量没有效果,因为需要数据库维护 2、索引的创建或删除,对外使用没有影响 3、类似于目录 13

5.2. 操作 13

5.2.1. 创建:create index 索引名 on 表名(字段列表) 13

5.2.2. 删除:drop index 索引名 13

5.2.3. 使用索引: select * from 表名 where 可跟字段列表判断语句 13

5.3. 创建索引注意事项: 1、唯一性较好的字段建立索引 2、大数据才有效果(万级别) 3、主键|唯一,唯一索引 13

6. 表设计与创建 14

6.1. 插入表 14

6.1.1. insert into 表名 values (按照创建表的规范插入信息) 14

6.2. 删除表 14

6.2.1. drop table 表名 14

6.3. 创建表 14

6.3.1. 规则: 1、满足三范式 2、表,字段,约束,表的关联 14

6.3.2. 创建表 14

6.3.3. 字段关键规范 14

6.4. 表设计 14

6.4.1. 拷贝已有的表结构 14

6.4.2. 创建表+约束,默认名字(没有名字) 15

6.4.3. 名词解释 1、主键:唯一且非空(primary key) 2、唯一: 唯一(unique) 3、非空:不能为空(not null) 4、默认: 自己不设定值,系统默认给值(default(sysdate)) 5、外键:参考其他表某个字段 6、检查:自定义规则(check(所检查的字段名的判断语句)) 15

6.4.4. 创建表+约束,指出名字 15

6.4.5. 创建表后在追加约束 16

6.4.6. 外键 16

6.4.7. 删除数据 17

6.4.8. 删表 17

6.5. delete(删除)和数据截断(truncate) 18

6.5.1. delete: 1、delete from表 :表中数据全删 2、delete from 表 where 条件 :满足条件可以删 3、默认开启事物 trancate: 1、不会开启事物 2、在表中结构检查,一旦被从表引用,不允许使用数据截断 18

7. 序列 18

7.1. 类似于快进,工具类 生成有规律的序号数字,为表中主键,或类似于主键字段设置值用的 18

7.2. 格式: creat sequence 序列名 start with 起始值 inrement by 步进 select 序列名 nextval(下一个)或currval(当前) 18

7.3. 关键字: 1、nextval(下一个) 2、currval(当前),第一次时使用当前,需要先使用一次nextval 18

8. 事物 18

8.1. 是为了保证数据的安全有效 19

8.2. 四个特点(ACID) 19

8.2.1. Atomic 原子性:事物中所有数据的修改,要么全部执行,要么全部不执行 Consistrnce 一致性:事物完成时,要使所有的数据都保证有一致性的状态 Isolation 独立性:事物应该在另一个事物对数据的修改前或修改以后进行访问 Durability 持久性:保证事物对数据库的修改持久有效,即使发生系统故障也不应该丢失 19

8.3. 脏读和幻读 19

8.3.1. 脏读: 读未提交 19

8.3.2. 不可重复读; 1、读未提交 2、读已提交 19

8.3.3. 幻读: 1、读未提交 2、读已提交 3、可重复读 19

8.4. 事物的开启 20

8.4.1. 做增删改操作的时候就会自动开启事物,增:insert 删:delete 改:unpdate:DML,管理语言 20

8.4.2. DCL :grant,revoke,控制语句,授权的,回收权限的,控制语言 20

8.4.3. 创建(create),修改(alter),删除(drop):DDL定义语言 20

8.5. 事物的关闭 20

8.5.1. 提交 1、正常执行ddl 2、comit命令 3、正常关闭客户端 4、dcl 关闭: 1、rollback 2、非法关闭 20

删除约束: 先修改表,在删除约束 alter table 表名 constraints 约束名 20

1.了解1.1.存放数据的地方1.2.前台--》后台----》数据库

可以叫数据库,或数据库管理系统1.3.三范式1.3.1.1NF:最小原子

2NF:主键依赖

3NF:消除传递依赖1.4.创始人:拉里,埃里森1.5.基本单位是:用户,Oracle,是那个用户是有多少表,MySQL,这个数据库是有多少表1.6.Oracle体系2.增删改2.1.当增删改的数据时,会自动开启事物,允许回滚一次,可以后退一次2.2.格式;

insert into(所需插入的表名)values(所需插入的值)3.查询

select3.1.基础3.1.1.where过滤行记录:就是过滤某些数据select 数据(结果集)from 表名 where 行过滤条件注意:

1、在where中不能使用别名,因为执行流程问题,是先执行where在执行select执行顺序先找到表,在where判断是否有数据,后select查询结果集

from--->where------>select3.1.2.查询思路:

1、查询的数据

2、数据的来源

3、条件3.1.3.判断符号:1、>:大于

2、<:小于

3、!=、<>:取反

4、>=:大于等于

5、<=:小于等于

6、=:等于3.1.4.条件逻辑符1、值1 or 值2:满足一个条件便可

2、值1 and 值2:需要两个条件都要

3、not 值:正体取反

4、between 值1 and 值2:值1<值2,包含值1和包含值2

5、空:null

6、in:相当于多个or,in(值1,值2,值3.。。。)满足里面多个条件,也可以子查询

7、exists 了解 存在即保留,存在即合法 select * from 数据来源 where 后 exists(结果集);3.1.5.条件判断1、is:是,条件判断

2、union all:去除重复行

3、is null:不存在,空

4、别名:as 或 空格

5、“”,双引号:原样输出

6、‘’,单引号:字符串,比较值

7、nvl(值1,值2):当值1为空null,取值2,当值1不为空null,取值1

8、||:字符串拼接

9、null和数字运算还是null

10、distinct:去重3.1.6.集合1、全集:Union all,俩张表合并在一起,不去重

2、并集:Union,俩张表合并在一起,去重

3、差集:Minus,大结果集减小结果集,重复的没有了,多余的出来了

4、交集:Intersent,两个表重复的,找出来3.1.7.排序和分组排序

order bydesc:降序不写默认升序执行流程:from--->where----->select----->order bynulls first:默认是把null排后面,加first可以把null排前面分组

group by3.1.8.函数

内置函数单行函数

单行记录都能返回一个结果日期函数:

1、sysdate:当前日期

2、select 当前日期可加减 from 表名

3、add_months():可以按月份加,add_months(当前时间表名,几个月)

4、last_day():当月最后一天,括号内放当前时间表名

5、next_day(sysdate,'星期一') 下一个要过的

6、to_date(c,m)  字符串以指定格式转换为日期

7、to_char(d,m)  日期以指定格式转换为字符串 :如果出现中文,前后添加""

8、判定函数 decode(字段,值1,结果1,值2 , 结果2,…, 默认值)多行函数

多行记录返回一个结果聚合函数:

1、count():一行算一个

2、sum:总和

3、max():最高

4、min():最低

5、avg():平均注意;

1、当select后使用了聚合函数,就不能用非聚合函数,非分组函数

2、null不参与聚合函数运算(包含avg平均聚合函数)

3、where后面不能跟聚合函数,having后可以跟聚合函数分组函数:

group by

格式;

select 数据 from 数据来源 where 行过滤条件 group by 分组字段 order by 排序字段

执行流程;

from--->where---->group by----->select (聚合函数)---->order by行转列select 分组函数 聚合函数(单行函数 decode(字段,值1,值2),单行函数 decode(字段,值1,值2),单行函数 decode(字段,值1,值2)) from 表名 group by 分组函数名3.1.9.条件查询模糊查询:like '%a%,精准匹配:like‘具体的名字'效率低

like经常和%,_配合使用

1、%任意个任意字符

2、_占用一个字符

3、escape('单个字符')指转义符,例子;like '%a%%' escape('a')3.1.10.伪列

系统中存在,但是不会显示出来的,需要人工需要在手动列出来的rovid相当于每一条数据的记录地址,在数据插入数据库的时候就已经存在,需要人工自行添加rovid伪列才会得到地址作用;区分重复数据

1、在有主键,唯一,非空,可根据主键区分

2、若没有主键,重复数据,区分数据可以用rovidrownumrownum是结果集才有的序号,一个select 一个rownum序号,伪列从1开始,每次加1若where后rownum不确定,需要确定结果集,在判断,就不会有问题分页查询例子:

select ename, sal, rownum, num//查询确定的结果集

from (select ename, sal, rownum num from emp )//确定结果集

where num > 5//操作rownum序号

and num < 10

order by sal;3.2.联表查询3.2.1.92语法内连接

连接条件,就是在where后面等值连接若是在表中有多个相同的字段,需指明出处,加别名非等值连接俩张表没有同名字段,也可实现非等值连接,范围连接便可自连接一张表,给俩个别名,相当一复制一份,进行自己和自己连接笛卡尔积俩张表连接,会有许多不需要的数据也会显示出来,造成很多冗余,给系统浪费很多空间,已经增加处理时间外连接外左连接在from表名出,逗号左边为左连接外右连接在from表名出,逗号右边为右连接在where后连接条件后加(+)相当于非主表3.2.2.99语法

join左右放表名

on后面放条件

join和on一组一个,无法分开笛卡尔积cross join内连接自然连接natural join连接条件

join .....on(可做等值,也可以做非等值)同名字段:join using 指定那一个字段做等值连接,不能指明出处外连接左连接left join on:写在左边,主表在左全连接full join:俩个表都可以成为主表,等值的才连接右连接right join on :主表在右,主表在右4.视图4.1.介于表(存在)与结果集(不存在)之间的虚拟表,可以存储的4.2.作用:

1、区分相同数据不同的查询

2、隐藏内部细节

3、重启:封装select语句,命名4.3.操作4.3.1.1、前提:creat view ->组 connet resource

2、授权:sqlplus/noking

3、sys登录:conn sys/123456@orcl as sysdba

4、授权:grant dba to scott;

5、回收:revoke dba from scott;

6、重新登录:create or replace view 视图名 as select 语句 [with read only]

7、删除视图:但不会删除结果集:drop view 视图名5.索引5.1.了解5.1.1.1、提高查询效率,对大量数据有效果,少量没有效果,因为需要数据库维护

2、索引的创建或删除,对外使用没有影响

3、类似于目录5.2.操作5.2.1.创建:create index 索引名 on 表名(字段列表)5.2.2.删除:drop index 索引名5.2.3.使用索引:

select * from 表名 where 可跟字段列表判断语句5.3.创建索引注意事项:

1、唯一性较好的字段建立索引

2、大数据才有效果(万级别)

3、主键|唯一,唯一索引6.表设计与创建6.1.插入表6.1.1.insert into 表名 values (按照创建表的规范插入信息)6.2.删除表6.2.1.drop table 表名6.3.创建表6.3.1.规则:

1、满足三范式

2、表,字段,约束,表的关联6.3.2.创建表create table 表名 (字段名,类名,约束,字段。。。。。)6.3.3.字段关键规范1、字段名 bumber(5,2):5代表是整数精确5位,2是小数点后2位,可以不要2,只要整数,也可以要小数点

2、字段名 varchar2(6):默认是6个字节一个汉字是3个字节,varchar2(6 char):默认是6个汉字

3、字段名 date :时间规范6.4.表设计6.4.1.拷贝已有的表结构1、creat table 需要创建表名 as select 字段列表 from 已有表名 where 1!=1:只有表头

2、creat table 需要创建表名 as select 字段列表 from 已有表名 :会拷贝出表头和里面的内容6.4.2.创建表+约束,默认名字(没有名字)格式:

直接在创建表的时候在语句后面加约束(约束没有名字)优缺点;

1、书写简单

2、不便于后期维护6.4.3.名词解释

1、主键:唯一且非空(primary key)

2、唯一: 唯一(unique)

3、非空:不能为空(not null)

4、默认: 自己不设定值,系统默认给值(default(sysdate))

5、外键:参考其他表某个字段

6、检查:自定义规则(check(所检查的字段名的判断语句))6.4.4.创建表+约束,指出名字

参见: 删除约束:

先修改表,在删除约束

alter table 表名 constraints 约束名 (因为有约束名)

1、在创建表的时候在语句的后面添加约束之前给约束加个别名(constraints 别名)关键字:

constraints2、在创建表的时候在已经结束语句的时候,把从constraints开始到结尾的,放到下一行优点:

因为约束有了名字,类似于有了java报出异常,见名知意,可以迅速找到问题点,解决问题6.4.5.创建表后在追加约束

参见: 删除约束:

先修改表,在删除约束

alter table 表名 constraints 约束名 (因为有约束名)

先修改表,在追加约束alter table 表名 add constraints 到结尾关键字;

1、alter 修改

2、add 追加6.4.6.外键创建外键关键字:

references格式:

表名 关键子 references 子表名(字段名)在父表中创建一个和子表中一样的字段名与关键字,用外键关键字,子表表名(字段名)外键约束,有外键约束的是从表关键子:

foreign key追加外键约束:

先修改表名追加约束给个约束别名外键约束父表字段名约束字表表名(字段名)格式;

alter 关键字 父表名 add constraints 约束别名 foreign key (父表的字段名)reference 字表表名(字段名)6.4.7.删除数据1、设置表中主外键后加on delete set null

在删除某一个数据delete from 父表名 where sid=01(判断语句);只会没有主外键的一个空了2、先删从表在删主表

alter table 子表名 drop column 主外键字段名;

alter table 父表名 drop column 主外键字段名;3、设置表主外键后on delete cascade

在删除某一个数据delete from 父表名 where sid=01(判断语句);会整行没有6.4.8.删表1、先子后父,分开操作删表,默认和一起操作无序分开操作

drop table 子表名;

drop table 父表名;2、主表后cascode costranit

drop table 父表名 cascode costranit;6.5.delete(删除)和数据截断(truncate)6.5.1.delete:

1、delete from表 :表中数据全删

2、delete from 表 where 条件 :满足条件可以删

3、默认开启事物

trancate:

1、不会开启事物

2、在表中结构检查,一旦被从表引用,不允许使用数据截断7.序列7.1.类似于快进,工具类

生成有规律的序号数字,为表中主键,或类似于主键字段设置值用的7.2.格式:

creat sequence 序列名 start with 起始值 inrement by 步进

select 序列名 nextval(下一个)或currval(当前)7.3.关键字:

1、nextval(下一个)

2、currval(当前),第一次时使用当前,需要先使用一次nextval8.事物8.1.是为了保证数据的安全有效8.2.四个特点(ACID)8.2.1.Atomic 原子性:事物中所有数据的修改,要么全部执行,要么全部不执行

Consistrnce 一致性:事物完成时,要使所有的数据都保证有一致性的状态

Isolation 独立性:事物应该在另一个事物对数据的修改前或修改以后进行访问

Durability 持久性:保证事物对数据库的修改持久有效,即使发生系统故障也不应该丢失8.3.脏读和幻读8.3.1.脏读:

读未提交意思;

事物T1更新了一行数据,还没有提交所做的修改,T2读取更新后的数据,T1回滚,T2读取数据无效8.3.2.不可重复读;

1、读未提交

2、读已提交8.3.3.幻读:

1、读未提交

2、读已提交

3、可重复读意思;

事物T1读取一条带WHERE条件的语句,返回结果集,T2插入一条新纪录,恰好也是T1where的条件,T1再次查询,结果集中又看到T2的记录,新纪录就叫幻读8.4.事物的开启8.4.1.做增删改操作的时候就会自动开启事物,增:insert 删:delete 改:unpdate:DML,管理语言8.4.2.DCL :grant,revoke,控制语句,授权的,回收权限的,控制语言8.4.3.创建(create),修改(alter),删除(drop):DDL定义语言8.5.事物的关闭8.5.1.提交

1、正常执行ddl

2、comit命令

3、正常关闭客户端

4、dcl

关闭:

1、rollback

2、非法关闭删除约束:

先修改表,在删除约束

alter table 表名 constraints 约束名

参见: 创建表+约束,指出名字 (因为有约束名), 创建表后在追加约束 (因为有约束名)

标签: #sql like 转义符