《数据库基础知识培训胶片.pptx》由会员分享,可在线阅读,更多相关《数据库基础知识培训胶片.pptx(79页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据库原理 第1页/共79页目标通过这部分课程的学习,您将了解以下内容:关系数据库基本概念常用数据库对象常用数据类型第2页/共79页IN DatabaseInformixServerSMPSCPSMAPSMAPSMAPThe database plays the role of the base,saving and processing the data that should be easily accessed by the user.What is a database?Usually,a database runs in the server part to serve access
2、 requests from clients.第3页/共79页DBClient(DBA)DBDB ServerDBClient(User)DBClient(User)Users use DDL to define a databaseUsers use DML to operate data in a databaseUsers use programs to manage databaseDDL,DML&Programs第4页/共79页TablesA database in a RDBMS is a collection of information that is grouped into
3、 one or more tables.A table is an array of data items organized into rows and columns.Stock第5页/共79页PPS Service Data TableIN Service DatabaseFPH Service Data TableSubscriber Data TableTables are relationalSub IDBalanceIDD Flag1001100.0001012200.001MSISDN NumBalanceIDD FlagSub ID1001100.0001001012200.
4、001101FPH NumBalanceIDD FlagSub ID80081012341100.00010080081043212200.001101第6页/共79页RowsRowsEach row of a table stands for one instance of the subject of the table,which is one particular example of that entity.Stock第7页/共79页ColumnsEach column of a table stands for one attribute,which is one characte
5、ristic,feature,or fact that is true of the subject of the table.ColumnsStock第8页/共79页Operations on Tables第9页/共79页Database ObjectsObjectDescriptionTableBasic unit of storage;composed of rows and columnsView Logically represents subsets of data from one or more tablesSequence Numeric value generatorInd
6、exImproves the performance of some queriesSynonym Gives alternative names to objects第10页/共79页What is a View?EMPLOYEES Table:第11页/共79页Why Use Views?To restrict data accessTo make complex queries easyTo provide data independenceTo present different views of the same data第12页/共79页What are Constraints?C
7、onstraints enforce rules at the table level.Constraints prevent the deletion of a table if there are dependencies.The following constraint types are valid:NOT NULLUNIQUE PRIMARY KEYFOREIGN KEYCHECK第13页/共79页What is an Index?An index:Is a schema objectIs used by the Oracle server to speed up the retri
8、eval of rows by using a pointerCan reduce disk I/O by using a rapid path access method to locate data quicklyIs independent of the table it indexesIs used and maintained automatically by the Oracle server第14页/共79页How Are Indexes Created?Automatically:A unique index is created automatically when you
9、define a PRIMARY KEY or UNIQUE constraint in a table definition.Manually:Users can create nonunique indexes on columns to speed up access to the rows.第15页/共79页Data TypesData TypeDescriptionVARCHAR2(size)Variable-length character dataCHAR(size)Fixed-length character dataNUMBER(p,s)Variable-length num
10、eric dataDATE Date and time valuesLONG Variable-length character data up to 2 gigabytesCLOBCharacter data up to 4 gigabytesRAW and LONG RAW Raw binary dataBLOBBinary data up to 4 gigabytesBFILEBinary data stored in an external file;up to 4 gigabytesROWIDA 64 base number system representing the uniqu
11、e address of a row in its table.第16页/共79页总结通过这部分课程的学习,您需要掌握以下内容:关系数据库基本概念常用数据库对象表索引约束常用数据类型第17页/共79页SQL语言基础 第18页/共79页目标通过这部分课程的学习,您将了解以下内容:SQL语句的种类执行基本的Select语句在表中插入数据行在表中修改数据行从表中删除数据行控制事务处理第19页/共79页SQL StatementsSELECT INSERTUPDATEDELETECREATEALTERDROPTRUNCATECOMMITROLLBACKSAVEPOINTGRANTREVOKE Data
12、 retrieval Data manipulation language(DML)Data definition language(DDL)Data control language(DCL)第20页/共79页基础SELECT 语句语法SELECT*|DISTINCT column|expression alias,.FROMtable;第21页/共79页 使用算术操作符SELECT last_name,salary,salary+300FROM employees;第22页/共79页 使用列的别名SELECT last_name Name,salary*12 Annual SalaryFR
13、OM employees;SELECT last_name AS name,commission_pct commFROM employees;第23页/共79页使用连接符和字符串SELECT last_name|is a|job_id AS Employee DetailsFROM employees;第24页/共79页 排除重复的行SELECT DISTINCT department_idFROM employees;第25页/共79页使用 WHERE 条件SELECT employee_id,last_name,job_id,department_idFROM employeesWHER
14、E department_id=90;第26页/共79页字符串和日期值都使用单引号.字符串值区分大小写,日期值需注意格式.SELECT last_name,job_id,department_idFROM employeesWHERE last_name=Whalen;第27页/共79页比较条件操作符=含义等于大于 大于或等于 小于 小于或等于不等于第28页/共79页其它的比较条件操作符BETWEEN.AND.IN(set)LIKEIS NULL含义两个值之间匹配值列表中值 匹配一个字符样式 空值第29页/共79页使用 BETWEEN 条件可以使用该条件显示某范围内的值.SELECT last
15、_name,salaryFROM employeesWHERE salary BETWEEN 2500 AND 3500;Lower limitUpper limit第30页/共79页SELECT employee_id,last_name,salary,manager_idFROM employeesWHERE manager_id IN(100,101,201);使用 IN 条件满足成员列表中的条件.第31页/共79页使用 LIKE 条件搜索条件能包括两种模式匹配类型:%表示许多字符._ 表示一个字符.SELECTfirst_nameFROM employeesWHEREfirst_nam
16、e LIKE S%;第32页/共79页使用 NULL 条件测验空值使用 IS NULL 条件.SELECT last_name,manager_idFROM employeesWHERE manager_id IS NULL;第33页/共79页逻辑条件OperatorANDORNOT含义两部分条件都返回真值则结果返回真值两部分条件中有任意一部分返回真值则结果返回真值如果条件返回假则结果返回真值第34页/共79页使用 AND 操作符要求条件都为真.SELECT employee_id,last_name,job_id,salaryFROM employeesWHERE salary=10000A
17、ND job_id LIKE%MAN%;第35页/共79页SELECT last_name,job_idFROM employeesWHERE job_id NOT IN(IT_PROG,ST_CLERK,SA_REP);Using the NOT Operator第36页/共79页SELECT last_name,job_id,department_id,hire_dateFROM employeesORDER BY hire_date;ORDER BY 条件带 ORDER BY 条件的排序ASC:升序,缺省DESC:降序ORDER BY 条件在Select语句最后.第37页/共79页数据操
18、作语句一条 DML 语句在下列情况下被执行:向表中增加新的数据行修改表中存在的数据从表中删除数据一个事务由DML语句集合形成的逻辑工作单元构成.第38页/共79页INSERT 语句语法.INSERT INTOtable(column,column.)VALUES(value,value.);第39页/共79页向表中插入新的数据行插入的新行应包括所有的列值.插入的值应按照表中列缺省的顺序排列.如插入所有的列,INSERT 条件中可随意选择是否列出所有列.INSERT INTO departments(department_id,department_name,manager_id,locatio
19、n_id)VALUES (70,Public Relations,100,1700);1 row created.第40页/共79页INSERT INTO employeesVALUES (114,Den,Raphealy,TO_DATE(FEB 3,1999,MON DD,YYYY),AC_ACCOUNT,11000,NULL,100,30);1 row created.1 row created.插入特殊的日期型值Verify your addition.第41页/共79页带子查询的INSERT 语句.字段的数据类型必须匹配.INSERT INTO sales_reps(id,name,s
20、alary,commission_pct)SELECT employee_id,last_name,salary,commission_pct FROM employees WHERE job_id LIKE%REP%;4 rows created.4 rows created.从另外一个表中复制行第42页/共79页UPDATE 语句语法可一次性修改多行UPDATEtableSETcolumn=value,column=value,.WHERE condition;第43页/共79页UPDATE employeesSET department_id=70WHERE employee_id=11
21、3;1 row updated.1 row updated.在WHERE条件中指定需要修改的行.修改表中所有的行.修改表中数据UPDATE copy_empSET department_id=110;22 rows updated.22 rows updated.第44页/共79页UPDATE copy_empSET department_id =(SELECT department_id FROM employees WHERE employee_id=100)WHERE job_id =(SELECT job_id FROM employees WHERE employee_id=200)
22、;1 row updated.1 row updated.基于另外表SELECT得到的值修改数据使用子查询实现:第45页/共79页DELETE 语句语法DELETE FROM tableWHERE condition;第46页/共79页通过WHERE条件指定删除的行.省略 WHERE 条件,所有的行都将被删除.从表中删除多行 DELETE FROM departments WHERE department_name=Finance;1 row deleted.1 row deleted.DELETE FROM copy_emp;22 rows deleted.22 rows deleted.第
23、47页/共79页DELETE FROM employeesWHERE department_id=(SELECT department_id FROM departments WHERE department_name LIKE%Public%);1 row deleted.1 row deleted.基于另外表SELECT得到的值删除数据通过子查询语句从另外表中得到值作为删除条件.第48页/共79页数据库事务一个数据库完整事务包含以下情况:构成对数据的一次一致性改变的DML语句(一条或多条)一条DDL 语句第49页/共79页数据库事务当第一条 DML SQL 语句执行时开始当下列任意事件发生
24、时结束:提交或回滚语句执行一条DDL 执行(自动提交)系统崩溃第50页/共79页控制事务SAVEPOINT BSAVEPOINT ADELETEINSERTUPDATEINSERTCOMMITTimeTransactionROLLBACK to SAVEPOINT BROLLBACK to SAVEPOINT AROLLBACK第51页/共79页UPDATE.SAVEPOINT update_done;Savepoint created.Savepoint created.INSERT.ROLLBACK TO update_done;Rollback complete.Rollback com
25、plete.回滚改变到一个标记在当前的事务中可通过 SAVEPOINT 语句创建标记.ROLLBACK TO SAVEPOINT 语句可回滚到标记.第52页/共79页自动的 commit 发生在:DDL 语句执行隐性的事务处理第53页/共79页COMMIT;Commit complete.Commit complete.改变数据.Commit 改变.DELETE FROM employeesWHERE employee_id=99999;WHERE employee_id=99999;1 row deleted.1 row deleted.INSERT INTO departments VAL
26、UES(290,Corporate Tax,NULL,1700);1 row inserted.1 row inserted.提交数据第54页/共79页回滚后数据状态将丢弃所有未COMMIT的改变:DELETE FROM copy_emp;22 rows deleted.22 rows deleted.ROLLBACK;Rollback complete.Rollback complete.第55页/共79页如何写SQL语句SQL 语句不区分大小写.关键字不能分行隔开.条件通常被分行放置.缩进被用来提高语句的可读性第56页/共79页总结通过这部分课程的学习,您将了解以下内容:SQL语句类型写一
27、个SELECT语句:描述 DML 语句在表中插入数据行在表中修改数据行从表中删除数据行控制事务处理第57页/共79页练习请见Oracle数据库维护上机任务书课堂练习-SQL语言基础 第58页/共79页数据库函数第59页/共79页目标通过这部分课程的学习,您将了解以下内容:描述SQL中用到的不同类型的函数在SELECT语句中使用字符,数值和日期等函数转换函数的使用 第60页/共79页SQL FunctionsFunctionFunctionInputarg 1arg 1arg 2arg 2arg arg n nFunction performs actionOutputResultResultv
28、aluevalue第61页/共79页字符型函数字符型函数LOWERUPPERINITCAPCONCATSUBSTRLENGTHINSTRLPAD|RPADTRIMREPLACE大小写处理函数大小写处理函数字符处理函数字符处理函数第62页/共79页FunctionResult大小写处理函数能对字符串进行大小写转换.LOWER(SQL Course)UPPER(SQL Course)INITCAP(SQL Course)sql courseSQL COURSESql Course第63页/共79页使用大小写处理函数SELECT employee_id,last_name,department_id
29、FROM employeesWHERE last_name=higgins;no rows selectedno rows selectedSELECT employee_id,last_name,department_idFROM employeesWHERE LOWER(last_name)=higgins;第64页/共79页CONCAT(Hello,World)SUBSTR(HelloWorld,1,5)LENGTH(HelloWorld)INSTR(HelloWorld,W)LPAD(salary,10,*)RPAD(salary,10,*)TRIM(H FROM HelloWorld
30、)HelloWorldHello106*2400024000*elloWorldFunctionResult字符处理函数下列函数能对字符串进行处理:第65页/共79页SELECT employee_id,CONCAT(first_name,last_name)NAME,job_id,LENGTH(last_name),INSTR(last_name,a)Contains a?FROM employeesWHERE SUBSTR(job_id,4)=REP;使用字符处理函数123123第66页/共79页数值函数ROUND:四舍五入到指定的小数位数ROUND(45.926,2)45.93TRUNC
31、:截断值到指定的小数位数TRUNC(45.926,2)45.92MOD:做除法取余数MOD(1600,300)100第67页/共79页日期函数两个日期中的间隔月数MONTHS_BETWEENADD_MONTHSNEXT_DAYLAST_DAYROUNDTRUNC 在日期中增加历法月数指定日期中的下一天这个月的最后一天Round 日期 Truncate 日期FunctionDescription第68页/共79页MONTHS_BETWEEN(01-SEP-95,11-JAN-94)使用日期函数ADD_MONTHS(11-JAN-94,6)NEXT_DAY(01-SEP-95,FRIDAY)LAS
32、T_DAY(01-FEB-95)19.677419411-JUL-9408-SEP-9528-FEB-95第69页/共79页转换函数隐性的数据类型转换隐性的数据类型转换显性的数据类型转换显性的数据类型转换数据类型转换数据类型转换第70页/共79页Using the TO_CHAR Function with DatesThe format model:Must be enclosed in single quotation marks and is case sensitiveCan include any valid date format elementHas an fm element
33、to remove padded blanks or suppress leading zerosIs separated from the date value by a commaTO_CHAR(date,format_model)第71页/共79页YYYY日期格式基本模型YEARMMMONTHDYDAYFull year in numbersYear spelled outTwo-digit value for monthThree-letter abbreviation of the day of the weekFull name of the day of the weekFull
34、 name of the monthMONThree-letter abbreviation of the monthDDNumeric day of the month第72页/共79页使用 TO_CHAR 函数转换日期SELECT last_name,TO_CHAR(hire_date,fmDD Month YYYY)AS HIREDATEFROM employees;第73页/共79页使用 TO_NUMBER 和 TO_DATE 函数 转换字符型到数值型:转换字符型到日期型:TO_NUMBER(char,format_model)TO_DATE(char,format_model)第74
35、页/共79页总结通过这部分课程的学习,您应该已经了解:描述SQL中用到的不同类型的函数在SELECT语句中使用字符,数值和日期等函数转换函数的使用第75页/共79页练习请见Oracle数据库维护上机任务书课堂练习-数据库函数 第76页/共79页问题和解答第77页/共79页3F7IaLdPgSjVnYq$t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNe
36、QiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMePhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t&w-z1D4G7JbMePhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*
37、w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaL
38、dOgSjVnYq!t*w-z1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s
39、%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8
40、KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)yF7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWoZr$u
41、(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7Ja
42、MePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G8JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq$t*
43、w-A1D4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaL
44、dOgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s
45、%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjV(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWn
46、Zq$u*x-A2D5H8KbNfQiTlXo#v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcRjUmYp!s&w)4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZu(x+B2E5H9KcOfRiUmXp#s&v)y0C3F7IaLdPgSjV
47、nYq$t*w-A1D4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u(x+A2E5H8KcNfQiUlXp#s%1C4F7
48、JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B2E6LdPgSjVnYq!
49、t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I
50、9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWoZr$u(x+A2E5H9KcNfRiUlXp#1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOkWnZr$u*x+A2