SQL语句规范

SQL语句的所有表明、字段名全部小写,系统保留字、内置函数名、SQL保留字大写
连接符or、in、and、以及=、<=、>=等前后加上一个空格。
对较为复杂的sql语句、过程、函数加上注释,说明算法、功能。
SQL语句的缩进风格

  1. 一行有多列,超过80个字符时,基于列队齐原则,采用下行缩进
  2. where子句书写时,每个条件占一行,语句另起一行时,以保留字或者连接符开始,连接符右对齐。
  3. 多表连接时,使用表的别名来引用列。

    SQL的语言分类

    数据查询语句(DQL) select
    数据操纵语句(DML)Insert,Update,Delete
    数据定义语句(DDL)Create,Alter,Drop,Rename,Truncate
    事务控制语句(TCL)Commit,Rollback,SavePoint
    数据控制语句(DCL)Grant,Revoke

    SQL的注意事项

  4. SQL命令是大小写不敏感

  5. SQL命令可写成一行或多行
  6. 一个关键字不能跨多行或缩写
  7. 子句通常位于独立航,一边编辑,并易读

    作业

    1.什么是数据库,数据库有什么作用?
    数据库是数据的集合,统一存储在计算机仓库中方便用户管理和查看。

2.数据库有哪些分类?说明。
关系型数据库
常用
Oracle:Oracle(甲骨文)公司,多平台,性能最高,获得最高安全认证,适用于银行、电信、金融等大企业。
DB2:IBM公司,多平台,性能较高,获得最高安全认证,企业级应用量最广泛。
SQL Server:微软,windows平台,中小型网站和电子商务办公系统。
MySQL:瑞典MySQL AB公司,多平台,开源,中小型网站开发。
Access:微软,windows平台,小型系统使用。
MariaDB:MySQL的一个分支,完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。
不常用
Informix,Sybase,PostgreSQL
非关系型数据库
常用
Redis:开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型,Key—Value数据库,并提供多种语言的API。
MongoDB:基于分布式文件存储的数据库。由C++语言编写。为WEB应用提供可扩展的高性能数据存储解决方案。支持的查询云烟非常强大,单表查询的绝大部分功能,而且还支持对数据建立索引。
Cassandra:一个开源的、分布式、无中心、支持水平扩展、高可用的KEY-VALUE类型的NOSQL数据库。
Memcached:是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。
不常用
HBase、MemacheDB、BerkeleyDB、Tpkyo Cabinet

3.学习数据库在软件测试中的作用?
需求分析阶段:了解测试环境数据库、表、数据等信息、需求
用例设计阶段:测试数据准备
用例执行阶段:测试数据构造、测试结果数据检查、代码逻辑查看
自动化测试:测试脚本、数据、工具
性能压力测试:数据准备、性能数据分析
测试环境搭建:维护数据库、执行配置脚本、备份恢复数据库等。

4,简述客户端如何配置能连接到服务器。
1.安装服务端oracle server
2.解压客户端instantclient-basic-win-x86-64-11.2.0.1.0。
3.安装plsql developer 13
4.将客户端IP地址改为固定获取,服务端的配置文件tnsnames.ora中ID改为主机的IP后,且配置文件复制进入instantclient-basic-win-x86-64-11.2.0.1.0解压后的文件夹内。
5.输入环境变量(1) 增加TNS_ADMIN环境变量 TNS_ADMIN=E:\instantclient_11_2(2) 把TNS_ADMIN加入到Path变量。
6.打开PLSQL Developer—输入用户名和密码—配置—首选项
11.png
Oracle主目录路径为客户端解压目录,OCI库为客户端文件夹下的oci.dll文件,点击确定保存。

表格基本信息
QQ截图20201224205839.png
5.查询出部门30且工资高于1200的所有员工,显示员工的id,name和工资
select empno,ename,sal from emp where deptno=30 and sal>1200;
2.png
6.找到没有奖金的员工按姓名降序排列
select from emp where comm=null or comm=0 order by ename desc;
3.png
7.找到20部门所有员工的年薪包含奖金
select ename,sal
12+nvl(comm,0) from emp where deptno=20;
4.png
8.显示1980年入职的员工
select ename,hiredate from emp where to_char(hiredate,’yyyy’)=1980;
5.png
9.计算部门号为10的销售人员有几个
select count(ename) from emp where deptno=10;
6.png
10.查出薪资比Smith高的员工并且部门为50
select * from emp where deptno=50 and sal>(select sal from emp where ename=’SMITH’);
显示为空7.png
11.找到没有经理的员工的部门
select deptno from emp where job!=(select job from emp where job=’manager’);
8.png
12.显示所有12月份入职的员工
select ename,hiredate from emp where to_char(hiredate,’mm’)=12
9.png