现在只进行了SQL语句的部分学习,待学习完成后,会将剩余内容补充完整。猛的会过神来才发现,原来时间在无声无息之间过的这么快,已经是汶川地震11周年纪念日了,还有便是祝天下母亲,母亲节快乐。
2019年5月12日记
更新SQL实现用户管理、SQL语句创建表添加约束和SQL修改表结构三篇文章。
2019年5月23日记
通过SQL语句进行数据库的管理
数据读取
单表查询
-
查询表中所有数据
select * from emp;
-
查询表中指定数据
select EMPNO,MGR from emp;
-
查询结果使用别名
方式1:select EMPNO ROW1,MGR ROW2 from emp; 方式2:select EMPNO as ROW1,MGR as ROW2 from emp; 方式3:select EMPNO"我",MGR"ni" from emp;
-
使用连接符号
语法是:字段名||'字符'||字段名||.... 注意:一个拼好的连接在结果集中是作为一个新的字段显示,可以使用别名优化显示 select ENAME||'的工资是'||SAL as String from EMP;
-
去除重复
去除重复,相同的字段名称只显示一个,两行相同的内容如果重复取其一,按照行去重
select distinct job,mgr from EMP; select distinct job from EMP;
-
排序
排序 升序ASC,降序DESC select * from EMP order by SAL desc; 如果order by是两个选项,先按照字段1排序,如果字段1一致,再按照字段2排序 select * from EMP order by EMPNO,ENAME asc;
-
Where 关键字进行结果筛选
-
单条件筛选.
因为语句过于简单,并没有实例。
-
多条件筛选
-
and连接符连接的多条件筛选
select * from EMP where comm is not null and comm > 0;
-
模糊查询(like)
-
字符%:表示0个或者多个字符,中文的话请用两个%%表示
//比如查询名字是以A开头的数据 select * from EMP where ENAME like 'A%';
-
字符_:表示任意单个字符,
//比如查询第二个名字中是A的数据 select * from EMP where ENAME like '_A%';
-
字符[]:表示括号内的任意一个
注意:Oracle中的"[]"使用方式是必须使用函数regxp_like,且其中不能再有别的匹配字符
//比如查询名字的第一个字符是C或D的数据 select * from EMP where regexp_like(ENAME,'[CD]LARK');
-
搜索的内容中含有转义字符
// escape 后面的字符在引号中就变成了普通字符 //escapse 可以将普通字符变为转义字符,转义字符可以将特殊字符转化为普通字符 //比如要查询的条件中带有 _ 下面两句同理 select * from EMP where ENAME like '%._%' escape '.'; select * from EMP where ENAME like '%/_%' escape '/';
-
使用 or / in 关键字
//使用or关键字,进行或条件的筛选。 select * from emp where job='SALESMAN' or job='ANALYST' or job='MANAGER' order by job //使用in关键字,也可以进行或筛选,但是in中的内容只能为一个字段的值。 select * from emp where job in('SALESMAN','ANALYST','MANAGER')
-
-
-
多表查询
多表查询是指要查询的数据并不在一张数据库表中,需要将两张甚至两张以上的表格连接起来做查询操作,其中笛卡儿积是做多表查询的理论基础,具体理解可以参考这篇博客MYSQL之笛卡尔积,虽然讲解的内容是MYSQL的,但是理论同样适用。
笛卡儿积:笛卡尔乘积是指在数学中,两个集合X和Y的笛卡尓积(Cartesian product),又称直积,表示为X×Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员
Oracle使用的多表查询主要有两个版本,SQL92和SQL99,数字代表年份,现在就这两个版本的语法及使用介绍。
- SQL92
- SQL99
具体可参考如下这篇文章 第二部分:SQL多表连接(SQL92 and SQL99)
子查询
具体可参考如下这篇文章 第二部分:子查询
数据管理
单表级别的增删改操作
主要是对一张数据表上的数据进行的增删改操作,
具体可以参考这篇文章 SQL增删改(单表操作)
表级别的增删改操作
主要是介绍表级别的增删改,比如增加表,修改表结构等。
增加表并设计相关约束请参考这篇文章:SQL语句二维表管理
修改表结构请参考这篇文章:SQL修改表结构
通过SQL语句管理用户
SQL实现用户的管理在一篇新的博客上:通过SQL语句管理账户