6.4总结:连接MySQL、三层架构
time & datetime 库Python 中处理时间的标准库提供获取系统时间并格式化输出功能提供系统级精确计时功能,⽤于程序性能分析 time库包含三类函数时间获取: localtime()时间格式化: strftime() strptime()程序计时: sleep() perf_counter() 12345678910111213141516171819202122import time # 日期类型与字符串直接互相转化 # 日期转字符串t1= time.localtime() print(time.strftime("%Y-%m-%d %H:%M:%S",t1)) # 字符串转日期timeStr = '2018-01-26 12:55:20' t2=time.strptime(timeStr, "%Y-%m-%d %H:%M:%S") #测试程序执行时间差 t_start = time.perf_counter() # 程序从开始到这条代码的运行时间print("测试"...
4.28总结:安装环境、sql基础
安装环境PLSQL Developer 又称 sqlpuls用户名:scott密码:oracle 虚拟机环境:打开虚拟机Windows7 x64.vmx运行(win+r) cmd 输入 ipconfig 查看本机IP(IPv4):192.168.48.128开始菜单 Net Manager 修改 本地-服务器命名-orcl 和 监听程序- LISTENER 的 主机名 为本机IP (192.168.48.128)进入 C:\oraclient\client64\bin\network\admin 以及 C:\oraclient\client64\network\admin 修改 listener.ora 和 tnsnames.ora 的 HOST(127.0.0.1)为本机IP 本机环境:安装sqlplus及汉化包帮助-注册-输入许可证信息将 instantclient_21_3 解压到D盘根目录进入 D:\instantclient_21_3\network\admin 修改 tnsnames.ora 的 HOST 为虚拟机本机IP(192.168.48.128)添加环境变量 ...
4.29总结:数据类型、建表
数据类型 字符类型char:用于存储 固定长度 的字符串。最大长度为2000个字节。varchar2:用于存储字符串数据。会根据实际数据的长度自动调整,因此在大多数情况下都会使用varchar2类型。最大长度是4000个字节。中文(包括符号)占两个字节,英文占一个 12select length('字符串a,') from dual --结果5(不区分中文)select lengthb('字符串a,') from dual --结果9(区分中文) **数值类型 **number:具有精度和范围两个参数。精度指定所有数字位的个数,范围指定小数的位数。 如number(7,2)总位数7位,其中2位是小数,小数点前有5位整数,小数位数不能超过总位数。字符类型原理上不能用于运算,因此需要运算的数据需要使用number类型 **日期时间类型 **date:可以存储日期和时间的组合数据。结合oracle提供的日期时间函数便地处理数据。日期可直接加减,不能乘除,加的是日期 1select sysdate+365 from dual timestamp...
4.30总结:增删改查、操作符
增删改查结构:增create 删drop 改alter 查select数据:增insert 删delete 改update 查select alter table 能够实现的功能alter都是基于表去修改 1.新增列 12alter table 表名 add 列名 类型(长度)[约束&默认值]; alter table student add City varchar2(20) not null; 2.修改列 12345alter table 表名 modify 列名 类型 [约束 默认值]; --修改表中的列 alter table student modify City varchar(300) unique not null; alter table 表名 modify 列名 类型 null; --去掉列的非空约束 alter table 表名 modify 列名 类型 not null; --给列添加非空约束 alter table cjb modify xingming null 3.删除列 12alter table 表名 drop column 列名; --...
5.10总结:删除重复数据
删除重复数据删除的是全字段重复的数据(见练习18题) 12345678910111213create table dept1 as select * from scott.dept; insert into dept1 select * from scott.dept; select * from dept1--方法一 delete from dept1 where rowid not in (select max(rowid) from dept1 group by deptno)--方法二 delete from dept1 where rowid not in ( select rowid from ( select dept1.*,rowid,row_number()over(partition by deptno order by deptno) r from dept1 )where r=1 ) 练习1234567891011121314151617181920212223242526272829303132333435363738394041424344...
5.13总结 索引
索引的目的是加速查询的速度:原则上一个列最多只能建两个索引索引建完自动生效,不改变语法书写格式索引会影响增删改效率,且有些情况下不必要(如全查),所以索引不是越多越好 索引创建索引1create (unique/BITMAP) index 索引名称 on 表名(列名) tablespace 表空间名; --unique 用于指定是否强制要求索引列为唯一性数据,表空间可选择是否指定,不指定则用默认表空间。出于性能考虑索引表空间和表的表空间要分开。 索引分类一、按存储形式分类 b_tree索引 位图索引 基于函数索引 方向键索引 B-TREE索引适用场景:列基数比较大的时候使用(行业、身高)列基数:该列不重复数据的个数 count(distinct col) 1create index ind_name on tb_name(col_name) 位图索引说明:位图索引在创建时,会扫描整张表,为索引列的每个取值建立一个不重复的位图 (BITMAP)来描述该取值适用场景:列基数比较小的时候使用(性别、婚姻状况) 12create bitmap index ind_name on tb...
5.12总结:批量插入
两种批量插入方式方法一执行以下语句->复制需要插入的数据->点击编辑数据(开锁)->移动鼠标位置使其图标变为向右–按住鼠标左键拉动->粘贴 1select * from 表 for update 方法二 练习12345678910111213141516171819202122232425262728293031323334353637create table t(tno varchar2(20))insert into t values('1,2,3')select * from t--1.求tno这个字段的累计总和select substr(tno,1,1)+substr(tno,3,1)+substr(tno,5,1) from t--建表shuiguocreate table shuiguo(tdate varchar2(30),tname varchar2(20),saleamount number(10))select * from shuiguo--2.查询语句,结果按梨、葡萄、西瓜、橘子、柠檬、苹果、香蕉的顺...
5.6总结:排序、分组
关键词相关关键词一共6个,一条查询语句最少要有2个关键词,最多6个关键词,每个关键词只能出现一次 select 选列 from 选表 where 选行 group by 分组 having 选分组后的行 order by 排序 书写顺序:select — from — where — group by — having — order by执行顺序:from — where — group by — having — select — order by 排序 order byasc 升序(从小到大),默认,可写可不写;desc 降序(从大到小),需在列名后标注 12select * from emp order by sal --升序select * from emp order by sal desc --降序 order by 是唯一一个可以使用别名的关键词 1select sal 工资, deptno 部门 from emp order by 工资 desc 排序后空值最大(升序排序时空值在最下面) 1select * from emp order by comm...
5.14 视图、序列
视图视图实际上是一个或多个表的预定义查询,视图的使用方法和表一样。视图用于查看表的数据,不真实存储数据,只访问基表中的行。一般视图都最好加只读(with read only) 123456789101112131415161718--创建视图--or replace 可写可不写,不写的话不可创建已有的视图名create or replace view 视图名 as select * from 表名 with read only --附加只读状态,可写可不写--查看视图select * from 视图名--删除视图drop view 视图名; --scott账号要使用system账号赋予权限才能创建视图 grant create any view to scott/*当视图表结构和原表结构不一致的前提下,原表插入数据的字段可为空,也可以通过对应视图表插入数据*/--综合以上情况只要是视图表都最好加只读create or replace view v_dept as select * from dept insert into v_dept values(60,'a...
5.7总结:函数
函数SQL 函数会对传递进来的参数进行处理,并返回一个处理结果,也就是返回一个值。通常用于返回特定的数据,可以很方便地转换和处理数据,Oracle 数据库中主要使用两种类型的函数: 单行函数:对每一个函数应用在表的记录中时,只能输入一行结果,返回一个结果,有: 字符函数:对字符串操作。数字函数:对数字进行计算,返回一个数字。转换函数:可以将一种数据类型转换为另外一种数据类型。日期函数:对日期和时间进行处理。 聚合函数:聚合函数同时可以对多行数据进行操作,并返回一个结果。 自定义函数123456--加法计算器 输入两个数 返回一个和 create function getSum(n1 in number,n2 in number) return number as he number(4); begin he:=n1+n2; return he; end; select getSum(3,5) from dual 102 select empno,deptno,sal,comm,getSum(empno,deptno) from emp 字符函数length 计算字符...