数据挖掘笔记<2016年12月29日2017年2月28日>黑塞矩阵

偏度的绝对值数值越大表示表示分布形态的偏斜程度越大。

3.峰度

4.频率

分析->描述统计->频率

分析->描述统计—>描述

5.探索分析

分析->描述统计->探索

6.假设检验

假设检验原理:

7.多重响应法

2016年12月30日

1.共线性的评价指标:容许度,方差膨胀因子,特征值,条件指数。

2.一元线性回归分析

3.多元线性回归

4.曲线回归

2017年1月3日

标准化

(2)系统聚类分析

两步聚类

2017年1月5日

数据库架构:

服务器->多个数据库->多张数据库->列和行

cmd运行之后

Enterpassword:123456

查看当前所有存在的数据库

showdatabases;

+--------------------+|Database|+--------------------+|information_schema||company||library||mysql||performance_schema||stu||test_db|+--------------------+

1、创建测试数据库test_db,

createdatabasetest_db;

2、查看创建好的数据库test_db的定义

mysql>showcreatedatabasetest;+----------+---------------------------------------------------------------+|Database|CreateDatabase|+----------+---------------------------------------------------------------+|test|CREATEDATABASE`test`/*!40100DEFAULTCHARACTERSETutf8*/|+----------+---------------------------------------------------------------+1rowinset(0.00sec)

3、删除测试数据库test_db,

dropdatabasetest_db;

4、选择数据库:

use数据库名;

mysql>usetest;Databasechanged

创建员工表tb_emp1。首先创建数据库test_db,SQL语句如下:

选择创建表的数据库,SQL语句如下:

创建tb_emp1表,SQL语句为:+--------+-------------+------+-----+---------+-------+|Field|Type|Null|Key|Default|Extra|+--------+-------------+------+-----+---------+-------+|id|int(11)|YES||NULL|||name|varchar(25)|YES||NULL|||deptId|int(11)|YES||NULL|||salary|float|YES||NULL||+--------+-------------+------+-----+---------+-------+

查看数据表是否创建成功,SQL语句如下:

查看表格的结构:

1、定义数据表tb_emp2,其主键为id,SQL语句如下:+--------+-------------+------+-----+---------+-------+|Field|Type|Null|Key|Default|Extra|+--------+-------------+------+-----+---------+-------+|id|int(11)|NO|PRI|NULL|||name|varchar(25)|no||NULL|||deptId|int(11)|YES||NULL|||salary|float|YES||NULL||+--------+-------------+------+-----+---------+-------+

createtable表名

(字符名数据类型字段属性,

字段名2............

);

createtabletb_tmp1

(idint(11),

namevarchar(25),

deptIdint(11),

salaryfloat

showtables;查看表名

mysql>showtables;+----------------+|Tables_in_test|+----------------+|tb_emp1|+----------------+1rowinset(0.00sec)

describe数据表名,查看表格的结构

mysql>describetb_emp1;+--------+-------------+------+-----+---------+-------+|Field|Type|Null|Key|Default|Extra|+--------+-------------+------+-----+---------+-------+|id|int(11)|YES||NULL|||name|varchar(25)|YES||NULL|||deptId|int(11)|YES||NULL|||salary|float|YES||NULL||+--------+-------------+------+-----+---------+-------+4rowsinset(0.04sec)

2、定义数据表tb_emp3,其主键为id,SQL语句如下:+--------+-------------+------+-----+|Field|Type|Null|Key|+--------+-------------+------+-----+|id|int(11)|NO|PRI||name|varchar(25)|YES|||deptId|int(11)|YES|||salary|float|YES||+--------+-------------+------+-----+

主键:primarykey对字段具有非空和唯一的约束(索引)。

createtabletb_tmp2

(idint(11)notnullprimarykey,

namevarchar(25)notnull,

createtabletb_tmp3

(idint(11)notnull,

salaryfloat,primarykey(id)

3、定义数据表tb_emp4,假设表中间没有主键id,为了唯一确定一个员工,可以把name、deptId联合起来做为主键,SQL语句如下:+--------+-------------+------+-----|Field|Type|Null|Key|+--------+-------------+------+-----+|name|varchar(25)|NO|PRI||deptId|int(11)|NO|PRI||salary|float|YES||+--------+-------------+------+-----+

mysql>createtabletb_emp4->(namevarchar(25)notnull,deptIdint(11)notnull,->salaryfloat,->primarykey(name,deptId));

QueryOK,0rowsaffected(0.21sec)

mysql>desctb_emp4;+--------+-------------+------+-----+---------+-------+|Field|Type|Null|Key|Default|Extra|+--------+-------------+------+-----+---------+-------+|name|varchar(25)|NO|PRI|NULL|||deptId|int(11)|NO|PRI|NULL|||salary|float|YES||NULL||+--------+-------------+------+-----+---------+-------+3rowsinset(0.10sec)

4、定义数据表tb_emp5,并在tb_emp5表上创建外键约束。

创建一个部门表tb_dept1,SQL语句如下:+----------+-------------+------+-----+|Field|Type|Null|Key|+----------+-------------+------+-----+|id|int(10)|NO|PRI||name|varchar(22)|NO|||location|varchar(50)|YES||+----------+-------------+------+-----+

普通索引index

createtabletb_emp1(idint(11)notnullprimarykey,namevarchar(22)notnull,locationvarchar(50));

外键:foreignkey

constraint外键foreignkey(字段名)references表名

createtabletb_emp5(idint(11)notnullprimarykey,namevarchar(25),deptIdint(11),salaryfloat,constraintfk_edforeignkey(deptId)referencestb_emp1(id));

定义数据表tb_emp5,让它的键deptId作为外键关联到tb_dept1的主键id,SQL语句为:+--------+-------------+------+-----+|Field|Type|Null|Key|+--------+-------------+------+-----+|id|int(11)|NO|PRI||name|varchar(25)|YES|||deptId|int(11)|YES|MUL||salary|float|YES||普通索引index+--------+-------------+------+-----+

5、定义数据表tb_emp6,员工的姓名不能为空,SQL语句如下:+--------+-------------+------+-----+|Field|Type|Null|Key|+--------+-------------+------+-----+|id|int(11)|NO|PRI||name|varchar(25)|NO|||deptId|int(11)|YES|||salary|float|YES||+--------+-------------+------+-----+

6、定义数据表tb_dept2,指定部门的名称唯一,SQL语句如下:uniquekey

+----------+-------------+------+-----+|Field|Type|Null|Key|+----------+-------------+------+-----+|id|int(11)|NO|PRI||name|varchar(22)|YES|UNI||location|varchar(50)|YES||+----------+-------------+------+-----+

createtabledb_dept2(idint(11)notnullprimarykey,namevarchar(22)uniquekey,locationvarchar(50));

7、定义数据表tb_dept3,指定部门的名称唯一,SQL语句如下:

+----------+-------------+------+-----+---------+-------+|Field|Type|Null|Key|Default|Extra|+----------+-------------+------+-----+---------+-------+|id|int(11)|NO|PRI|NULL|||name|varchar(22)|YES|UNI|NULL|||location|varchar(50)|YES||NULL||+----------+-------------+------+-----+---------+-------+

createtabletb_dept3(idint(11)notnullprimarykey,namevarchar(22)uniquekey,locationvarchar(50));

8、定义数据表tb_emp7,指定员工的部门编号默认为1111,SQL语句如下:default+--------+-------------+------+-----+---------+-------+|Field|Type|Null|Key|Default|Extra|+--------+-------------+------+-----+---------+-------+|id|int(11)|NO|PRI|NULL|||name|varchar(25)|NO||NULL|||deptId|int(11)|YES||1111|||salary|float|YES||NULL||+--------+-------------+------+-----+---------+-------+

createtabletb_emp7(idint(11)notnullprimarykey,namevarchar(25),deptIdint(11)default1111,salaryfloat);

9、定义数据表tb_emp8,指定员工的编号自动递增,SQL语句如下:auto_increment+--------+-------------+------+-----+---------+----------------+|Field|Type|Null|Key|Default|Extra|+--------+-------------+------+-----+---------+----------------+|id|int(11)|NO|PRI|NULL|auto_increment||name|varchar(25)|NO||NULL|||deptId|int(11)|YES||NULL|||salary|float|YES||NULL||+--------+-------------+------+-----+---------+----------------+

createtabletb_emp8(idint(11)notnullprimarykeyauto_increment,namevarchar(25),deptIdint(11),salaryfloat);

自增:只能添加到具有主键或唯一键的字段名上。10、分别使用DESCRIBE和DESC查看表tb_dept1和表tb_emp1的表结构。查看tb_dept1表结构,SQL语句如下:

11、将数据表tb_dept2改名为tb_deptment2。再将表名tb_deptment2改为tb_dept2;

altertable表名rename新表名

altertabletb_dept2renametb_deptment2;

12、将数据表tb_dept1中name字段的数据类型由VARCHAR(22)修改成VARCHAR(30)。modify

altertable表名modify字段名新数据类型字段属性;

altertabletb_dept2modifynamevarchar(30)notnull;

13、将数据表tb_dept1中的location字段名称改为loc,数据类型保持不变,change;

altertable表名change字段名新字段名数据类型字段属性。

altertabletb_dept2changelocationlocvarchar(30);

14、将数据表tb_dept1中的loc字段名称改为location,同时将数据类型变为VARCHAR(60),

altertabletb_dept2changeloclocamentvarchar(60);15、在数据表tb_dept1中添加一个没有完整性约束的INT类型的字段managerId(部门经理编号)

altertable表名add字段名数据类型字段属性first|after字段名

altertabletb_dept2addmanagerIdint;

altertabletb_dept2addmanagerId1int(11)notnullfirst;

altertabletb_dept2addmanagerId3int(11)notnullaftername;

16、在数据表tb_dept1中添加一个不能为空的VARCHAR(12)类型的字段column1,SQL语句如下:

altertabletb_dept2addcolumn1varchar(12)notnull;

17、在数据表tb_dept1中添加一个INT类型的字段column2,SQL语句如下:

altertabletb_dept2addcolumn2int;

18、删除数据表tb_dept1表中的column2字段。

altertable表名drop字段名

altertabletb_dept2dropmanagerId3;

19、将数据表tb_dept1中的column1字段插入到location字段后面,SQL语句如下:注意column1字段已经存在。。。

altertabletb_dept2modifycolumn1varchar(12)aftercolumn2;

altertabletb_dept2changecolumn1column1varchar(12)notnullaftermanagerId;

20.删除唯一键

dropindex|key唯一键名字

2017年1月6日

一、创建数据库company,按照下面表1和表2给出的表结构,在company数据库中创建两个数据表offices和employees

表1offices表结构

字段名

数据类型

主键

外键

非空

唯一

自增

officeCode

INT(10)

city

INT(11)

address

VARCHAR(50)

表2employees表结构

enumber

lastName

firstName

mobile

VARCHAR(25)

createtableoffices(officeCodeint(10)notnullprimarykeyuniquekey,cityint(11)notnull,addressvarchar(50));

createtableemployees(enumberint(11)primarykeynotnulluniquekeyauto_increment,lastNamevarchar(50),firstNamevarchar(50),mobilevarchar(25)uniquekey,officeCodeint(10)notnull,constraintoff_foreignforeignkey(officeCode)referencesoffices(officeCode));

1、将数据表offices中字段名address改为ads,数据类型不变;

altertableofficeschangeaddressadsvarchar(50);

2、将employees的表名改为employee。

alteratbleemployeesrenameemployee;

3、将employee表中的officeCode的位置调整到firstName的后面;

altertableemployeechangeofficeCodeofficeCodeint(11)afterfirstName;

4、删除表employee中的主键

先删除自增,才能删除主键。

altertableemployeemodifyenumberint(11)notnull;

altertableemployeedropkeyenumber;

5、添加表employee中的主键

altertableemployeeaddprimarykey(enmuber);

6、将表employee中mobile的唯一约束删除掉;

altertableemployeedropkey|indexmobile;

7、在表employee中mobile上添加唯一约束;

altertableemployeeadduniquekey(mobile);

1、建立表格person+-------+------------------+------+-----+---------+----------------+|字段名|数据类型|空|主键|默认值|自增|+-------+------------------+------+-----+---------+----------------+|id|int(10)unsigned|NO|PRI|NULL|是||name|char(40)|NO|||否||age|int(11)|NO||0|否||info|char(50)|YES||NULL|否|+-------+------------------+------+-----+---------+----------------+

createtableperson(idint(10)unsignednotnullprimarykeyauto_increment,namechar(40)notnulldefault'',ageint(11)notnulldefault0,infochar(50));

2、向表格person中插入数据+----+-------+-----+----------+|id|name|age|info|+----+-------+-----+----------+|1|green|21|lawyer||2|suse|22|dancer||3|tom|22|musician||4|mike|20|teacher|+----+-------+-----+----------+

insertinto表名(字段名)

values(数据1),(数据2)....

insertintoperson(id,name,age,info)

values(1,'green',21,'lawyer');

insertintoperson

insertintoperson(name,age,info)values('tom',22,'musician'),('mike',20,'teacher');

查询表格信息:

select字段名from表名where条件

3、建立表格person_old+-------+------------------+------+-----+---------+----------------+|字段名|数据类型|空|主键|默认值|自增|+-------+------------------+------+-----+---------+----------------+|id|int(10)unsigned|NO|PRI|NULL|是||name|char(40)|NO||NULL|否||age|int(11)|NO||0|否||info|char(50)|YES||NULL|否|+-------+------------------+------+-----+---------+----------------+

4、向表格pers

createtableperson_old(idint(10)unsignednotnullprimarykeyauto_increment,namechar(40)notnull,ageint(11)notnulldefault0,infochar(50));

on_old中插入数据

+----+------+-----+---------+|id|name|age|info|+----+------+-----+---------+|11|l|20|student||12|m|30|police|+----+------+-----+---------+

insertintoperson_old(id,name,age,info)values(11,'l',20,'student'),(12,'m',30,'police');

5、将另一张表转存到一张表中

insertinto表名(字段名)select字段名from表名2where条件。

insertintoperson(id,name,age,info)selectid,name,age,infofromperson_old;

删除数据:

deletefrom表名where条件。

deletefromperson_oldwhereid>10;

创建表格person1,表结构和person相同:

createtable表名1like表名2;createtableperson1likeperson;

按照person表信息查询的结果创建表格person2:

createtableperson2asselect*frompersonwhereid>10;

6,更新数据对数据表person中id为11的age改为15,name改为lining;

update表名set字段名1=数据,字段名2=数据...where条件。

updatepersonsetage=15,name='lingling'whereid=11;

在person表中,更新age值为19-22的记录,将info字段值都改成student;

updatepersonsetinfo='student'whereage>=19&&age<=21;

updatepersonsetinfo='student1'whereage>=19andage<=21;

updatepersonsetinfo='studen4'whereagebetween19and22;(包括19和22)3,删除数据deletefromtale_name[wherecondition](condtion条件)删除数据表person中id为11的记录

deletefrompersonwhereid=11;

4,在person表中,删除age值为19-22的记录

deletefrompersonwhereagebetween19and22;

下面以一个例子说明如何使用SELECT从单个表中获取数据。首先定义数据表fruits,输入语句如下:+---------+--------------+------+-----+---------+|Field|Type|Null|Key|Default|+---------+--------------+------+-----+---------+|f_id|char(10)|NO|PRI|NULL||s_id|int(11)|NO||NULL||f_name|char(50)|NO||NULL||f_price|decimal(8,2)|NO||NULL|+---------+--------------+------+-----+---------

为了演示如何使用SELECT语句,需要插入如下数据:+------+------+------------+---------+|f_id|s_id|f_name|f_price|+------+------+------------+---------+|a1|101|apple|5.20||a2|103|apricot|2.20||b2|104|berry|7.60||b5|107|xxxx|3.60||bj1|101|blackberry|10.20||bs1|102|orange|11.20||bs2|105|melon|8.20||c0|101|cherry|3.20||l2|104|lemon|6.40||m1|106|mango|15.60||m2|105|xbabay|2.60||m3|105|xxtt|11.60||o2|103|coconut|9.20||t1|102|banana|10.30||t2|102|grape|5.30||t4|107|xbababa|3.60|+------+------+------------+---------+

insertintofruitsvalues('b2',103,'berry',7.60),('b5',107,'xxxx',3.60),('bj1',101,'blackberry',10.20),('bs1',102,'orange',11.20),('c0',101,'cherry',3.20),('l2',104,'lemon',6.40),('m1',106,'mango',15.60),('m2',105,'xxtt',2.60),('m3',105,'xxtt',11.60),('o2',103,'coconut',9.20),('t1',102,'banana',10.30),('t2',102,'grape',5.30),('t4',107,'xbababa',3.60);

select字段名from表名

where条件1or|and|xor条件2b

groupby字段名

having条件

orderby字段名asc(升序)|desc(降序)

limitm,n;

1、从fruits表中检索所有字段的数据,SQL语句如下:

select*fromfruits;

2、查询fruits表中f_name列所有水果名称,SQL语句如下:

selectf_namefromfruits;

3、例如,从fruits表中获取f_name和f_price两列,SQL语句如下:

selectf_name,f_pricefromfruits;

4、查询价格为10.2元的水果的名称,SQL语句如下:

selectf_namefromfruitswheref_price=10.2;

selectf_name,f_pricefromfruitswheref_price=10.2;

5、查找名称为“apple”的水果的价格,SQL语句如下:

selectf_price,f_namefromfruitswheref_name="apple";

6、查询价格小于10的水果的名称,SQL语句如下:

selectf_name,f_pricefromfruitswheref_price<10;7、s_id为101和102的记录,SQL语句如下:

select*fromfruitswheres_id=101ors_id=102;

select*fromfruitswheres_idin(101,102);

8、查询所有s_id不等于101也不等于102的记录,SQL语句如

不等于<>!=

select*fromfruitswheres_id!=101ands_id!=102;

select*fromfruitswheres_idnotin(101,102);

select*fromfruitswheres_id<>101ands_id!=102;9、查询价格在2.00元到10.20元之间的水果名称和价格,SQL语句如下:

selectf_name,f_pricefromfruitswheref_price>=2.00andf_price<=10.20;

selectf_name,f_pricefromfruitswheref_pricebetween2.00and10.20;

10、查询价格在2.00元到10.20元之外的水果名称和价格,SQL语句如下:

selectf_name,f_pricefromfruitswheref_price<2.00orf_price>10.20;

selectf_name,f_pricefromfruitswheref_pricenotbetween2.00and10.20;

UNION合并表达查询union(去重的结果)unionall(不删除重复的结果)11、查询数据表fruits中f_price小于10的结果和fruits_new中s_id为101和103的结果,SQL语句如下:

createtablefruits_newlikefruits;(likefruits_new与fruits的表的属性都是一样,但是没有数据)

insertintofruits_newselect*fromfruits;

createtablefruits_newasselect*fromfruits;(as表的结构属性不同,但是fruits_new有数据)

select*fromfruitswheref_price<10unionselect*fromfruits_newwheres_idin(101,103);

去重:distinct12、查询fruits表中的s_id有哪些:

selectdistincts_idfromfruits;

EXISTS

createdatabaseifnotexiststest_db;

13、查询fruits表中是否存在s_id=107的供应商,如果存在,则查询fruits表中的记录,SQL语句如下

select*fromfruitswhereexists(select*fromfruitswheres_id=107);

14、查询fruits表中是否存在s_id=107的供应商,如果存在,则查询fruits表中的f_price大于10.20的记录,SQL语句如下:

selectf_name,f_pricefromfruitswhereexists(select*fromfruitswheres_id=107)andf_price>10.20;

15、查询fruits表中是否存在s_id=107的供应商,如果不存在则查询fruits表中的记录,SQL语句如下);

select*fromfruitswherenotexists(select*fromfruitswheres_id=107);

16、ORDERBY字段名asc(升序)|desc(降序):查询数据表fruits中水果的信息,并按照价格进行升序排列,SQL语句为

select*fromfruitsorderbyf_priceasc;

17、查询数据表fruits中水果的信息,首先按照s_id升序,在按照f_price进行降序排列

select*fromfruitsorderbys_idasc,f_pricedesc;

LIMIT18、查询数据表fruits中前5行的信息

select*fromfruitslimit0,5;

19、查询数据表fruits中第3行到第6行的信息

select*fromfruitslimit2,4;

求最大值:selectmax(f_price)fromfruits;

求最小值:selectmin(f_price)fromfruits;

求和:selectsum(f_price)fromfruits;

求平均数:selectavg(f_price)fromfruits;

计算:selectcount(f_price)fromfruits;

selectcount(*)fromfruits;GROUPBY

selects_id,count(s_id)fromfruitsgroupbys_id;

20、查询数据表fruits中每个供应商各自水果的平均价格

selects_id,avg(f_price)fromfruitsgroupbys_id;

HAVING21、查询每个供应商各自水果的平均价格大于5元的记录;

select*fromfruitsgroupbys_idhavingavg(f_price)>5;

22、查找f_name所有以’b’字母开头的水果,SQL语句如下:

like通配符:%单个字符:_

selectf_namefromfruitswheref_namelike'b%';

23、在fruits表中,查询f_name中包含字母'g’的记录,SQL语句如下:

selectf_namefromfruitswheref_namelike'%g%';

24、查询以’b’开头,并以’y’结尾的水果的名称,SQL语句如下:

selectf_namefromfruitswheref_namelike'b%y';25、在fruits表中,查询以字母’y’结尾,且’y’前面只有4个字母的记录,SQL语句如下:

selectf_namefromfruitswheref_namelike'____y';

26、在fruits表中,f_name中包含‘b’或者‘x'的记录,SQL语句如下:

select*fromfruitswheref_namelike'%b%'orf_namelike'%x%';

正则表达式:regexp

以b为开头

select*fromfruitswheref_nameregexp'^b';以y为结尾

select*fromfruitswheref_nameregexp'y$';

包含b或x(|两边可写单个字符,也可写字符串)

select*fromfruitswheref_nameregexp'b|x';

包含b或x,只能匹配单个字符

select*fromfruitswheref_nameregexp'[bx]';

匹配字符集中除去a到x的其他字符。

select*fromfruitswheref_nameregexp'[^a-z]';

匹配包含y且y前面最少四个字符.

select*fromfruitswheref_nameregexp'^____y$';.*:*前面的字符连续出现n个,n包含0;*={0,}a.*b|b.*a

(ba)+:+表示符号之前的字符连续出现1次以上;{1,}

ba*bbabaabaaaa.....{0,}

ba+babaabaaaa....{1,}

ba一起连续出现两次以上

(ba){2}

20167年1月7日

对数据进行验证

(1)数据->验证->定义规则

注意连续性变量分类型变量

2017年1月8日

计算年龄,日期

分段

(1)计算变量中if

之后

数据->定义便令属性

(2)转换->重新编码为不同的变量

(3)转换->可视化离散化

$$$$$$多个条件进行排序。。数据->排序个案

2017年1月9日

mysql修改密码

cmd运行

客户端运行

多表查询:

1、首先定义第一张数据表fruits,输入语句如下:+---------+--------------+------+-----+---------+-------+|Field|Type|Null|Key|Default|Extra|+---------+--------------+------+-----+---------+-------+|f_id|char(10)|NO|PRI|NULL|||s_id|int(11)|NO||NULL|||f_name|char(50)|NO||NULL|||f_price|decimal(8,2)|NO||NULL||+---------+--------------+------+-----+---------+-------+

2、然后需要插入如下数据:+------+------+------------+---------+|f_id|s_id|f_name|f_price|+------+------+------------+---------+|a1|101|apple|5.20||a2|103|apricot|2.20||b1|101|blackberry|10.20||b2|104|berry|7.60||b5|107|xxxx|3.60||bs1|102|orange|11.20||bs2|105|melon|8.20||c0|101|cherry|3.20||l2|104|lemon|6.40||m1|106|mango|15.60||m2|105|xbabay|2.60||m3|105|xxtt|11.60||o2|103|coconut|9.20||t1|102|banana|10.30||t2|102|grape|5.30||t4|107|xbababa|3.60|+------+------+------------+---------+

3、创建第二张数据表suppliers,SQL语句如下:+--------+----------+------+-----+---------+----------------+|Field|Type|Null|Key|Default|Extra|+--------+----------+------+-----+---------+----------------+|s_id|int(11)|NO|PRI|NULL|auto_increment||s_name|char(50)|NO||NULL|||s_city|char(50)|YES||NULL|||s_zip|char(10)|YES||NULL|||s_call|char(50)|NO||NULL||+--------+----------+------+-----+---------+----------------+

createtablesuppliers(s_idint(11)notnullprimarykeyauto_increment,s_namechar(50)notnull,s_citychar(50),s_zipchar(10),s_callchar(50));

4、向数据表suppliers中插入需要演示的数据,SQL语句如下:+------+----------------+-----------+--------+--------+|s_id|s_name|s_city|s_zip|s_call|+------+----------------+-----------+--------+--------+|101|FastFruitInc.|Tianjin|300000|48075||102|LTSupplies|Chongqing|400000|44333||103|ACME|Shanghai|200000|90046||104|FNKInc.|Zhongshan|528437|11111||105|GoodSet|Taiyuan|030000|22222||106|JustEatOurs|Beijing|010|45678||107|DKInc.|Zhengzhou|450000|33332|+------+----------------+-----------+--------+--------+

insertintosuppliersvalues(101,'FastFruitInc','TianJin','300000','48075'),(102,'LTSupplies','Chongqing','400000','44333'),(103,'ACME','Shanghai','200000','90046'),(104,'FNKInc','Zhongshan','528437','11111'),(105,'GoodSet','Taiyuan','030000','22222'),(106,'JustEatOurs','BeiJing','010','45678'),(107,'DkInc','Zhengzhou','450000','33332');

5、在fruits表和suppliers表之间使用内连接查询。查询之前,查看两个表的结构:

select*fromfruits,supplierswherefruits.s_id=suppliers.s_id;

连接查询:

6、在fruits表和suppliers表之间,使用INNERJOIN语法进行内连接查询,SQL语句如下:

7、在fruits表和suppliers表之间,使用leftjoin语法进行左连接查询,SQL语句如下:

8、在fruits表和suppliers表之间,使用rightjoin语法进行右连接查询,SQL语句如下:

select字段名from表1inner|left|right表2

on表1.字段名=表2.字段名and条件(这个条件其实就是两表之间的联系)where条件

select*fromfruitsinnerjoinsuppliersonfruits.s_id=suppliers.s_id;(公共的条件显示)

select*fromfruitsleftjoinsuppliersonfruits.s_id=suppliers.s_id;(以左边fruits表为准)

select*fromfruitsrightjoinsuppliersonfruits.s_id=suppliers.s_id;(以右边suppliers为准)

左右都要,用union连接

select*fromfruitsleftjoinsuppliersonfruits.s_id=suppliers.s_idunionselect*fromfruitsrightjoinsuppliersonfruits.s_id=suppliers.s_id;

取别名:as

select*fromfruitsasf1innerjoinsuppliersass1onf1.s_id=s1.s_id;(公共的条件显示)

语法书写顺序

where条件

orderby字段名

limitm,n

执行顺序

from

where

groupby

having

selectas

union

orderby

limit判断语句:case

case

when条件then语句

else语句

end

select*,casewhenf_price<5then'5元以内'whenf_pricebetween5and10then'5-10元'else'10元以上'end

fromfruits;

select*,casewhenf_price<5then'5元以内'whenf_pricebetween5and10then'5-10元'else'10元以上'endas价格区间

该支持汉字

安装文件,找到配置文件my.ini

退出服务,启动服务,要把mysql、mysqld(启动任务管理器,进程)等服务关掉。。

‘’子查询

9、使用内连接查询供应f_id=‘a1’的水果供应商提供的水果种类,SQL语句如下:

select*fromfruitswheres_id=(selects_idfromfruitswheref_id='a1');

select*fromfruitswheres_idin(selects_idfromfruitswheref_id='a1');

select*from

(selectf_id,fruits.s_idasfs_id,f_name,f_price,suppliers.*fromfruitsinnerjoinsuppliersonfruits.s_id=suppliers.s_id)asf1

wheres_idin(selects_idfromfruitswheref_id='a1');

10、ANY和SOME关键字是同义词,表示满足其中任一条件,它们允许创建一个表达式对子查询的返回值列表进行比较,只要满足内层子查询中的任何一个比较条件,就返回一个结果作为外层查询的条件。下面定义两个表tb1和tb2:

tb1:+-------+---------+------+-----+---------+-------+|Field|Type|Null|Key|Default|Extra|+-------+---------+------+-----+---------+-------+|num1|int(11)|NO||NULL||+-------+---------+------+-----+---------+------

createtabletb1(num1int(11)notnull);

tb2:+-------+---------+------+-----+---------+-------+|Field|Type|Null|Key|Default|Extra|+-------+---------+------+-----+---------+-------+|num2|int(11)|NO||NULL||+-------+---------+------+-----+---------+-------+

createtabletb2(num2int(11)notnull);

11、分别向两个表中插入数据:

insertintotb1values(1),(3),(5),(7),(9),(13),(17);

insertintotb2values(2),(4),(6),(8),(10),(12);

12、返回tb2表的所有num2列,然后将tb1中的num1的值与之进行比较,只要大于num2的其中一个值,其为符合查询条件的结果。

selectnum2fromtb2;

selectnum1fromtb1wherenum1>any(selectnum2fromtb2);

selectnum1fromtb1wherenum1>(selectmin(num2)fromtb2);

13、返回tb1表中比tb2表num2列所有值都大的值,SQL语句如下:

selectnum1fromtb1wherenum1>all(selectnum2fromtb2);selectnum1fromtb1wherenum1>(selectmax(num2)fromtb2);

1、绝对值ABS:求2,-3.3和-33的绝对值,输入语句如下:

selectabs(2),abs(-3.3),abs(-33);

2、求余数MOD(X,Y):对MOD(31,8),MOD(234,10),MOD(45.5,6)进行求余运算,输入语句如下:

selectmod(31,8),mod(234,10),mod(45.5,6);

3、返回最小整数CEILING:使用CEILING函数返回最小整数,输入语句如下(大于等于):

selectceiling(23.45),ceiling(-23.45);4、使用ROUND(x)函数对操作数进行四舍五入操作,输入语句如下:

selectround(23.45),round(23.123456,2),round(23.12345,0),round(12345,-1);

5、使用CHAR_LENGTH函数计算字符串字符个数,输入语句如下:

selectchar_length('football'),length('football');

6、使用CONCAT函数连接字符串,输入语句如下:

selectconcat('foot','ball');

7、使用LEFT函数返回字符串中左边的字符,输入语句如下:

selectleft('football',4);

8、使用RIGHT函数返回字符串中右边的字符,输入语句如下:

selectright('football',4);

9、使用MID()函数获取指定位置处的子字符串,输入语句如下:

selectmid('football',5)asf1,mid('football',-5)asf2,mid('football',4,2)asf3,

mid('football',-5,2)asf4;

10、使用LOCATE,POSITION,INSTR函数查找字符串中指定子字符串的开始位置,输入语句如下:

selectlocate('ball','football'),position('ball'in'football'),instr('football','ball');

11、使用FIND_IN_SET()函数返回子字符串在字符串列表中的位置,输入语句如下:

selectfind_in_set('ba','ball,foot,football,ba');

12、使用ifnull()函数对null空值进行判断,如果为空,输出第二个值。select*,if(f_price<10,'小于10','大于10')fromfruits;

selectifnull(null,2);

selectifnull(null,2),ifnull(4,2);

13、使用日期函数current_date()获取系统当前日期,输入语句如下:

selectcurrent_date(),curdate();

selectcurrent_time(),curtime();

selectcurrent_timestamp(),localtime(),now(),sysdate();

16、使用MONTH()函数返回指定日期中的月份,输入语句如下:

selectmonth(now());

17、使用MONTHNAME()函数返回指定日期中的月份的名称,输入语句如下:

selectmonthname(now());

selectdatediff('2017-01-09','2016-12-27');

selectdate_add('2016-12-09',interval4day);

selectdate_sub('2016-12-09',interval4day);

2016年1月10日

select*fromfruits;2、查询fruits表中f_name列所有水果名称,SQL语句如下:

3、从fruits表中获取f_name和f_price两列,SQL语句如下:

selectf_price,f_namefromfruitswheref_name='apple';

6、在fruits表中查询s_id=101或者102,且f_price大于5,并且f_name=‘apple’的水果价格和名称,SQL语句如下:

selectf_price,f_namefromfruitswheres_idin(101,102)andf_price>5andf_name='apple';

selectf_price,f_namefromfruitswhere(s_id=101ors_id=102)andf_price>5andf_name='apple';7、在suppliers表中查询s_city等于“Tianjin”的供应商s_id,然后在fruits表中查询所有该供应商提供的水果的种类,SQL语句如下:

selects_id,f_namefromfruitswheres_idin(selects_idfromsupplierswheres_city='Tianjin');

8、在suppliers表中查询s_city等于“Tianjin”的供应商s_id,然后在fruits表中查询所有非该供应商提供的水果的种类,SQL语句如下:

select*fromfruitswheres_idnotin(selects_idfromsupplierswheres_city='Tianjin');

selects_id,f_namefromfruitswheres_id!=(selects_idfromsupplierswheres_city='Tianjin');

selects_id,f_namefromfruitswheres_id<>(selects_idfromsupplierswheres_city='Tianjin');

9、查询fruits表,为f_name取别名fruit_name,f_price取别名fruit_price,为fruits表取别名f1,查询表中f_price<8的水果的名称,SQL语句如下:

selectf_nameasfruit_name,f_priceasfruit_pricefromfruitsasf1wheref_price<8;

10、在fruits表中,查找f_name字段中包含字母’o’或者’t’的记录,SQL语句如下:

select*fromfruitswheref_namelike'%o%'orf_namelike'%t%';

select*fromfruitswheref_nameregexp'[ot]';'o|t'

11、在ts表中字段名为s_id上建立外键连接到suppliers表s_id上,SQL语句为:

外键必须字段的类型相同,并且外键表的外键字段名必须在外表的字段之中。。

deletefromfruitswheres_idnotin(selects_idfromsuppliers);

createtablets(s_idint(11),constraints_fkforeignkey(s_id)referencessuppliers(s_id));

12、删除fruits表中的外键,SQL语句为:

altertablefruitsdropforeignkeyf_name;

13、查询fruits表中的信息,并将结果首先按照s_id升序排列,在按照水果名称降序排列:

select*fromfruitsorderbys_idasc,f_namedesc;

14、修改fruits表中s_id的字段名,将字段名改为fs_id,其余信息不变,SQL语句为:

altertablefruitschanges_idfs_idint(11)notnull;

15、输出fruits表中第3行到第7行的数据,SQL语句为:

select*fromfruitslimit2,5;

16、查询fruits表中供应商信息及各供应商提供水果的平均价格,SQL语句为:

selectfs_id,avg(f_price)fromfruitsgroupbyfs_id;

17、查询fruits表中每个供应商供应的水果大于4.5元的记录,SQL语句为:

select*fromfruitswheref_price>4.5;

18、查询fruits表中供应商的信息,SQL语句如下:

selectdistinctfs_idfromfruits;

19、查询fruits表中有多少个供应商,SQL语句如下:先去重,在计数。selectcount(distinctfs_id)fromfruits;

20、查询fruits表中每个供应商所供应水果价格最高的记录;

select*fromfruitswhere(s_id,f_price)in(selects_id,max(f_price)fromfruitsgroupbys_id);

21、在fruits表中添加一字段名为num1的字段,数据类型为int,默认值为3;(该字段为销售量的意思)altertablefruitsaddnum1intdefault3;

22、查询fruits表中供应商总销售额前三名的信息及销售额;selectfruits.s_id,s_name,s_city,sum(f_price*num1)fromfruitsleftjoinsuppliersonfruits.s_id=suppliers.s_idgroupbyf_idorderbysum(f_price*num1)desclimit0,3;

selects_id,sum(f_price*num1)fromfruitsgroupbyf_idorderbysum(f_price*num1)desclimit0,3;

23、查询fruits表的信息,并添加‘单价状况’的信息,如果单价低于5元,则标明‘低于5元’,如果单价高于10元,则表明’高于10元’,其他的情况,请表明‘5-10元’,SQL语句为:

select*,casewhenf_price<5then'低于5元'whenf_price>10then'高于10元'else'5-10元'endas单价状况fromfruits;

24、怎样查询fruits表中fs_id和f_name信息重复的记录;

select*,count(f_name)fromfruitsgroupbys_id,f_namehavingcount(f_name)>1;

rollup的使用方法:1、创建表格tb_1:+---------+----------+------+-----+---------+-------+|Field|Type|Null|Key|Default|Extra|+---------+----------+------+-----+---------+-------+|s_id|char(8)|NO|PRI|NULL|供应商||f_name|char(20)|NO|PRI|NULL|水果名||f_price|float(8,2)|NO||NULL|水果价格||f_no|int(4)|NO||NULL|销售数量|+---------+----------+------+-----+---------+-------+

createtabletb_1(s_idchar(8)notnullcomment'供应商',f_namechar(20)notnullcomment'水果名',f_pricefloat(8,2)notnullcomment'水果价格',f_noint(4)notnullcomment'销售数量',primarykey(s_id,f_name));

2、在表格tb_1中插入一下数据:+------+--------+---------+------+|s_id|f_name|f_price|f_no|+------+--------+---------+------+|001|apple|3.5|3||001|banana|3.5|2||001|orange|4.5|4||002|apple|3.3|5||002|banana|3.8|0||002|orange|4.7|3|+------+--------+---------+------+

insertintotb_1values('001','apple',3.5,3),('001','banana',3.5,2),('001','orange',4.5,4),('002','apple','3.3','5'),('002','banana',3.8,0),('002','orange',4.7,3);

5、按照供应商来查询表中水果的总销售额:

selectifnull(s_id,'总计'),f_name,sum(f_price*f_no),ifnull(f_name,'总计')fromtb_1groupbys_id,f_namewithrollup;

selects_id,f_name,sum(f_price*f_no),f_pricefromtb_1groupbys_id,f_namewithrollup;

存储过程:查询fruits信息的存储过程;

delimiter//createprocedurepro1(inxint)beginselect*fromfruitswherefs_id=x;end;//

dropprocedurepro1

delimiter;

createprocedure存储过程名(参数)SQL语句;end;//调用存储过程:

call存储过程名(参数);

定义变量:declare变量名数据类型初始值

参数:in/out/inout参数名数据类型

in:createprocedurepro2(inpro_inint)beginselectpro_in;setpro_in=2;selectpro_in;end;//

set@x=1//select@x//

callpro2(@x)//

out:createprocedurepro3(outpro_outint)beginselectpro_out;setpro_out=2;selectpro_out;end;//

set@x=1//select@x//callpro3(@x)//elecselect@y//

inout:createprocedurepro4(inoutpro_inoutint)beginselectpro_inout;setpro_inout=2;selectpro_inout;end;//

查看存储过程showprocedurestatus;定义变量:declare变量名数量类型初始值declaresintdefault0;declareiintdefault1;

1+2+3....+100;

while循环:createprocedurepro5(outzint)begindeclaresintdefault0;declareiintdefault1;whilei<=100dosets=s+i;seti=i+1;endwhile;selects;setz=s;selectz;end;//

判断:

case:createprocedurepro6(inxint)begincasexwhen1thenselect1;when2thenselect2;elseselect3;endcase

createprocedurepro6(inxint)begincasewhenx<1thenselect1;whenx>2thenselect2;elseselect3;endcase;end;//

if:createprocedurepro7(inyint)beginify=1thenselect1;elseify=2thenselect2;elseselect3;endif;end;//

从MySQL中导出数据:sql

注:命令行导入数据库,>改成<,\改成/(不保证,有待检验)1、将某数据库中的所有表导出来:

mysqldump-u用户名-p数据库名>路径文件名

C:\Users\lx>mysqldump-uroot-ptest>C:\aa\test.sqlEnterpassword:******

2、如何以库为单位把数据导出来;

mysqldump-uroot-p-Btest>C:\aa\testB.sql

3、如何导出所有的库:

mysqldump-uroot-p-A>C:\aa\ad.sql4、如何导出特定库中特定表的数据:

mysqldump-uroot-ptestfruits>C:\aa\fruits.sql

将数据导入到数据库中

5、如何以库为单位导入sql文件:

sourceC:/aa/fruit2.sql

mysql-uroot-p

6、对于表级的备份文件:

uset1;

sourceC:/aa/fruits.sql

mysql-uroot-ptestC:/aa/fruits5.sql

8、MySQL中用intooutfile导出fruits的csv或txt文件SELECT*INTOOUTFILE文件路径FROM表名

select*intooutfile'C:/Users/lx/Desktop/aa.txt'fieldsterminatedby','optionallyenclosedby'"'linesterminatedby'\r\n'fromfruits;

9、导出为txt的文件:

select*intooutfile'c:/users/fruits.txt'fieldsterminatedby','optionallyenclosedby'"'linesterminatedby'\r\n'fromfruits;wherefs_idbetween101and109;

10、将csv或txt文件导入到数据库中

Loaddatainfile文件路径intotable数据表

loaddatainfile'C:/Users/lx/Desktop/aa.txt'intotablefruitscharactersetgbkfieldsterminatedby','optionallyenclosedby'"'escapedby'"'linesterminatedby'\r\n';

导出csv和txt文件时,格式要定义好,fieldsterminated定义字段终止用什么来区分,我们用的是“,”来区分的,optionallyenclosedby’”’表示把数据文件中的字符串加双引号“"”来封闭,escapedby用来规定转义字符。,linesterminated表示换行。

2017年1月11日

触发器:创建表格订单表ts1:+----------+----------+------+-----+---------+-------+|Field|Type|Null|Key|Default|Extra|+----------+----------+------+-----+---------+-------+|order_id|char(10)|NO|PRI|NULL|||pro_id|char(10)|NO||NULL|||num|int(10)|YES||NULL||+----------+----------+------+-----+---------+-------+

createtablets1(order_idchar(10)notnullprimarykey,pro_idchar(10)notnull,numint(10));

创建表格商品表tt1:+----------+----------+------+-----+---------+-------+|Field|Type|Null|Key|Default|Extra|+----------+----------+------+-----+---------+-------+|pro_id|char(10)|NO|PRI|NULL|||pro_name|char(10)|NO||NULL|||num|int(10)|NO||NULL||+----------+----------+------+-----+---------+-------+

createtablett1(pro_idchar(10)notnullprimarykey,pro_namechar(10)notnull,numint(10)notnull);

在商品表tt1中插入数据:insertintott1values('1111','apple',50),('1112','banana',60),('1113','orange',50);

创建触发器:

delimiter//

createtrigger触发器名after|beforeinsert|update|deleteon表名foreachrowbeginSQL语句;end;//

1、客户下订单,订单表中插入数据:('1001','1112',4),创建触发器,要求商品表自动减去相应的商品库存:new.num

createtriggertr1afterinsertonts1foreachrowbeginupdatett1setnum=num-new.numwherepro_id=new.pro_id;end;

查看触发器showtriggers;

insertintots1values('1004','1112',50);

2、客户取消订单,取消订单'1001',创建触发器,要求商品表自动添加相应的商品库存:old.num

createtriggertr2afterdeleteonts1foreachrowbeginupdatett1setnum=num+old.numwherepro_id=old.pro_id;end;//3、客户修改订单,将订单'1001'的数量改为8,要求商品表的库存自动进行相应的调整.createtriggertr3afterupdateonts1foreachrowbeginupdatett1setnum=num+old.numwherepro_id=old.pro_id;updatett1setnum=num-new.numwherepro_id=new.pro_id;end;//

updatets1setnum=8whereorder_id='1002';

4、客户下订单,限购要求:每种商品最多只能购买5件,创建存储过程,自动调整下单num和商品表相应的库存.

createtriggertr4beforeinsertonts1foreachrowbeginifnew.num>5thensetnew.num=5;endif;updatett1setnum=num-new.numwherepro_id=new.pro_id;end;//

droptrigger触发器名

mysql数据字典数据库:information_schema注:为系统视图,不是基本表,不存存储数据。

表格和数据库的信息select*fromtableswheretable_schema='数据库名'|table_name='表名';

表格的字段名信息

select*fromcolumnswheretalbes_schema='数据库名'|table_name='表名';

查询关联表的信息:select*fromKEY_COLUMN_USAGEwhere条件;

1、添加用户:

crateuser'用户名'@'服务器名'identifiedby'密码';

createuser'hongqianjin'@'localhost'identifiedby'123456';

dropuser'zhangsan'@'localhost';

select*fromuser;

2、赋予用户权限:

grant权限on数据库.数据表to'用户名'@'服务器';grantselectoncompany.*to'hongqianjin'@'localhost';

全部权限:

grantallprivilegeson*.*to'lisi'@'localhost'identifiedby'123456';

查看权限:showgrantsfor'用户名'@'服务器';

showgrantsfor'hongqianjin'@'localhost';

3、取消用户权:

revoke权限on数据库.数据名from'用户名'@'服务器’;

revokeselectontest.*from'hongqianjin'@'localhost';4、刷新权限:

flushprivileges;

5、删除用户:

dropuser'用户名'@'服务器名'

dropuser'lisi'@'localhost';6、修改密码:

updateusersetpassword=password('密码')whereuser='用户名'andhost='服务器';

updateusersetpassword=password('密码')whereuser='用户名'andhost='服务器';4.修改管理员root密码,修改后刷新权限。flushprivileges;

There’satableXasbelow:

product

SALES

PRICE

A

50

70

B

80

C

60

90

D

100

E

10

40

Pleasedrawtheresultsfromthequery;

SelectX1.*FROMXASX1LEFTJOINXASX2ON

X1.PRODUCT=X2.PRODUCT

WHEREX1.SALES>50;

WHEREX2.SALES>50;

Date

result

2005/5/9

win

loss

2005/5/10

HowtowriteaSQLscripttogettheresultslikebelow

2

1

Select*,sun(result=’win’)aswin,sun(result=’loss’)aslossfromxgroupbydat;

selectdate,count(casewhenresult='win'then1elsenullend)aswin,count(casewhenresult='loss'then1elsenullend)aslossfromxgroupbydateOrderbydatedesc;

mysql>select*,result='win'fromx;mysql>select*,sum(result='win')aswin,sum(result='loss')aslossfromx->groupbydat;mysql>select*,if(result='win',result,null)fromx;->mysql>select*,count(if(result='win',result,null))aswinfromx->groupbydat;

数据表A(i)为过去第n个月的表格,包括客户号CUSTID、交易日期TXNDATE、交易金额TXNAMT、商户类型MCC。

如何知道在过去的3个月里至少连续2个月有POS交易的客户数

selectcount(*)from

(selectdistinctcustidfroma1Wherecustidin(selectdistinctcustidfroma2)

selectdistinctcustidfroma2Wherecustidin(selectdistinctcustidfroma3))asf1;

(slectdistinctcustidfroma1innerjoina2ona1.custid=a2.custid

selectdistinctcustidfroma1innerjoina2ona1.custid=a2.custid)asf1;

selectcustidfrom

(selectdistinctcustidfromA1

unionall

selectdistinctcustidfromA2)asf1

groupbycustidhavingcount(custid)>1;

表格A包含客户号custid,、交易日期TXNDATE、交易金额TXNAMT、商户类型MCC,求客户的购买周期;

设定购买一次的客户购买周期是0;

createprocedurepro4(inxdate,inydate)beginselectcustid,ifnull(datediff(max(txndate),min(txndate))/(count(custid)-1),0)as购买周期from(selectdistinctcustid,date(txndate)astxndatefromAwheredate(txndete)>xanddate(txndate)

createprocedurepro4(inxdate,inydate)beginselectcustid,datediff(max(txndate),min(txndate))/(count(custid)-1)as购买周期from(selectdistinctcustid,date(txndate)astxndatefromAwheredate(txndete)>xanddate(txndate)1unionselectcustid,0from(selectdistinctcustid,date(txndate)astxndatefromAwheredate(txndete)>xanddate(txndate)

(selectdistinctcustid,date(txndate)astxndatefromAwheredate(txndete)>xanddate(txndate)

selectcustid,datediff(max(txndate),min(txndate))/(count(custid)-1)as购买周期fromf1groupbycustidhavingcount(custid)>1unionselectcustid,0fromf1groupbycustidhavingcount(custid)=1;

查看:callpro4('2016-1-09','2016-12-09');

事务

(1)starttranscation;

(2)

updateasetmon=4500-100whereid=001;

(3)updateasetmon=2000+100whereid='002';

(4)commit;

结束事务:

回滚:rollback;修改取消

提交:commit事务文件---》数据表

2017年1月12日

1、employee表结构comment’字段说明’

字段说明

E_no

员工编号

E_name

员工姓名

E_gender

员工性别

CHAR(2)

Dept_no

部门编号

E_job

职位

E_salary

薪水

hiredate

入职日期

DATE

createtableemployee

(E_noint(11)notnullprimarykey,

E_namevarchar(50)notnull,

E_genderchar(2),

Dept_noint(11)notnull,

E_jobvarchar(50)notnull,

E_salaryint(11)notnull,

hiredatedatenotnull,

constraintfk_edforeignkey(Dept_no)referencesdept(D_no)

2、dept表结构

D_no

D_name

部门名称

D_location

部门地址

VARCHAR(100)

createtabledept

(D_noint(11)notnullprimarykeyauto_increment,

D_namevarchar(50)notnull,

D_locationvarchar(100)

3、employee表中的记录

1001

SMITH

m

20

CLERK

800

2005-11-12

1002

ALLEN

f

30

SALESMAN

1600

2003-05-12

1003

WARD

1250

1004

JONES

MANAGER

2975

1998-05-18

1005

MARTIN

2001-06-12

1006

BLAKE

2850

1997-02-15

1007

CKARK

2450

2002-09-12

1008

SCOTT

ANALYST

3000

1009

KING

PRESIDENT

5000

1995-01-01

1010

TURNER

1500

1997-10-12

1011

ADAMS

1100

1999-10-05

1012

JAMES

950

2008-06-15

loaddatainfile'C:/Users/Administrator/Desktop/22.csv'intotableemployee

charactersetgbk

fieldsterminatedby','

optionallyenclosedby'"'

escapedby'"'

linesterminatedby'\r\n';

4、dept表中的记录

ACCOUNTING

ShangHai

RESEARCH

BeiJing

ShenZhen

OPERATIONS

FuJian

loaddatainfile'C:/Users/Administrator/Desktop/11.csv'intotabledept

作业:

1、将表employee、dept建在数据库company下

2、在employee表中,查询所有记录的e_no、e_name和e_salary字段值。

selecte_no,e_name,e_salaryfromemployee;

3、在employee表中,查询dept_no等于10和20的所有记录。

Select*fromemployee

WhereDept_noin(10,20);

4、在employee表中,查询工资范围在800-2500之间的所有记录。

WhereE_salary>=800andE_salary<=2500;

5、在employee表中,查询部门编号为20的部门中的员工信息。

WhereDept_no=20;

6、在employee表中,查询每个部门最高工资的员工信息。

select*fromemployee

where(dept_no,E_salary)in(selectdept_no,max(E_salary)fromemployeegroupbydept_no);

select*,max(E_salary)from(select*fromemployeeorderbyE_salarydesc)asf1

groupbydept_no;

7、查询员工BLAKE所在部门和部门所在地。

selectD_name,D_locationfromdept

whereDept_no=(selectD_nofromemployeewhereE_name='BLAKE');

selecte_name,dept.*fromemployeeleftjoindept

whereE_name='BLAKE';

8、在employee表中,计算每个部门各有多少名员工。

selectDept_no,count(E_no)fromemployee

groupbyDept_no;

9、在employee表中,计算不同类型职工的总工资数。

selectE_job,sum(E_salary)fromemployee

groupbyE_job;

10、在employee表中,计算不同部门的平均工资。

selectDept_no,avg(E_salary)fromemployee

11、在employee表中,查询工资低于1500的员工信息。

whereE_salary<1500;

12、在employee表中,将查询记录先按部门编号由高到低排列,再按员工工资由高到低排列。

orderbyDept_nodesc,E_salaryasc;

13、查询employee表中第4行到第8行的信息。

limit3,5;

14、重新建立一张表,表名为new_emp,结构与employee相同,并且把数据输入到新表中。

createtablenew_emplikeemployee;

insertintonew_emp

select*fromemployee;

15、将employee表中dept_no改为d_no,数据类型不变;

altertableemployeedropforeignkeyfk_ed;

altertableemployeedropkeyfk_ed;

altertableemployeechangedept_nod_noint(10)notnull;

16、删除employee表中工资少于1000的数据;

deletefromemployee

whereE_salary<1000;

索引:设有N条随机记录,不用索引,平均查找N/2次。如果使用索引后呢?

btree(二叉树)索引log以2为底N的对数次

hash(哈希)索引:1次(理论上)

建立数据表books_1,在pubdate上建立普通索引,数据如下

字段名数据类型主键外键非空唯一自增索引b_idint(11)是否是是否否b_namevarchar(50)否否是否否否authorvarchar(100)否否是否否否pricefloat否否是否否否pubdateyear(4)否否是否否普通索引notevarchar(100)否否是否否否numint(11)否否是否否否

SQL语句如下:

createtablebooks_1(b_idint(11)nullprimarykey,b_namevarchar(50)notnull,authorvarchar(100)notnull,pricefloatnotnull,pubdateyear(4)notnull,notevarchar(100)notnull,numint(11)notnull,index(pubdate));二,在已经存在的表上创建索引;

altertablebooks_1addkey|index(num);createindexipriceonbooks_1(price);三,删除索引

altertablebooks_1dropkeynum;dropindexipriceonbooks_1;

视图:视图是由查询结果形成的一张虚拟表,表格数据的更新,视图显示的数据也会同时更新,但是,视图的增删改同样会修改表中的数据(只有一一对应的时候才可以修改)。

create(algorithm=merge|temptable|undefined)view视图名asselect字段名from表名where条件;

createviewvfruitsasselect*fromfruits;

createviewvfruitsasselect*fromfruitsinnerjoinsuppliersonfs_id=

showtablestatus;

dropviewvfruits;

2017年1月13日

1、创建数据库school;

2、创建数据表class,自己设定表格结构,并存储数据;(可直接导入数据无代码)

专业编号

专业名

学院名

001

统计

经济学院

1965/9/1

002

自动化

电气工程学院

1945/9/1

003

电气

004

外语

外语学院

1985/9/1

005

化学

化工学院

1955/9/1

006

计算机

信息科学与工程学院

1995/9/1

007

物流

管理学院

3、创建数据表student,自己设定表格结构,并存储数据;(可直接导入数据无代码)

注:性别中1为男,2为女;

学号

姓名

性别

英语

数学

语文

体育

1501

张三

64

56

74

63

1532

李四

51

57

84

1554

赵武

76

87

81

75

1558

王六

72

1534

赵明鱼

42

38

68

45

1564

诸葛强

77

1507

张秀

73

1589

王五

86

1509

徐凤东

79

85

39

66

46

1510

郑明明

35

78

59

1511

张宝全

1512

刘泽宏

1576

贺军委

1523

于晨

1515

刘立彪

49

1567

叶震伟

91

82

1517

王志平

1543

黄莺

1519

王文彬

89

94

4、统计表中男女各自的人数;

5、统计表中各科全部及格的人数;

6、查询student中总成绩前三名的信息;

7、统计表中总平均分以上的人数;

8、查询各专业的平均分;

9、查询各科成绩的及格率;

10、查询每位同学的信息和不及格的科目数;

11、学号尾数为4的学生总成绩;

13、如果总分不到300分的学生‘留级’,总分数在不到350分的学生进‘三中’,总分不到400分的进‘二中’,总分达到400分的进‘一中’,请在表中添加字段名‘所升学校’,并添加数据;

14、学号为’1511’的同学语文成绩误判,现改为68分;

15、不及格的科目要求重考,每科补考费60元,student中同学补考费总共多少元;

16、因各个学校整改,现外语专业调到别的学校,现把外语专业的信息删除;

17、查询总分在400分以上的学生和专业的信息;

18、怎样确保student表中专业编号的范围不会超出class表中专业编号的范围;

19、如果知道学生的学号X,查询出他的学号、姓名、性别(’男’,’女’)、专业名、各科成绩、总成绩的信息,请使用存储过程来实现;

20、查询class表中记录没有重复的信息;

1、createdatabaseschool;

插入数据:loaddatainfile'C:/Users/Administrator/Desktop/西线学院/MYSQL/aa.csv'intotableclasscharactersetgbkfieldsterminatedby','optionallyenclosedby'"'escapedby'"'linesterminatedby'\r\n';

3、创建表格student:createtablestudent(学号int(11)primarykey,专业编号char(10),姓名char(50),性别int(11),英语int(11),数学int(11),语文int(11),计算机int(11),体育int(11),constraintf_keyforeignkey(专业编号)referencesclass(专业编号));

插入数据:loaddatainfile'C:/Users/Administrator/Desktop/西线学院/MYSQL/bb.csv'intotablestudentcharactersetgbkfieldsterminatedby','optionallyenclosedby'"'escapedby'"'linesterminatedby'\r\n';

4、selectif(性别=1,'男','女')性别,count(性别)as人数fromstudentgroupby性别;

5、selectcount(*)as全部及格人数fromstudentwhere英语>=60and数学>=60and语文>=60and计算机>=60and体育>=60;

selectsum(英语>=60and数学>=60and语文>=60and计算机>=60and体育>=60)as全部及格人数fromstudent;

6、select*fromstudentorderby总分desclimit3;

7、selectcount(*)fromstudentwhere总分>(selectavg(总分)fromstudent);

8、select专业编号,avg(英语),avg(数学),avg(语文),avg(计算机),avg(体育),round(avg(总分),2)fromstudentgroupby专业编号;

总结

插入数据

insertinto表1(字段)select字段名from表2where条件;

1、创建数据库company

2、创建表格personnel,该表结构如下:

Field

Type

Null

Key

Default

Extra

char(10)

NO

PRI

NULL

varchar(50)

年龄

int(11)

所属部门

工资

float(10,2)

3、创建成绩表department,该表结构如下:

UNI

4、向数据表personnel中插入如下数据:

程亮

27

8000

刘辉

24

苏康

26

7500

王红

5200

28

7200

唐宏

25

5600

丁丁

008

李乐

5900

009

郑艳

31

010

徐丽

4500

011

崔霞

5800

012

苏德

29

8500

013

赵康

7600

014

孙晓刚

015

6000

016

李明

8200

017

李小小

5500

018

周小康

6300

019

李秀霞

7000

020

赵晓晓

021

7650

022

23

4800

5、向数据表department中插入如下数据:

销售部

A座1楼

财务部

A座3楼

技术部

人事部

A座2楼

6、查询personnel表中员工的编号,姓名,年龄,部门名称,工资的信息;

7、查询department表中各个部门的人数;

8、对personnel表中员工工资进行倒叙排序;

9、查询personnel表中第5行到第10行的数据;

10、因公司销售状况超出预计目标,故提高销售部人员的工资,工资提高10%,对personnel的数据进行更新;

11、查询出生日期在1990年之前的员工的信息及其所在部门的信息;

12、查询该公司在A座中3楼有多少人;

13、查询personnel表中的信息,信息中添加‘工资范围’一列,主要有’5000元之内’,’5000到8000’,’8000到10000’和’10000以上’;

14、查询员工工资在平均工资以上的有哪些;

15、在’三八妇女节’,公司对员工发福利,女员工工资在5000元以内的发200元,5000元到8000元的发300元,8000元以上的发400元,男员工统一发200元,请问公司合计要花费多少;

16、创建一个简单的存储过程pro1,要求调用存储过程时,输入员工编号参数可以查询该员工的信息;

17、创建一张新表person_new,将personnel和department的信息全部存储进去;

18、在personnel表中的所属部门上添加索引;成功后删除该索引;

19、怎样才能确保personnel表中部门编号的范围在department表中部门编号的范围之内;

20、查询personnel表中同名同性的人员的信息;

21、请创建一个存储过程pro2,要求调用该索引时输出1+2+…+100的和;

方法很多,不一定一样

1、createdatabasecompany;usecompany;

2、CREATETABLEpersonnel(员工编号char(10)NOTNULL,员工姓名varchar(50)NOTNULL,性别char(10)NOTNULL,年龄int(11)NOTNULL,所属部门int(11)NOTNULL,工资float(10,2)NOTNULL,primarykey(员工编号))ENGINE=InnoDBDEFAULTCHARSET=utf8;

3、CREATETABLEdepartment(部门编号int(11)NOTNULL,部门名称varchar(50)NOTNULL,部门地址varchar(50)NOTNULL,PRIMARYKEY(部门编号))ENGINE=InnoDBDEFAULTCHARSET=utf8;

4、INSERTINTOpersonnelVALUES('001','程亮','男',27,1001,8000),('002','刘辉','男',24,1001,5000),('003','苏康','男',26,1001,7500),('004','王红','女',24,1001,5200),('005','张三','男',28,1001,7200),('006','唐宏','男',25,1001,5600),('007','丁丁','女',24,1001,5200),('008','李乐','男',26,1001,5900),('009','郑艳','女',31,1002,7500),('010','徐丽','女',25,1002,4500),('011','崔霞','女',26,1002,5800),('012','苏德','男',29,1003,8500),('013','赵康','男',26,1003,7600),('014','孙晓刚','男',24,1003,5600),('015','王红','女',26,1003,6000),('016','李明','男',29,1003,8200),('017','李小小','女',24,1004,5500),('018','周小康','男',25,1004,6300),('019','李秀霞','女',26,1004,7000),('020','赵晓晓','女',24,1004,5200),('021','王红','女',27,1004,7650),('022','李乐','男',23,1003,4800);

5、INSERTINTOdepartmentVALUES(1001,'销售部','A座1楼'),(1002,'财务部','A座3楼'),(1003,'技术部','A座3楼'),(1004,'人事部','A座2楼');

6、select员工编号,姓名,年龄,部门名称,工资frompersonnel,departmentwhere所属部门=部门编号;

7、select部门编号,部门名称,count(*)as部门人数frompersonnel,departmentwhere所属部门=部门编号groupby部门编号;

8、select*frompersonnelorderby工资desc;

9、select*frompersonnellimit4,6;

10、updatepersonnelset工资=工资*1.1where所属部门in(select部门编号fromdepartmentwhere部门名称='销售部');

11、select*frompersonnel,departmentwhere所属部门=部门编号andyear(now())-1990<年龄;

12、select部门地址,count(*)as人数fromdepartmentjoinpersonnelon所属部门=部门编号where部门地址='A座3楼';

13、select*,casewhen工资<5000then'5000元以内'when工资<8000then'5000到8000'when工资<10000then'8000到10000'else'10000元以上'endas工资范围frompersonnel;

14、select*frompersonnelwhere工资>(selectavg(工资)frompersonnel);

15、selectsum(工资<5000and性别='女')*200+sum(工资between5000and8000and性别='女')*300+sum(工资>8000and性别='女')*400+sum(性别='男')*200as花费frompersonnel;

16、delimiter//createprocedurepro1(inxchar(10))beginselect*frompersonnelwhere员工编号=x;end;//delimiter;

17、createtableperson_newasselect*frompersonnelleftjoindepartmenton所属部门=部门编号unionselect*frompersonnelrightjoindepartmenton所属部门=部门编号;

18、altertablepersonneladdindex(所属部门);

altertablepersonneldropindex所属部门;

19、altertablepersonneladdconstraintfk_pdforeignkey(所属部门)referencesdepartment(部门编号);

20、select*frompersonnelwhere(姓名,性别)in(select姓名,性别frompersonnelgroupby姓名,性别havingcount(*)>1);

21、delimiter//createprocedurepro2(outzint)begindeclareiintdefault0;declaresintdefault1;whiles<=100doseti=i+s;sets=s+1;endwhile;setz=i;selectz;end;//delimiter;

2017年1月14日

2017年2月5日

1.一元线性回归

(3)一元线性回归只涉及到一个变量的回归,自变量(x)和因变量(y)之间是线性关系。

决定系数

(1)反映模型的解释能力

(2)反映回归直线的拟合程度

(4)决定系数特点

取值范围在[0,1]之间

R2(R的平方)->1,说明回归方程拟合的越好

R2(R的平方)->0,说明回归方程拟合的越差

2.方差分析

1.掌握了t检验后,就可以对两组样本的平均水平进行比较了。但如果面对的是多组样本的比较,t检验就不行了,可以用方差分析。

2.方差分析的基本思想:把数据的全部变异--总变异分解成两个或者多个组成部分,在做分析。

3.方差分析的术语:观测变量、控制变量、控制变量的水平

4.方差分析的应用:两组或两组以上均数是否相等,两个或多个因素的交互作用,回归方程的线性假设检验

5.总方差:反映全部个体的变异情况

6.组内方差

(1)各组组内个体之间的变异

(2)属于随机误差

7.组间方差

(1)各组均数和总均数的差异

(2)除了随机误差,还可能有系统误差

(3)F值

2017年2月6日

(I)函数关系:对应的确定关系

(2)统计关系:线性关系和非线性关系。

(3)线性关系:正线性关系、负线性关系

2.线性关系的量化指标

2017年2月7日

1.假设检验

(1)在完成基础统计分析后,我们对数据轮廓有了一定掌握。通过数据分析比较,也形成初步结论。但我们得到的结论、做出的判断,到底有多可信?借助假设检验的这个工具可以得到科学的判断。

(2)假设检验执行步骤:建立要检验的假设,确定检验水准,选择并计算事宜的统计量,确定P值,做出推断。

(3)t分布的特点

(I)单峰,以0为中心,左右对称

(II)分布形态和样本数量n有关

(III)n->无穷大时,逼近标准正态曲线

(IV)t曲线不是一条曲线,而是一族曲线

(4)t检验是基于t分布的比较均数的检验方法

2017年2月9日

练习题下面三个关系表:CARD借书卡:CNO卡号,NAME姓名,CLASS班级BOOKS图书表:BNO书号,BNAME书名,AUTHOR作者,PRICE单价,QUANTITY库存册数BORROW借书记录:CNO借书卡号,BNO书号,RDATE还书日期备注:限定每人每种书只能借一本;库存册数随借书、还书而改变。

要求实现如下15个处理:

1、写出建立BORROW表的SQL语句,要求定义主码完整性约束和引用完整性约束。

2、找出借书超过5本的读者,输出借书卡号及所借图书册数。

3、查询借阅了"水浒"一书的读者,输出姓名及班级。

4、查询过期未还图书,输出借阅者(卡号)、书号及还书日期。

5、查询书名包括"网络"关键词的图书,输出书号、书名、作者。

6、查询现有图书中价格最高的图书,输出书名及作者。

7、查询当前借了"计算方法"但没有借"计算方法习题集"的读者,输出其借书卡号,并按卡号降序排序输出。

8、将"C01"班同学所借图书的还期都延长一周。

9、从BOOKS表中删除当前无人借阅的图书记录。

10、如果经常按书名查询图书信息,请建立合适的索引。

11、在BORROW表上建立一个触发器,完成如下功能:如果读者借阅的书名是"数据库技术及应用",就将该读者的借阅记录保存在BORROW_SAVE表中(注ORROW_SAVE表结构同BORROW表)。

12、建立一个视图,显示"力01"班学生的借书信息(只要求显示姓名和书名)。

13、查询当前同时借有"计算方法"和"组合数学"两本书的读者,输出其借书卡号,并按卡号升序排序输出。

14、假定在建BOOKS表时没有定义主码,写出为BOOKS表追加定义主码的语句。

15、对CARD表做如下修改:a.将NAME最大列宽增加到10个字符(假定原为6个字符)。b.为该表增加1列NAME(系名),可变长,最大20个字符。

要求实现如下15个处理:1、写出建立BORROW表的SQL语句,要求定义主码完整性约束和引用完整性约束。

createtableborrow(cnochar(15)notnull,bnochar(20)notnull,rdatedatenotnull,primarykey(cno,bno),constraintfk_cbwforeignkey(cno)referencescard(cno),constraintfk_bbforeignkey(bno)referencesbooks(bno));

delimiter//createtriggertr1afterinsertonborrowforeachrowbeginupdatebookssetquantity=quantity-1wherebno=new.bno;end;//

delimiter//createtriggertr2afterdeleteonborrowforeachrowbeginupdatebookssetquantity=quantity+1wherebno=old.bno;end;//

selectcno,count(bno)as借书数fromborrowgroupbycnohavingcount(bno)>5;

selectcard.cno,name,class,bnamefromborrow,card,bookswherecard.cno=borrow.cnoandbooks.bno=borrow.bnoandbname='水浒';

selectcard.cno,bno,rdatefromcardinnerjoinborrowoncard.cno=borrow.cnowherecurdate()>rdate;

selectbno,bname,authorfrombookswherebnamelike'%网络%';

selectbname,authorfrombooksorderbypricedesclimit1;

selectdistinctcnofrombooksinnerjoinborrowonborrow.bno=books.bnowherebname='计算方法'andcnonotin(selectcnofromborrowwherebnoin(selectbnofrombookswherebname='计算方法习题集'))orderbycnodesc;

updateborrowsetrdate=date_add(rdate,interval1week);

deleefrombookswherenotexists(selectbnofromborrowwherebno=books.bno);

altertablebooksaddunique(bname);

createtableborrow_savelikeborrow;

createtriggertr23afterinsertonborrowforeachrowbegininsertintoborrow_saveselectdistinctnew.cno,new.bno,new.rdatefromborrowwherenew.bno=(selectbnofrombookswherebname='数据库技术及应用');

end;//

12、建立一个视图,显示"01"班学生的借书信息(只要求显示姓名和书名)。

createvuewvborrowasselectname,bnamefromcard,borrow,bookswherecard.cno=borrow.cnoandborrow.bno=books.bnoandclass='01';

selectcnofromcard,borrow,bookswherecard.cno=borrow.cnoandborrow.bno=books.bnoand(bname='计算方法'orbname='组合数学')groupbycnohavingcount(*)=2orderbycnoasc;

altertablebooksaddprimarykey(bno);

altertablecardmodifynamechar(10)notnull;

altertablecardaddxnamevarchar(20);

一、数组的组织和整理--数据预处理(R语言)

1.缺失值的表达方式:NANaNInf-lnf

2.发现缺失值

summary(),is.na(),complete.case()

3.缺失值是否有业务含义

4.把不合理数据编码为缺失值

5.加载包:library(VIM)

6.查看数据:str(sleep)

7.summary(sleep)

8.发现缺失值

(I)属性级别

is.na(sleep$Sleep)

(II)is.na(NaN)

(III)

>is.na(NaN)[1]TRUE>is.na(-Inf)[1]FALSE>is.na(Inf)[1]FALSE>is.infinite(Inf)[1]TRUE

(IV)

sleep$Sleep[is.na(sleep$Sleep)]

(V)

sleep$Sleep[!(is.na(sleep$Sleep))]

(VI)记录级别

complete.cases(sleep)

(VII)

>sleep.cleaned=sleep[complete.cases(sleep),]>View(sleep.cleaned)>sellp.na=sleep[!(complete.cases(sleep)),]>View(sleep.cleaned)>sum(is.na(sleep$Sleep))[1]4>mean(is.na(sleep$Sleep))[1]0.06451613

2.完全随机缺失

MissingCompletelyAtRandom,MCAR

随机缺失

MissingAtRandom,MAR

非随机缺失

NMAR

3.查看包的帮助文档

>help(package='VIM')

4.分析函数

na.rm=T

5.行删除

na.omit

6.配对删除

典型函数cor(data,use="pairwise.complete.obs")

2016年2月10日

最后一定要shift+ctrl+Enter

1.LOOKUP函数:

数据可视化-基础绘图体系(R)

图形设备pdfpngjpegbmpwin.metafilepostscriptdev.off

高水平绘图函数plotpairshist

低水平绘图函数pointslinestextablinelegendtitleaxis

2017年2月11日

字符串

nchar()length()

paste()outer()

substr()strsplit()

Sub()gsub()grep()regexpr()grepexpr()

dfdd

数据集成

merge

pylr::join

透视表分组

改成分秒格式

输入数组

2017年2月12日

2.最近邻分类法在对检验元组分类时可能非常慢。

3.粗糙集理论可以用于分类,发现不准确数据或噪声数据内的结构联系。它用于离散值属性。因此,连续值属性必须在使用前离散化。

4.粗糙集理论基于给定训练数据内部的等价类的建立。形成一个等价类的所有元组是不加区分的;也就是说,对于描述数据的属性,这些样本是等价的。

5.半监督分类使用有类标号的数据和无类标号的数据构建分类器。

6.自我训练是半监督分类的最简单形式。

7.协同训练是半监督分类的另一种形式,其中两个或多个分类器互教互学。理想地,每个学习器都对每个元组使用一个不同的、理想的独立特征集。

8.主动学习是一种迭代的监督学习,适合数据丰富但类标号稀缺或获取昂贵的情况。学习算法是主动的,因为它可能有目的地向用户询问类标号。通常,这种方法用于学习概念的元组数远小于典型的监督学习所需要的数量。

9.高维数据聚类方法可以分成两类:子空间聚类方法和维归约方法。

11.聚类的最优化目标包含两部分:优化聚类质量和最小化违反约束的罚。总体目标函数是聚类质量得分和罚得分的组合。

12.基于密度的离群点检测方法的基本假设是:非离群点对象周围的密度与其领域周围的密度类似,而离群点对象周围的密度显著不同于其领域周围的密度。根据这个假定,基于密度的离群点检测方法使用对象和其近邻的相对密度指示对象是离群点的程度。

13.朴素贝叶斯分类法假定一个属性值在给定类上的影响独立于其他属性的值。

2017年02年13日

1.VBE

开发工具选项卡调用:选项----自定义功能区

VBE就是VBA的编辑窗口,所有的VBA操作都在VBE里完成

ALT+F11快捷键打开VBE

2.

填充颜色代码:Selection.Interior.Color=8883

3.

Sub宏4()'ActiveCell.FormulaR1C1="数据分析"Selection="数据分析"Selection.Font.Size=20Selection.Font.Bold=TrueEndSub

注意:ActiveCell是当前活动的单元格,Selection则是选择的单元格

4.数据类型

类型

值范围

Byte/字节型

0-255

Integer(%)/整数型

-32,768-32,767

Long(&)/长整型

-2,147,483,648-2,147,483,648

Single(!)/单精度浮点型

-3.402823E+38~-1.401298E-45为负值1.401298E-45~3.402823E+38为正值/

Double(#)/双精度浮点型

-1.79769313486232e+308~-4.94065645841247E-324为负值4.94065645841247E-324~1.79769313486232e+308为正值

Currency(@)/货币类型

-922,337,203,685,477.5808to922,337,203,685,477.5807

Decimal/小数型

+/-79,228,162,514,264,337,593,543,950,335ifnodecimalisuse+/-7.9228162514264337593543950335(28decimalplaces).

String(fixedlength)($)/字符串型

1~65,400字符

String(variablelength)($)/字符串型

0~20亿个字符

Date/日期类型

1月1,100到12月31,9999(2016-04-01)

Boolean/布尔类型

True或False

Object/对象类型worksheetworkbookrange

任何嵌入对象

Variant(numeric)/变体型

任何Double值一样大

Variant(text))/变体型(arr)

同为可变长度的字符串

1.大数据在国际标准上是4v,也就是数量、多样、价值、速度。

(1)数量就是数据体量特别大。

(2)多样就是数据的种类和类型非常多,它包括网络日志、视频、图片、地理位置、信息、统计等等调查,这些全包括。

(3)深入挖掘,就能产生出商业价值,换言之就是价值密度低,商业价值高。

(4)处理速度快。

2.大数据三原则

(1)首先大数据它不是随机样本,而是全体数据。

(2)大数据不是精确性的,而是混杂性。

3.数据特征化

(1)数据特征化是目标类数据的一般特征或特征的汇总。通常,通过查询来收集对应于用户指定类的数据。

(2)数据特征化的输出可以用多种形式提供,例如饼图、条图、曲线、多维数据立方体和包括交叉表在内的多维表。结果描述也可以用广义关系或规则(称做特征规则)形式提供。

4.数据区分是将目标类数据对象的一般特性与一个或多个对比类对象的一般特征进行比较。目标类和对比类可以由用户制定,而对应的数据对象可以通过数据库查询检索。

5.频繁模式是在数据中频繁出现的模式。存在多种类型的频繁模式,包括频繁项集、频繁子序列(又称序列模式)和频繁子结构。

6.频繁项集挖掘是频繁模式挖掘的基础。

7.离群点数据分析称做离群点分析或异常挖掘。

8.数据质量涉及许多因素,包括准确性、完整性、一致性、时效性、可信性和可解释性。

9.考察数据预处理的主要步骤,即数据清理、数据集成、数据规约和数据变换。

(1)数据清理例程通过填写缺失的值,光华噪声数据,识别或删除离群点,并解决不一致性来”清理”数据。

10.主成分分析(principalcomponentsanalysis)或PCA(又称Karhunen-Loeve或K-L方法)搜索k个最能代表数据的n维正交向量,其中k<=n,这样,原数据投影到一个小得多的空间上,导致维规约。与属性子集选择通过保留属性集的一个子集来减少属性集的大小不同,PCA通过创建一个替换的、较小的变量”集合”属性的基本要素。原数据可以投影到该较小的集合中。PCA常常能够揭示先前未曾察觉的联系,并因此允许不寻常的结果。

11.PCA可以用于有序和无序的属性,并且可以处理稀疏和倾斜数据。多于二维的多维数据可以通过将问题归约为二维问题来处理。主成分可以用做多元回归和聚类分析的输入。与小波变换相比,PCA能够更好地处理稀疏数据,而小波变换更适合高维数据。

12.数据仓库是一个面向主题的、集成的、时变的、非易失的数据集合,支持管理者的决策过程。

13.通常,数据仓库采用三层体系结构:

(1)底层是仓库数据库服务器,它几乎总是一个关系数据库系统。

(2)中间层是OLAP服务器,其典型的实现使用(i)关系OLAP(ROLAP)模型(即扩充的关系DBMS,它将多维数据上的操作映射为标准的关系操作),或使用(ii)多维OLAP(MOLAP)模型(即专门的服务器,它直接实现多维数据和操作)。

(3)顶层是前端客户端,它包括查询和报告工具、分析工具和或数据挖掘工具(例如,趋势分析,预测等)。

14.多维数据分析的核心是有效地计算多维集合上的聚集。

15.置信区间是一个以给定的高概率涵盖正真总体值估计的值域。

16.至少有4种方法可以把OLAP风格的分析与数据挖掘技术融合在一起。

(1)使用立方体空间为数据挖掘定义数据空间。

(2)使用OLAP查询为挖掘产生特征和目标。

(3)使用数据挖掘模型作为多步挖掘过程的构建。

(4)使用数据立方体计算技术加快重复模型的构建。

17.一般而言,关联规则的挖掘是一个两步的过程:

(1)找出所有的频繁项集:根据定义,这些项集的每一个频繁出现的次数至少与预定义的最小支持计算min_sup一样。

(2)由频繁项集产生强关联规则:根据定义,这些规则必须满足最小支持度和最小置信度。

18.基于模式的多样性,模式挖掘可以使用如下标准进行分类:

(1)基本模式:频繁模式可能有多种形式,包括简单的频繁模式、闭幕式和极大模式。

(2)基于模式所涉及的抽象层:模式或关联规则可能具有处于高、低,或多个抽象层的项。

(3)基于规则或模式所涉及的维数:如果关联规则或模式中的项或属性只涉及一个维,则它是单维关联规则/模式。

19.数据挖掘研究的一般线路图

20.根据约束如何与模式挖掘过程配合,模式剪纸约束可以分为五类:(1)反单调的;(2)单调的;(3)简洁的;(4)可转变的(5)不可转变的

21.模式融合合并大模式的小的子模式,而不是用单个项增量地扩展模式,因此,该方法有一个优点,绕过中型模式,沿着通往可能的巨型模式的路径前进。

22.分类是一种最重要的数据分析形式,它提取刻画重要数据类的模型。这种模型称为分类器,预测分类的(离散的、无序的)类标号。

23.数据分类是一个两阶段过程,包括学习阶段(构建分类模型)和分类阶段(使用模型预测给定数据的类标号)。

24.聚类是一个把数据对象集划分成多个组或簇的过程,使得簇内的对象具有很高的相似性,但与其他簇中的对象很不相似。

25.数据仓库是一个从多个数据源收集的信息存储库,存放在一致的模式下,并且通常驻留在单个站点上。数据仓库通常通过数据清理、数据变换、数据集成、数据装入和定期数据刷新来构造。

(1)通常,数据仓库用称作数据立方体的多维数据结构建模。

26.数据特征化是目标类数据的一般特征或特征的汇总。通常,通过查询来收集对应于用户指定类的数据。

27.数据区分是将目标类数据对象的一般特征与一个或多个对比类对象的一般特征进行比较。目标类和对对比类可以由用户指定,而对应的数据可以通过数据库查询检索。

28.分类预测类别(离散的,无序的)标号,而回归建立连续值函数模型。也就是说,回归用来预测缺失的或难以获得的数值数据值,而不是(离散的)类标号。

29.离群点数据分析称作离群点分析或异常挖掘。

30.作为一个应用驱动的领域,数据挖掘吸纳了诸如统计学、机器学习、模式识别、数据库和数据仓库、信息检索、可视化、算法、高性能计算和许多应用领域的大量技术。

31.有效性、可伸缩性、性能、优化以及实时运行能力是驱动许多数据挖掘新算法开发的关键标准。

32.给定基本防踢,方体的物化有三种选择:

(1)不物化(2)完全物化(3)部分物化

33.数据仓库提供联机分析处理(OLAP)工具,用于各种粒度的多维数据的交互分析,有利于有效的数据泛化和数据挖掘。OLAP工具通常使用数据立方体和多维数据模型,对汇总数据提供灵活的访问。

34.大规模数据集下的一些重要的特征抽取类型,它们包括以下两种

(1)频繁项集(2)相似项.

35.序列是事件的有序列表。根据事

36.序列分类方法可以分成三类:(1)基于特征的分类,它们把序列转换成特征向量,然后使用传统的分类方法;(2)基于序列距离的分类,其中度量序列之间相似性的距离函数决定分类的质量(3)基于模型的分类。

37.可视化数据挖掘包括数据可视化、数据挖掘结果可视化、数据挖掘过程可视化和交互的可视数据挖掘。

Sub消息框弹出()MsgBox"学习VBA"MsgBox12345MsgBoxprompt:="学习VBA",Buttons:=vbYesNo,_Title:="数据分析"MsgBox"学习VBA",vbYesNo,"数据分析"MsgBox56*2EndSub

Sub消息框弹出()Constpi=3.1415'DimaAsIntegera=200Debug.Printpi*a

EndSub

Sub打开工作薄()DimwkbAsWorkbookSetwkb=Workbooks.Open("C:\Users\lx\Desktop\新建MicrosoftExcel工作表.xlsm")EndSub

Subrange引用区域且有变量()Dimii=1Range("a1:c"&i).Select'引用单元格是区域且有变量Cells(i,"c").Select'引用的是单个单元格且有变量[a1:a10].Select'引用的是区域或单元格且无变量EndSub

2017年2月14日

表1、员工表employee的结构:

属性含义

属性名

employeeno

char(8)

employeename

varchar(10)

sex

char(1)

出生日期

birthday

datetime

住址

telephone

varchar(20)

雇佣日期

department

varchar(30)

职务

headship

salary

decimal(8,2)

2、客户表customer:

客户号

customerNo

char(9)

客户名称

customerName

varchar(40)

客户住址

邮政编码

zip

char(6)

3、商品基本信息表product:

商品编号

productNo

商品名称

productName

商品类型

productClass

商品定价

productProce

4、订单主表OrderMaster:

订单编号

orderNo

char(12)

employeeNo

订单日期

orderDate

订单金额

orderSum

发票号码

invoiceNo

5、订单明细表OrderDetail:

销售数量

quantity

int

成交单价

price

一、单表查询

(1)查询全部职工的基本信息

(2)查询所有职工的部门、职工号、姓名和薪水

(3)查询全体职工的姓名、年龄、所属部门,并用汉语显示表头信息

(4)查询1973年出生且为职员的员工信息

(5)查询业务科或财务科的职工姓名、性别和所在部门,仅显示前面5位职工

(6)查询薪水为2000或4000的职工编号、姓名、所在部门和薪水

(7)查询薪水在3000~4000的职工姓名和薪水

(8)查询薪水不在3000~4000的职工姓名和薪水

(9)查询所有姓张的职工姓名、所属部门和性别

(10)查询所有姓张且全名为三个汉字的职工姓名

(11)查询既不在业务科也不在财务科的职工姓名、性别和所在部门

(13)查询6月出生的员工编码、姓名、出生日期,并按出生日期的降序输出

(14)查询职工工资最高的前10%的职工编号、职工姓名和工资

(15)查询每个业务员的订单数量

(16)统计在业务科工作且在1973年或1967年出生的员工人数和平均工资

(17)统计每种商品的销售数量和金额,并按销售金额的升序排序输出

(18)查询订单中至少包含3种(含3种)以上商品的订单编号及订购次数,且订购的商品数量在3件(含3件)以上。

二、表链接

(1)查询住址在上海的员工所做的订单,结果输出员工编号、姓名、订单编号、客户编号和订单日期,并按客户编号排序输出。

(2)查找订购了“32MDRAM”的商品的客户编号、客户名称、订单编号、订货数量和订货金额,并按客户编号排序输出。

(3)查询与“张晓梅”在同一部门工作的员工姓名、所属部门、性别和出生日期,并按所属部门排序输出

(4)查询1973年出生的员工所订购产品的订单,输出结果位员工编号、姓名、所属部门、订单编号、客户名称、订单日期,按员工编号排序输出。

(5)统计订单中每个商品具有销售数量大于4的订单的订单个数,要求显示商品编号、商品名称、订单数

(6)查询每个客户订购商品的具体订单信息,输出结果为客户编号、客户名称、商品编号、商品名称、数量、单价和金额

(7)查询“52倍速光驱”的销售情况,要求显示相应的销售员的姓名、性别、销售日期、销售数量和金额。

三、嵌套查询

(1)查询员工“张小娟”所做的订单信息

(2)查询没有订购商品的且在北京地区的客户编号、客户名称和邮政编码,并按邮政编码降序排序

(3)查询订购了“32MDRAM”商品的订单编号、订货数量和订货单价

(4)查询与员工编号E2008005在同一部门的员工编号、姓名、性别、所属部门

(5)查询即订购了P20050001商品,又订购了P20070002商品的客户编号、订单编号和订单金额。

(6)查询没有订购“52倍速光驱”或“17寸显示器”的客户编号、客户名称。

(7)查找至少有2次销售记录的业务员名单和销售日期

(8)查找销售金额最大的客户名称和总订单金额

(9)查找销售总额少于5000元的销售员编号、姓名和销售额

(10)查找至少订购了3种商品的客户编号、客户名称、商品编号、商品名称、数量和金额

(11)查找同时订购了商品编号为“P20070002”和商品编号为“20070001”的商品的客户

编号、客户姓名、商品编号、商品名称和销售数量,按客户编号排序输出

四、存在量词运算

(1)查询订购了“键盘”商品的客户姓名、订货数量和订货日期

(2)查询没有订购“键盘”商品的客户名称

(3)查询至少销售了5种商品的销售员编号、姓名、商品名称、数量及相应的单价,并按销售员编号排序输出

(4)查询没有订购商品的客户编号和客户名称

(5)查询订购了所有已列商品的客户名称

(6)查询至少包含了“世界技术开发公司”所订购的商品的客户编号、客户名称、商品编号、商品名称、数量和金额。

一、单表查询1、select*fromemployee;

2、selectemployeeno,employeename,department,salaryfromemployee;

3、selectemployeenameas姓名,year(now())-year(birthday)as年龄,department所属部门fromemployee;

4、select*fromemployeewhereyear(birthday)='1973'andheadship='职员';

5、selectemployeename,sex,departmentfromemployeewheredepartmentregexp'财务科|业务科'limit0,5;

6、selectemployeeno,employeename,department,salaryfromemployeewheresalary='2000'orsalary='4000';

7、selectemployeename,salaryfromemployeewheresalarybetween2000and4000;8、selectemployeename,salaryfromemployeewheresalarynotbetween2000and4000;

9、selectemployeename,department,sexfromemployeewhereemployeenamelike'张%';

10、selectemployeenamefromemployeewhereemployeenamelike'张__';

如果上个不准用这个(个别电脑):selectemployeenamefromemployeewhereemployeenamelike'张%'andchar_length(employeename)=char_length('张')*3;

11、selectemployeename,sex,departmentfromemployeewheredepartmentnotregexp'财务科|业务科';

12、selectemployeeno,employeename,sex,telephone,birthday,year(now())-year(birthday)asagefromemployeewhereyear(hiredate)='1991';

13、selectemployeeno,employeename,birthdayfromemployeewheremonth(birthday)=6orderbybirthdaydesc;

14、

createprocedurepro2(inxint)begincreatetableemployee1asselect*fromemployeeorderbysalarydesc;altertableemployee1addnumintuniqueauto_increment;selectemployeeno,employeename,salary,numfromemployee1wherenum<=round((selectcount(*)fromemployee1)*x/100);droptableemployee1;end;//

15、selectemployeeno,count(distinctorderno)fromordermastergroupbyemployeeno;16、selectcount(*),avg(salary)fromemployeewhereyear(birthday)in(1973,1967)anddepartment='业务科';

17、selectorderdetail.productno,productname,quantity,quantity*priceas销售金额fromorderdetailleftjoinproductonproduct.productno=orderdetail.productnogroupbyorderdetail.productnoorderby销售金额;

18、selectproductno,group_concat(orderno)订单编号,count(distinctorderno)as订购次数fromorderdetailwhereordernoin(selectordernofromorderdetailgroupbyordernohavingcount(productno)>=3)andquantity>=3groupbyproductno;

二、链接查询1、selectemployee.employeeno,employeename,orderno,customerno,orderdatefromemployeeleftjoinordermasteronemployee.employeeno=ordermaster.employeenowhereaddressregexp'上海'orderbycustomerno;

2、方法1:selectp1.productno,productname,c1.customerno,customername,o1.orderno,quantity,quantity*priceas销售金额fromcustomerasc1,productp1,ordermastero1,orderdetailo2wherec1.customerno=o1.customernoando1.orderno=o2.ordernoandp1.productno=o2.productnoandproductname='32mdram'orderbyc1.customerno;

方法2:selectp1.productno,productname,c1.customerno,customername,o1.orderno,quantity,quantity*priceas销售金额fromcustomerasc1innerjoinordermastero1onc1.customerno=o1.customernoinnerjoinorderdetailo2ono1.orderno=o2.ordernoinnerjoinproductp1onp1.productno=o2.productnowhereproductname='32mdram'orderbyc1.customerno;

3、查询与“张晓梅”在同一部门工作的员工姓名、所属部门、性别和出生日期,并按所属部门排序输出

selectdistincte1.employeename,e1.department,e1.sex,e1.birthdayfromemployeee1innerjoinemployeee2one1.department=e2.departmentwheree2.employeename='张晓梅'orderbybirthday;

4、selecte1.employeeno,employeename,department,o1.orderno,customername,orderdatefromemployeease1,customerasc1,ordermasteraso1wheree1.employeeno=o1.employeenoandc1.customerno=o1.customernoandyear(birthday)='1973'orderbye1.employeeno;

5、selecto1.productno,productname,count(distinctorderno)as订单数fromorderdetailaso1,productasp1whereo1.productno=p1.productnoandquantity>4groupbyo1.productno;

6、selectc1.customerno,customername,p1.productno,productname,quantity,price,price*quantity金额fromcustomerc1,productp1,ordermastero1,orderdetailo2wherec1.customerno=o1.customernoandp1.productno=o2.productnoando1.orderno=o2.orderno;

7、selectemployeename,sex,orderdate,quantity,quantity*pricefromemployeee1,ordermastero1,orderdetailo2wheree1.employeeno=o1.employeenoando1.orderno=o2.ordernoando2.productno=(selectproductnofromproductwhereproductname='52倍速光驱');

三:嵌套查询1、select*fromordermasterwhereemployeeno=(selectemployeenofromemployeewhereemployeename='张晓娟');2、selectcustomerno,customername,zipfromcustomerwherecustomernonotin(selectdistinctcustomernofromordermaster)orderbyzip;

3、selectproductno,orderno,quantity,pricefromorderdetailwhereproductno=(selectproductnofromproductwhereproductname='32MDRAM');

4、selectemployeeno,employeename,sex,departmentfromemployeewheredepartment=(selectdepartmentfromemployeewhereemployeeno='E2008005');5、selectcustomerno,orderno,ordersumfromordermasterwherecustomernoin(selectcustomernofromordermasterwhereordernoin(selectordernofromorderdetailwhereproductno='P20050001'))andcustomernoin(selectcustomernofromordermasterwhereordernoin(selectordernofromorderdetailwhereproductno='P20070002'));

6、selectcustomerno,customernamefromcustomerwherecustomernonotin(selectcustomernofromordermasterwhereordernoin(selectordernofromorderdetailwhereproductnoin(selectproductnofromproductwhereproductnamein('52倍速光驱','17寸显示器'))));

7、selectemployeeno,orderno,orderdatefromordermasterwhereemployeenoin(selectemployeenofromordermastergroupbyemployeenohavingcount(orderno)>=2);8、selectf1.customerno,c1.customername,max(销售额)as总订单金额from(selectcustomerno,sum(ordersum)as销售额fromordermastergroupbycustomerno)asf1innerjoincustomerasc1onf1.customerno=c1.customerno;9、selectf1.employeeno,employeename,销售额from(selectemployeeno,sum(ordersum)as销售额fromordermastergroupbyemployeenohaving销售额<5000)asf1innerjoinemployeeonf1.employeeno=employee.employeeno;

3、select*from(selecte1.employeeno,employeename,productname,quantity,pricefromemployeee1,productp1,orderdetailo2,ordermastero1whereexists(selectemployeenofromordermasteror1,orderdetailo2whereor1.orderno=o2.ordernogroupbyor1.employeenohavingcount(productno)>=5andemployeeno=e1.employeeno)ande1.employeeno=o1.employeenoandp1.productno=o2.productnoando1.orderno=o2.orderno)asf1orderbyemployeeno;

4、selectcustomerno,customernamefromcustomerwherenotexists(selectcustomernofromordermasterwherecustomerno=customer.customerno);

5、selectcustomernamefromcustomerwhereexists(selectcustomerno,count(distinctproductno)fromordermastero1,orderdetailo2whereo1.orderno=o2.ordernogroupbycustomernohavingcount(distinctproductno)=(selectcount(distinctproductno)fromproduct))andcustomerno=customer.customerno;

6、例1:查询“世界技术开发公司”所订购的商品的客户编号、客户名称、商品编号、商品名称、数量和金额。selecto1.customerNo,customerName,o2.productNo,p1.productName,o2.quantity,price*quantityfromcustomerc1,ordermastero1,orderdetailo2,productp1whereo1.customerno=c1.customernoando2.orderno=o1.ordernoandp1.productNo=o2.productNoANDexists(selectdistinctproductnofromordermastero1innerjoinorderdetailo2ono1.orderno=o2.orderNowhereexists(selectcustomernofromcustomerwherecustomername='世界技术开发公司'ANDcustomerno=o1.customerNo)andproductno=o2.productno);

例2:查询至少包含了“世界技术开发公司”所订购的商品的客户所订购商品的客户编号、客户名称、商品编号、商品名称、数量和金额。

selecto1.customerNo,customerName,o2.productNo,p1.productName,o2.quantity,price*quantityfromcustomerc1,ordermastero1,orderdetailo2,productp1whereo1.customerno=c1.customernoando2.orderno=o1.ordernoandp1.productNo=o2.productNoANDexists(selectdistinctproductnofromordermastero1innerjoinorderdetailo2ono1.orderno=o2.orderNowhereexists(selectcustomernofromcustomerwherecustomername='世界技术开发公司'ANDcustomerno=o1.customerNo)andproductno=o2.productno)groupbycustomerNohavingcount(*)>=(selectcount(distinctproductno)fromordermastero1innerjoinorderdetailo2ono1.orderno=o2.orderNowhereexists(selectcustomernofromcustomerwherecustomername='世界技术开发公司'ANDcustomerno=o1.customerNo));

1.代码编写规则

'1.VBE常见的设置'A.工具选项设置'B.注释'C.代码的运行'D.代码帮助(F1)'2.代码的编写规则'A.子过程'B.函数过程'3.代码换行(空格+下划线+换行)

Subaa()MsgBoxprompt:="学习VBA",Buttons:=vbYesNo+vbInformation,Title:="vba"MsgBox56*9MsgBox_"学习VBA"EndSub

2.工作薄

Sub当前与活动工作薄区别实例()MsgBoxThisWorkbook.Name&"--------"&ActiveWorkbook.NameEndSub

3.工作表示表的b表示方法

'在workbook对象中,有一个SHEETS集合,其成员是worksheet对象或chart对象。'worksheets仅指的是工作表,而sheets包含图表,工作表,宏表等等'VBA中,经常在工作表之间转换或者对不同工作表中的单元格区域进行操作.'通常有下面几种方法:Sub直接使用工作表名称法()MsgBoxWorksheets("我的工作表").NameMsgBoxSheets("我的图表").NameEndSub

Sub索引号表示法()MsgBoxWorksheets(1).NameEndSub

Sub工作表代码索引号表示法()MsgBoxSheets(1).NameEndSub

Sub直接取工作代码法()MsgBoxSheet1.NameEndSub

Sub活动工作表()MsgBoxActiveSheet.NameEndSub

'注意:当工作簿包括工作表、宏表、图表等时,'使用索引号引用工作表如Sheets(1)与'WorkSheets(1)引用的可能不是同一个表。

Subworksheetss()MsgBoxWorksheets(1).NameMsgBoxSheets(1).NameEndSub

4.

SubBeee()Cells(2,2).SelectRange("b2").Select[B2].Select

SubF6()Range("F6,F6").Select[B2].Offset(4,4).Select[B2].Cells(5,6).SelectEndSubSubB2F6()Range(Cells(2,2),Cells(6,6)).Value=10Range("b2:f6").SelectRange("b2","f6").Select

[b2:f6].SelectRange("b2").Resize(5,6).Select[b2:f6]=1Sheet1.Range("b2:f6").CopySheet2.[a1]

Sub动态变量()Dima%,b%a=Application.CountA(Range("b:b"))b=Application.CountA(Range("2:2"))Range("f"&b+1).SelectRange(Cells(2,2),Cells(a+1,b+1)).Select[B2].Cells(a,b).Select

注意:Sub名称切记不用用B2等,这些容易与单元格计算容易混淆[B2].Cells(a,b).Select运行不了。

CountA()计算非空单元格

5.创建和删除工作表

Sub批量新建工作表()Dimi%,sthAsWorksheetFori=1To12Setsth=Sheets.Addsth.Moveafter:=Sheets(Sheets.Count)sth.Name=i&"月"NextEndSub

'删除工作表Sub删除sheet()OnErrorResumeNextApplication.DisplayAlerts=FalseDimi%Fori=1To12Sheets(i&"月").DeleteNextApplication.DisplayAlerts=TrueEndSub

'在操作EXCEL时,经常会弹出提示,如删除工作表时会提示,合并单元格时会提示,'如果在VBA中想屏它,就在开始加上Application.DisplayAlerts=False,如果需要在结尾处要恢复显示Application.DisplayAlerts=True

6.赋值和移动工作表

'表达式.Move(Before,After)'表达式.copy(Before,After)

Sub移动()Sheets(1).Move,Sheets(3)EndSub

Sub复制()Sheet1.CopySheets(Sheets.Count)EndSub

7.Range的用法

'----------------------------------------------------'单元格对象在VBA中一个非常基础,同时也很重要的。'它的表达方式也是非常的多样化。'----------------------------------------------------'Range对象'代表某一单元格、某一行、某一列、某一选定区域(该区域可包含一个或若干连续单元格区域),或者某一三维区域。

'Range("文本型装单元格地址")

'range的常见写法Subrng()Range("a1").Select'单元格Range("a:a").Select'列Range("1:3").Select'行Range("a1:b10").Select'相邻区域Range("a1:d7,c4:e8").Select'不相个邻区域EndSub

2017年2月15日

1.cells单元格引用法'写法:cells(行号,列号)Subcells基本写法()Cells(3,4).Select'行列号均为数字Cells(2,"c").Select'行为数字,列为列标字母Cells.Select'全选EndSub

'cells可以像range一样可以参照前面的单元格位置Sub参照写法()Range("b3:f11").Cells(2,2).SelectRange("b3:f11").Cells(6).Select'从左到右,从上到下Range("b3:f11")(6).Select'与上一句相等EndSub'注意:'1.cells中的数字一样支持正数,负数,0值,小数(四舍六入五单双)'2.cells不能像range一样可以引用一个区域,只能引用一个单元格

'cells还可以嵌套在range中Sub嵌套()Range(Range("b1"),Range("f11")).Select'这种嵌套方法写变量比较麻烦Range(Cells(3,2),Cells(11,6)).Select'这种嵌套方法写变量比较方便EndSub

Sub动态引用行列区域()Dima%,b%a=Application.CountA(Range("a:a"))b=Application.CountA(Range("1:1"))Range(Cells(1,1),Cells(a,b)).SelectEndSub

2.单元格简写

'除了前面讲的range\cells单元格区域的表示方法还,还是一种简单的写法'写法:[单元格地址]'注意:中括号中的单元格地址并不需要双引号("")Sub单元格简写()[a3].Select'单元格引用[b2:c6].Select'单元格区域引用[a3,b2:c6,b8:d12].Select'多区域引用[a:a].Select'整列引用[1:1].Select'整行引用EndSub

'单元格简写的也支持引用子集Sub子集引用()[b2:c6].Item(3).SelectRange("b2:c6")(3).Select[b2:c6].Cells(4).SelectEndSub

Sub动态区域的引用()a=Application.CountA([a:a])b=Application.CountA([1:1])Range(Range("a1"),Range(Chr(64+b)&a)).Select'利用chr函数,让字母形式的列号也支持变量EndSub

Subchr函数字符循环()Fori=1To65535Cells(i,1)=iCells(i,2)=Chr(i)NextEndSub

3.三种单元格引用小结

Subrange引用区域且有变量()Dimii=1Range("a1:c"&i).Select'引用单元格是区域且有变量Cells(i,"c").Select'引用的是单个单元格且有变量[a1:19].Select'引用的是区域或单元格且无变量EndSub

4.行列引用

'行列引用Sub列引用()Columns(1).SelectColumns("b").SelectColumns("c:e").SelectEndSub

Sub行引用()Rows(1).SelectRows("2").SelectRows("3:4").SelectEndSub

Subrange行列表式法()Range("1:1").SelectRange("2:4").SelectRange("a:a").SelectRange("b:d").SelectEndSubSub简写法()[a:a].Select[b:d].Select[1:1].Select[2:4].SelectEndSub

Sub全选()Rows.Select'选择所有行Columns.Select'选择所有列Cells.Select'选择所单元格i=Rows.Countj=Columns.Countk=Cells.CountEndSubSub动态引用使用区域()a=Application.CountA(Columns(1))b=Application.CountA(Rows(1))Range("a1",Cells(a,b)).SelectEndSub

5.

6.Range.Row与Range.Column属性

'-------------------------------------------------'Range.Row属性'返回区域中第一个子区域的第一行的行号

'Range.Column属性'返回指定区域中第一块中的第一列的列号'-------------------------------------------------

Subtest()i=Range("a3:b9").Range("a5").Rowj=Range("a3:b9").Rowi=Range("b3:d9").Range("a5").Columnj=Range("b3:d9").ColumnEndSub

Subrow应用()ForEachrwInRows("1:13")Ifrw.RowMod2=0Thenrw.RowHeight=5EndIfNextrwEndSub

2017年2月16日

1.属性

'VBA属性:指对象所具有的特性'人的属性:姓名,年龄,身份证号,住址….

Sub属性()Debug.PrintSheet1.NameDebug.PrintSheet1.Range("a1").ValueEndSub

'VBA对象属性的赋值

Sub属性赋值()Sheet2.Name="改变自己"Sheet2.Range("a1")="学习VBA"EndSub

Sub常见属性()MsgBoxApplication.NameMsgBoxThisWorkbook.PathMsgBoxWorksheets(1).NameMsgBoxActiveCell.HeightMsgBoxActiveCell.ValueEndSub

2.活动单元格

'活动单元格:activecell,工作表中活动单元格只有一个Subactivecells()a=ActiveCell.Address'取得活动单元格地址Cells(2,3).Activate'激活指定单元格EndSub

'selection光标所选区域Sub光标所选区域()Selection=2EndSub'Range.CurrentRegion属性'返回一个Range对象,该对象表示当前区域。Sub当前区域()[a1].CurrentRegion.Select[f8].CurrentRegion.SelectEndSub

'usedrange与currentregion'如果表中只有一个区域,两者最后的结果是一样的'只是表达方式不一样Subu与c()Sheet3.UsedRange.Select[a1].CurrentRegion.SelectEndSub

Subcurrentregion应用()Rows(8).Cleara=[b2].CurrentRegion.Addressb=[b5].CurrentRegion.Addressc=[b2].CurrentRegion.Count+1Setc=Range("b8",Cells(8,c))c.FormulaArray="="&a&"+"&bEndSub

3.Range.offset属性

'Range.Offset属性'返回Range对象,它代表位于指定单元格区域的一定的偏移量位置上的区域。'表达式.Offset(偏移行,偏移列)'表达式一个代表Range对象的变量。'偏移行列的数字可以是:正数,负数,零值

Subtest()[a1].Offset(1,2).Select'行列都偏移[a1].Offset(2).Select'只偏移行[a1].Offset(,2).Select'只偏移列

'如果offset前面的range对象是一个区域,则偏移后也结果尺寸不变[a1:d1].Offset(1,2).Select[a1:d1].Offset(2).Select[a1:d1].Offset(,2).SelectEndSub

4.Range.Resize属性

'Range.Resize属性'调整指定区域的大小。返回Range对象,该对象代表调整后的区域。'语法'表达式.Resize(行数,列数)'表达式一个返回Range对象的表达式。Subtest()[a1].Resize(2,3).Select[a1].Resize(2).Select[a1].Resize(,3).SelectEndSub

Sub保存()Dimi%,j%,k%i=[a1].CurrentRegion.Rows.Count-1j=[a1].CurrentRegion.Columns.Countk=Application.CountA(Sheet2.Columns(1))[a2].Resize(i,j).CopySheet2.[a1].Offset(k)EndSub

5.方向键(Range.End)

'===================================================================================='1.从录制一个宏开始。操作:(ctrl+向上键、ctrl+向下键、ctrl+向左键、ctrl+向右键)'2.看代码

'Range.End属性'返回一个Range对象,该对象代表包含源区域的区域尾端的单元格。'等同于按键(End+向上键、End+向下键、End+向左键、End+向右键)

'语法'表达式.End(Direction)'表达式一个代表Range对象的变量。'方向写法值'向上xlUp-4162'向下xlDown-4121'向左xlToLeft-4159'向右xlToRight-4161'========================================================================================'←为1,→为2,↑为3,↓为4

Subtest()i=Cells(Rows.Count,3).End(xlUp).Rowj=Cells(Rows.Count,3).End(xlUp).AddressRange("a1",j).SelectRange("a1",Cells(i,3)).SelectRange("a1:c"&i).SelectRange("a1","c"&i).SelectEndSub

6.单元格的值

'单元格的值表示方法Sub单元格值表示()a=[a1].Value'实际是什么,就是什么b=[a1].Text'看到是什么,就是什么c=[a1]EndSub

'注意:一个单元格可以省略value,多单元格区域不能省略Sub多区域赋值()Range("e1:e4")=Range("d1:d4").ValueEndSub

'单元格地址与引用Sub地址与引用()Setrng=[b2:f2][a9]=rng.Address(1,1)'绝对引用[b9]=rng.Address(0,0)'相对引用[c9]=rng.Address(1,0)'混合引用[d9]=rng.Address(0,1)'混合引用EndSub'总结:1代表固定,0代表不固定,默认是绝对引用

Sub地址引用实例()'将表三成绩中为空的单元格标为未考DimrngAsRange,rn$OnErrorResumeNextForEachrngInSheet3.Range("b2:d10")Ifrng=""Thenrn=rn&rng.Address&","NextRange(Left(rn,Len(rn)-1))="未考"EndSub

'思考题:用上题的思路,将成绩中的"未考"去掉为空

注:""与“”的区别

7.方法

'方法:实际上就是对对象的操作,它是一种动作,一种行为。

Sub选择方法()Range("a1:a10").Select'注:如果单元格区域前没有写工作表名,则默认为活动工作表EndSub

Sub复制方法()Sheet1.Range("a1:a10")=1'将1写入表一的a1:a10区域Sheet1.Range("a1:a10").CopySheet2.Range("a1")'将表一的a1:a10区域的值复制到表2的a1EndSub

Sub删除方法()Sheets(3).DeleteEndSub

8.触发事件

PrivateSubWorkbook_Activate()

PrivateSubWorkbook_NewSheet(ByValShAsObject)MsgBox"新建工作表"EndSub

PrivateSubWorkbook_Open()MsgBox"欢迎"EndSub

PrivateSubWorkbook_SheetChange(ByValShAsObject,ByValTargetAsRange)

注:名称也就是触发事件,触发事件就是vba自带的

9.动态选单元格

Sub实例1动态选单元格或区域()Dimi%i=Application.CountA(Range("c:c"))'找到c列中已使用的最后一个单元格位置Range("c"&i).Select'选择C列最后一格Range("a1","c"&i).Select'选择A1到C列的最后一格(方法一)Range("a1:c"&i).Select'选择A1到C列的最后一格(方法二)'小结:动态单元格区域的定位,可以应用到单据的保存等实际工作中j=Application.ActiveSheet.Name'Application对象是Excel对象模型中最高层级的对象,代表Excel应用程序自身,也包含组成工作簿的许多部分,包括工作簿、工作表、单元格集合以及它们包含的数据EndSub

'除了上一课节讲的range基本表示方法外,还有更多的变化写法

'1.range("地址区域").range("地址区域")Sub序号表示法()Range("b2:d4").Range("b2").Select'相对引用的写法'参照前一个range的左上单元格EndSub

'2.range地址区域中支持变量Subrange的变量支持()Dima%a=3Range("a"&a).SelectRange("c3:e5")(2).SelectEndSub

10.读出声音

Sub读出声音()Application.Speech.SpeakNow[a2:b5].Speak,TrueEndSub

11.常量与变量

'1.常量:常量是定义了之后就不做变化了。'常量定义格式:Const常量名=常量表达式Sub常量()Constpi=3.145926EndSub

'2.变量:在定义之后还能再次赋值'变量定义格式:Dim变量As变量类型Sub变量()DimaAsIntegera=100EndSub

'3.常量变量应用Sub应用()Constpi=3.1415926DimaAsIntegera=200Debug.Printpi*aEndSub

'4.变量名的命名规则'以字母开头'不能用保留字'不超过255个字符。'同一范围内必须是唯一

12.数据类型

13.IF条件判断

'VBA中的IF条件判断语句,就像函数中的IF一样'IF可单条件,也可多条件。

SubIF条件判断之单条件1()Dima%,b%a=2b=2Ifa=bThenMsgBox"相等"EndSub

SubIF条件判断之单条件2()Dima%,b%a=2b=2Ifa=bThenMsgBox"相等"EndIfEndSub

SubIF条件判断之单条件3()Dima%,b%a=2b=2Ifa=bThenMsgBox"相等"ElseMsgBox"不相等"EndIfEndSub'Goto就是去到哪儿的意思。Goto语句是将程序转到指定的标签的语句位置,然后继续往下执行Subgoto语句()Dima%,b%a=3b=2Ifa=bThenMsgBox"相等"ElseGoToxy'为goto语句设置的标签,必须以英文状态下的冒号结尾EndIfxy:MsgBox"不相等"EndSubSubIF条件判断之多条件等级划分()IfSheet1.Range("b1")>=90ThenSheet1.Range("b2")="优秀"ElseIfSheet1.Range("b1")>=80ThenSheet1.Range("b2")="良好"ElseIfSheet1.Range("b1")>=60ThenSheet1.Range("b2")="中等"ElseSheet1.Range("b2")="较差"EndIfEndSub

'VBA中的IIF函数与工作表函数(IF)的语法结一致SubIIF函数应用()Cells(2,3)=IIf(Cells(1,2)>80,"优秀","不优秀")EndSub

SubIF条件判断之多条件等级划分11()IfSheet1.Range("b1")<60ThenSheet1.Range("b2")="较差"ElseIfSheet1.Range("b1")<80ThenSheet1.Range("b2")="中等"ElseIfSheet1.Range("b1")<90ThenSheet1.Range("b2")="良好"ElseSheet1.Range("b2")="优秀"EndIfEndSubSubIF条件判断之多条件等级划分1()IfSheet1.Range("b1")>100ThenSheet1.Range("b2")="溢出"ElseIfSheet1.Range("b1")>=90ThenSheet1.Range("b2")="优秀"ElseIfSheet1.Range("b1")>=80ThenSheet1.Range("b2")="良好"ElseIfSheet1.Range("b1")>=60ThenSheet1.Range("b2")="中等"ElseSheet1.Range("b2")="较差"EndIfEndSub

SubIF条件判断之多条件等级划分2()IfRange("b1")<60ThenRange("b2")="较差"ElseIfRange("b1")>=60AndRange("b1")<80ThenRange("b2")="中等"ElseIfSheet1.Range("b1")>=80AndRange("b1")<90ThenRange("b2")="良好"ElseIfSheet1.Range("b1")>=90AndRange("b1")<=100ThenRange("b2")="优秀"ElseRange("b2")="溢出"EndIfEndSub

14.selectcase

'selectcase语句:根据表达式的值来决定执行几组语句中的其中之一。'vbaif语句为判断语句。根据条件的值,可使用If...Then...Else语句运行指定的语句或一个语句块。If...Then...Else语句可根据需要嵌套多级。''但是,为了代码的可读性,建议使用其余的语句,比如SelectCase语句而不使用多层嵌套的vba中的If...Then...Else语句。

Subselect单条件判断()i=2SelectCaseiCaseIs>0'Is是关键字MsgBox"正数"CaseElseMsgBox"负数"EndSelectEndSub

Subselect多条件判断()SelectCaseSheet1.[b1].ValueCase90To100Sheet1.[b2]="优秀"Case80To89Sheet1.[b2]="良好"Case60To79Sheet1.[b2]="中等"Case0To59Sheet1.[b2]="较差"CaseElseSheet1.[b2]="溢出"EndSelectEndSub

15.foreach...each

'当需要处理集合成员时,一般会用foreach..next,实际上就是处理对象

Subforeachnext循环1()DimrngAsRangeForEachrngInSheet1.Range("a2:a10")'取a2:a10中的每个单元格Ifrng="A1"Thenrng.Interior.ColorIndex=3NextEndSubSubfor循环()Dimi%Fori=2To10IfCells(i,1)="A1"ThenCells(i,1).Interior.ColorIndex=3EndIfNextEndSub

Subforeachnext循环2()DimwshAsWorksheet,nAsByte,mAsStringForEachwshInWorksheets'取当前工作表集合中的每个成员n=n+1Sheet1.Cells(n,3)=wsh.NameNextEndSub

16.fornext循环

'FOR...NEXT也是循环语句,fornext有一个内置计数器Subfornext循环1()Dimi%,j%Fori=1To100Step2j=j+iNextMsgBoxjEndSub

Subfornext循环2()Dimi!,j!Fori=100To1Step-2j=j+iNextMsgBoxjEndSub

Subfornext循环()Dimrng!Forrng=2To16Sheet1.Cells(rng,4)=Sheet1.Cells(rng,2)*Sheet1.Cells(rng,3)NextEndSub

'可以将一个For...Next循环放置在另一个For...Next循环中,组成嵌套循环。'ForI=1To10'ForJ=1To10'ForK=1To10'...'NextK'NextJ'NextI

Sub理解计数变量的运行()

Fori=1To2Forj=1To3k="外层的第"&i&"次的,内层的第"&j&"次"NextjNextiEndSub

17.do...loop

'----------------------------------------------------------

'do...loop循环语句,直到满足某个条件

Subtest()Dima%Doa=a+1Ifa>10ThenMsgBoxa&"终于大于10"ExitDoEndIfLoopEndSub

Sub基本示例()Dimrs%rs=1Dors=rs+1Ifrs>10ThenExitSubElseIfCells(rs,2)>=90ThenCells(rs,3)="√"EndIfLoopEndSub

18.whileuntil与Do的使用

'---------------------------------------------------------------'while与until不但可以放在DO后面,也可以放在LOOP后面'事实上有时在循环的最后一行进行判断,更具有意义'---------------------------------------------------------------Subdoloop的前面判断循环()Dimpss$DoUntilpss="123"'until放在前面需要做两次判断pss=InputBox("请输入密码")LoopEndSub

Subdoloop的最后判断循环()Dimpss$Dopss=InputBox("请输入密码")LoopUntilpss="123"EndSub

'如果没有判断正确,永远无法退出循环'如果三次没有正确录入,就退出循环Subdoloop的最后判断循环2()Dimpss$,i%Doi=i+1Ifi>3ThenExitDopss=InputBox("请输入密码,第"&i&"次输入")LoopUntilpss="123"EndSub

'用Do…Loop循环要注意的几点:'1.While与Until是放在Do后面还是Loop后面,取决于是先判断再循环,还是先循环再判断前者则在Do后面。,后者则在Loop后面。'2.可以在Do...Loop中的任何位置放置任意个数的ExitDo语句,随时跳出Do...Loop循环。'3.Do...Loop+If...Then+ExitDo通常结合使用.'4.如果ExitDo使用在嵌套的Do...Loop语句中,则ExitDo会将控制权转移到ExitDo所在位置的外层循环。

2017年2月17日

1.OTS构建在阿里云飞天分布式系统之上的NoSQL数据库服务,提供海量结构化数据的存储和实时访问。

2.数组的概念

'1.数组概念'数组就是一个列表或者一组数据表.''2.数组位置'数组存储在内存中.''3.数组特点'a.读写速度快(从内存读取数据要比从硬盘读取快)'b.无法永远保存(内存只是暂存空间)

'4.数组分类'a.一般分为:常量数组,静态数组,动态数组'b.如按维度为:1维,2维,3维......60维''

Subtest2()Dimarr1(3)Dimarr2(1To3)Dimarr3(1To3,1To2)Dimarr4(3,2)EndSub

3.多维数组

'数组最多有60维,但在excel中一般最到2维'1.excel中的一行或一列可以转换1维数组'2.excel中的多行多列可以转换成2维数组'

Subtest1()arr1=[{"A","B","C","D"}]'横向逗号arr2=Application.WorksheetFunction.Transpose([{1;2;3;4}])'竖向分号EndSub

Subtest2()arr3=[{"张",1;"王",2;"陈",3;"李",4;"林",5}]arr4=Range("i1:j5")EndSub

Subtest4()

4.数组写入数据

Sub向数组中指定的位置写入数据()Dimarr(1To9)arr(3)="我"arr(5)="是"arr(7)="谁"EndSub

Sub循环向数组中写入数据()Dimarr(1To4)ForEachRngIn[a1:a4]n=n+1arr(n)=RngNextEndSub

arr=Array(1,2,3,4)arr1=Array(Array("a","b"),Array(1,2,3))EndSub

Sub单元格区域数据批量写入数组()arr=Application.Transpose([a1:a4])'注意:当向数组中批量写入多行,结果就是二维数组arr1=Application.Transpose(Application.Transpose([a7:d7]))EndSub

5.数组取数

'怎样在数组中取数Sub取数组中指定位置的元素()arr=[a2:a5]'MsgBoxarr(2,1)'MsgBoxarr(4,1)i=UBound(arr,2)'上标j=LBound(arr,2)'下标EndSub

Sub方法1循环取数()arr=[a2:a9][b1]=arr(2,1)Fori=1To8Cells(i,3)=arr(i,1)NextEndSubSub方法2一次性取数()arr=[a2:a5]Range("d1:d"&4)=arrEndSubSub用transpose函数转置()arr=[a2:a5]arr1=Application.Transpose(arr)[a7:d7]=arr1[a8:c8]=arr1[a9:e9]=arr1'注意左右两边尺寸的对应EndSub

6.数组

Sub数组汇总()'求平均分arr=[b2:b9]ForEachnumInarrn=n+1'计数lj=lj+num'累加求和NextMsgBox"平均分为:"&lj/nEndSub

Sub动态区域数组汇总()'求平均分arr=Range([b2],Cells(Rows.Count,2).End(xlUp))ForEachnumInarrn=n+1lj=lj+numNextMsgBox"平均分为:"&lj/nEndSub

Sub动态区域数组汇总分拆()'求平均分Dimm$m=Cells(Rows.Count,2).End(xlUp).Addressarr=Range([b2],m)ForEachnumInarrn=n+1lj=lj+numNextMsgBox"平均分为:"&lj/nEndSub

7.数组中的函数

'在数组中求和,平均,最大,最小,极大,极小值等Subtest()arr=[b2:c9]MsgBoxWorksheetFunction.Sum(arr)MsgBoxWorksheetFunction.Average(arr)MsgBoxWorksheetFunction.Max(arr)MsgBoxWorksheetFunction.Min(arr)MsgBoxWorksheetFunction.Small(arr,2)MsgBoxWorksheetFunction.Large(arr,2)EndSub

Subtest2()Dimarr1(1To16)arr=[b2:c9]ForEachaInarrIfa>=80Thenn=n+1arr1(n)=aEndIfNextStopMsgBoxWorksheetFunction.Average(arr1)EndSub

Subforeach循环()DimrngAsRangeForEachrngIn[b2:c9]Ifrng>=80Thenn=n+1'计数lj=lj+rng.Value'累加求和EndIfNextMsgBoxlj/nEndSub

Subfor循环()Dima%Fora=2To9IfCells(a,2)>=80AndCells(a,3)>=80ThenCells(a,1).Interior.Color=65535EndIfNextEndSubSub数组查找期中和期末都满足大于等于80()Dimarr3arr3=[b2:c9]b=UBound(arr3)Fora=1TobIfarr3(a,1)>=80Andarr3(a,2)>=80ThenCells(a+1,1).Interior.Color=65535EndIfNextEndSub

Sub条件平均循环()DimrngAsRangeForEachrngIn[b2:c9]Ifrng>=80Thenm=m+1:n=n+rngNext[A18]=n/mEndSub

Sub条件平均数组()

arr=Range("b2",Cells(Rows.Count,3).End(xlUp))ForEachrngInarrIfrng>=80Thenm=m+1:n=n+rngNext[A19]=n/mEndSub

8.

'比比哪个程序的运行速度更快

Sub方法一()t=TimerSetRng=Cells(Rows.Count,1).End(xlUp)arr=Range([a1],Rng)ForEachaInRange([a1],Rng)Ifa>=90Thenn=n+1:Cells(n,3)=aNextMsgBoxFormat(Timer-t,"0.0000")EndSub

Sub方法二()t=TimerDimarr1(1To5000,1To1)SetRng=Cells(Rows.Count,1).End(xlUp)arr=Range([a1],Rng)'数组写入ForEachaInarrIfa>=90Thenn=n+1arr1(n,1)=a'将arr数组中的数据有条件的将数据写入arr1数组EndIfNext[d1].Resize(n)=arr1MsgBoxFormat(Timer-t,"0.0000")EndSub

Sub数组()Dimarr1(1To5000)arr=Range("a2",Cells(Rows.Count,1).End(xlUp))ForEachaInarrIfa>=90Thenm=m+1arr1(m)=aEndIfNextRange("d2").Resize(m)=Application.Transpose(arr1)'Range("d2:d"&m+1)=Application.Transpose(arr1)EndSub

9.函数

Subfunction用法()Cells(12,1)=Application.CountIf([a1:a10],">9")Cells(12,2)=Application.Count([a1:a10])EndSub

10.what-if模拟分析方法是模拟影响结果的可变因素而测算出最后的结果

2017年2月18日

3.mysql的服务器服务的启动和停止

4.mysql修改密码

一、数据库架构:

服务器->多个数据库->多张数据表(多个行和列)

二、查看当前所有存在的数据库

1、创建测试数据库test_db,createdatabase数据库名;

createdatabaseifnotexistszoo;

2、查看创建好的数据库test_db的定义showcreatedatabase数据库名;

showcreatedatabasetest;

dropdatabase数据名dropdatabasetest_db;

dropdatabaseifexistszoo;4、选择数据库:

6.规划求解

8.char定长varchar变长

10.

createdatabasetest_db;选择创建表的数据库,SQL语句如下:

usetest_db;

createtable表名(字段名数据类型字段属性,.....);

createtabletb_emp1(idint(11),namevarchar(25),depIdint(11),salaryfloat);

showtables;

查看表格的结构:describle表名desc表名

desctb_emp1;

主键:primarykey对字段具有非空和唯一的约束

createtabletb_emp2(idint(11)notnullprimarykey,namevarchar(25)notnull,deptIdint(11),salaryfloat);

createtabletb_emp3(idint(11)notnull,namevarchar(25),depIdint(11),salaryfloat,primarykey(id));

createtabletb_emp4(namevarchar(25)notnull,depIdint(11)notnull,salaryfloat,primarykey(name,depId));

createtabletb_dept1(idint(11)notnullprimarykey,namevarchar(22)notnull,locationvarchar(50));

MUL不是外键的标志,而是索引的标志。普通索引:key|index

外键:foreignkeyconstraint外键名foreignkey(字段名)references表名(字段名)foreignkey(字段名)references表名(字段名)

createtabletb_emp5(idint(11)notnullprimarykey,namevarchar(22),deptIdint(11),salaryfloat,constraintfk_edforeignkey(deptId)referencestb_dept1(id));

5、定义数据表tb_emp6,员工的姓名不能为空,SQL语句如下:+--------+-------------+------+-----+|Field|Type|Null|Key|+--------+-------------+------+-----+|id|int(11)|NO|PRI||name|varchar(25)|NO|||deptId|int(11)|YES|||salary|float|YES||+--------+-------------+------+-----+createtabletb_emp6(idint(11)notnullprimarykey,namevarchar(25)notnull,depIdint(11),salaryfloat);

6、定义数据表tb_dept2,指定部门的名称唯一,SQL语句如下:

唯一键:uniquekeycreatetabletb_dept2(idint(11)notnulluniquekey,namevarchar(22)uniquekey,locationvarchar(50));

可以最后添加唯一键:uniquekey唯一键名(唯一键)

createtabletb_dept3(idint(11)notnullprimarykey,namevarchar(22),locationvarchar(50),uniquekeyunique_key_name(name));

8、定义数据表tb_emp7,指定员工的部门编号默认为1111,SQL语句如下:+--------+-------------+------+-----+---------+-------+|Field|Type|Null|Key|Default|Extra|+--------+-------------+------+-----+---------+-------+|id|int(11)|NO|PRI|NULL|||name|varchar(25)|NO||NULL|||deptId|int(11)|YES||1111|||salary|float|YES||NULL||+--------+-------------+------+-----+---------+-------+默认值default

createtabletb_emp7(idint(11)notnullprimarykey,namevarchar(25)notnull,deptIdint(11)default1111,salaryfloat);

9、定义数据表tb_emp8,指定员工的编号自动递增,SQL语句如下:+--------+-------------+------+-----+---------+----------------+|Field|Type|Null|Key|Default|Extra|+--------+-------------+------+-----+---------+----------------+|id|int(11)|NO|PRI|NULL|auto_increment||name|varchar(25)|NO||NULL|||deptId|int(11)|YES||NULL|||salary|float|YES||NULL||+--------+-------------+------+-----+---------+----------------+

自动:auto_increment

注意:自动auto_increment只能在具有主键或唯一键的字段上添加

createtabletb_emp8(idint(11)notnullprimarykeyauto_increment,namevarchar(25)notnull,deptIdint(11),salaryfloat);

10、分别使用DESCRIBE和DESC查看表tb_dept1和表tb_emp1的表结构。查看tb_dept1表结构,SQL语句如下:

desctb_dept1;describetb_dept1;

altertabletb_deptment2renametb_dept2;

12、将数据表tb_dept1中name字段的数据类型由VARCHAR(22)修改成VARCHAR(30)。

修改属性:modify可以修改字段名后面modify不能修改主键,但是可以增加主键,不能减主键

altertabletb_dept1modifynamevarchar(30)notnull;

注意:modify重新修改的属性要全面13、将数据表tb_dept1中的location字段名称改为loc,数据类型保持不变,

修改字段名changealtertable表名change字段名新字段名数据类型字段属性

altertabletb_dept1changelocationlocvarchar(50)notnull;

14、将数据表tb_dept1中的loc字段名称改为location,同时将数据类型变为VARCHAR(60),altertabletb_dept1changeloclocationvarchar(60)notnull;

15、在数据表tb_dept1中添加一个没有完整性约束的INT类型的字段managerId(部门经理编号)

altrtable表名add字段名数据类型字段属性first|alter字段名

altertabletb_dept1addmanageridint;

altertabletb_dept1addcolumn1varchar(12)notnull;

altertabletb_dept1addcolumn2intfirst;

altertable表名drop字段名altertabletb_dept1dropcolumn2;19、将数据表tb_dept1中的column1字段插入到location字段后面,SQL语句如下:

altertabletb_dept1modifycolumn1varchar(12)notnullafterlocation;

20、删除主键;

altertabletb_emp7dropprimarykey;

21.添加主键altertabletb_emp7addprimarykey(id);

22.删除唯一键index唯一键名字altertabletb_dept2dropindexname;

23.添加唯一键altertableta_dept2adduniquekey(name);

11.数据库保存笔记

开启文件tee

最后结束文件notee;

2017年2月19日

1.方案

方案(假设分析工具):是一组命令的组成部分。预测工作表模型的输出结果。同时还可以在工作表中创建并保存不同的数值组,然后切换到任意新方案以查看不同的结果。

2.数据有效性

数据有效性:限制其数据能录入的有效范围。

数据有效性"序列":是数据有效性中非常常用和重要的功

序列:可以在单元格中自定义下拉列表的内容

insertinto表名(字段名)value(记录1),(记录2)....;

insertintoperson(id,name,age,info)value(1,'green',21,'lawyer'),(2,'suse',22,'dancer'),(3,'tom',22,'musician'),(4,'mike',20,'teacher');

insertintopersonvalue(1,'green',21,'lawyer'),(2,'suse',22,'dancer'),(3,'tom',22,'musician'),(4,'mike',20,'teacher');

insertintoperson(name,age,info)value('green',21,'lawyer'),('suse',22,'dancer'),('tom',22,'musician'),('mike',20,'teacher');

select*fromperson;

4、向表格person_old中插入数据

insertintoperson_oldvalue(11,'l',20,'student'),(12,'m',30,'police');

insertintoperson(id,name,age,info)select*fromperson_old;

注意:没有value这个单词

deletefrom表名where条件deletefrompersonwhereid>10;

createtableperson1likeperson;//表结构一样,但是表没有数据like

createtableperson2asselect*fromperson;//有数据,表结构有可能不同as

注意:like与as的区别

update表名set字段名=新数据....where条件;

updatepersonsetage=15,name='linling'whereid=11;

updatepersonsetinfo='student'whereagebetween19and22;

3,删除数据deletefromtale_name[wherecondition](condtion条件)删除数据表person中id为11的记录

deletefrompersonwhereid=11;4,在person表中,删除age值为19-22的记录

select字段名from表名where条件groupby(分组)having条件orderby(排序)limitm,nunion

表名->条件->分组->条件->字段名-union->排序->limitfrom->where->groupby->having—>union->orderby->limit

4、查询价格为10.2元的水果的名称,SQL语句如下:selectf_name,f_pricefromfruitswheref_price=10.2;

selectf_name,f_pricefromfruitswheref_name="apple";

selectf_name,f_pricefromfruitswheref_price<10;

7、s_id为101和102的记录,SQL语句如下:

select*fromfruitswheres_idin(101,102);//in(不是区间,而是集合)

8、查询所有s_id不等于101也不等于102的记录,SQL语句如下:

select*fromfruitswheres_idnotin(101,102);//notin(集合)不在集合内

select*fromfruitswheres_id<>101ands_id!=102;

不等于<>或者!=

9、查询价格在2.00元到10.20元之间的水果名称和价格,SQL语句如下:selectf_name,f_pricefromfruitswheref_pricebetween2.00and10.2;

selectf_name,f_pricefromfruitswheref_price>=2.00andf_price<=10.20;10、查询价格在2.00元到10.20元之外的水果名称和价格,SQL语句如下:

selectf_name,f_pricefromfruitswheref_pricenotbetween2.00and10.2;

createtablefruits_newasselect*fromfruits;//创建fruits_new这张表,并有值

select*fromfruitswheref_price<10unionselect*fromfruits_newwheres_idin(101,103);//union除重

mysql>select*fromfruitswheref_price<10unionallselect*fromfruits_newwheres_idin(101,103);//unionall不去重

EXISTSexists存在13、查询fruits表中是否存在s_id=107的供应商,如果存在,则查询fruits表中的记录,SQL语句如下

select*fromfruitswhereexists(select*fromfruitswheres_id=107)andf_price>10.20

15、查询fruits表中是否存在s_id=107的供应商,如果不存在则查询fruits表中的记录,SQL语句如下

select*fromfruitswherenotexists(select*fromfruitswheres_id=107)andf_price>10.20

LIMITlimit(偏移量,几行数据)18、查询数据表fruits中前5行的信息

select*fromfruitslimit0,5;select*fromfruitslimit5;

select*fromfruitslimit2,4;//从0开始偏移量

函数:不能直接在where后面用最大值:selectmax(字段名)from表名where条件最小值:selectmin(字段名)from表名where条件求和值:selectsum(字段名)from表名where条件平均值:selectavg(字段名)from表名where条件计数:selectcount(字段名)from表名where条件

GROUPBYorderby分组20、查询数据表fruits中每个供应商各自水果的平均价格

selects_id,avg(f_price)fromfruitsgroupbys_idhavingavg(f_price)>5;

like通配符:%,单个字符_

select*fromfruitswheref_namelike'b%';23、在fruits表中,查询f_name中包含字母'g’的记录,SQL语句如下:select*fromfruitswheref_namelike'%g%';

select*fromfruitswheref_namelike'b%y';25、在fruits表中,查询以字母’y’结尾,且’y’前面只有4个字母的记录,SQL语句如下:

select*fromfruitswheref_namelike'____y';

select*fromfruitswheref_nameregexp'^b';

以y为结尾

select*fromfruitswheref_nameregexp'[^a-x]';不包括xyzselect*fromfruitswheref_namenotregexp'[xyz]';

select*fromfruitswheref_nameregexp'....y';.*:*前面的字符连续出现n个,n包含0;*={0,}like中%=.*

ab*aababbabbbabbb....ba连续出现最少两次

select*fromfruitswheref_nameregexp'(ba){2,}';//ba只出现两次

select*fromfruitswheref_nameregexp'(ba){2,}'andf_namenotregexp'(ba){3,}';

mysql中的中文配置文件my.ini

配置之后,服务断开之后重启。如果还不可以,需要进行修改数据库utf8

mysql>showcreatedatabasecompany;+----------+------------------------------------------------------------------+|Database|CreateDatabase|+----------+------------------------------------------------------------------+|company|CREATEDATABASE`company`/*!40100DEFAULTCHARACTERSETutf8*/|+----------+------------------------------------------------------------------+1rowinset(0.00sec)

mysql>alterdatabasecompanydefaultcharactersetutf8;QueryOK,1rowaffected(0.04sec)

createtablesuppliers(s_idint(11)notnullprimarykeyauto_increment,s_namechar(50)notnull,s_citychar(50),s_zipchar(10),s_callchar(50)notnull);

4、向数据表suppliers中插入需要演示的数据,SQL语句如下:+------+----------------+-----------+--------+--------+|s_id|s_name|s_city|s_zip|s_call|+------+----------------+-----------+--------+--------+|101|FastFruitInc.|Tianjin|300000|48075||102|LTSupplies|Chongqing|400000|44333||103|ACME|Shanghai|200000|90046||104|FNKInc.|Zhongshan|528437|11111||105|GoodSet|Taiyuan|030000|22222||106|JustEatOurs|Beijing|010|45678||107|DKInc.|Zhengzhou|450000|33332|+------+----------------+-----------+--------+--------+insertintosuppliersvalues(101,'FastFruitInc','Tianjin','300000','48075'),(102,'LTSupplies','Chongqing','400000','44333'),(103,'ACME','Shanghai','200000','90046'),(104,'FNKInc','Zhongshan','528437','11111'),(105,'GoodSet','Taiyuan','030000','22222'),(106,'JustEatOurs','Beijing','010','45678'),(107,'DKInc','Zhengzhou','450000','33332');

连接查询:select字段名from表1inner|left|rightjoin表2on表1.字段名=表2.字段名inner|left|rightjoin表3on条件where条件;

内连接:select*fromfruitsinnerjoinsuppliersonfruits.s_id=suppliers.s_id;

左连接:select*fromfruitsleftjoinsuppliersonfruits.s_id=suppliers.s_id;

右连接:select*fromfruitsrightjoinsuppliersonfruits.s_id=suppliers.s_id;

selectf_idasfruit_id,s_id,f_nameasfruit_name,f_pricefromfruits;

selectf_id,f1.s_idasfs_id,f_name,s_namefromfruitsasf1innerjoinsuppliersass1onf1.s_id=s1.s_idwheref1.s_idin(101,103);

判断语句:case

selectf_id,s_id,f_name,f_price,casewhenf_price<5then'5元以内'whenf_pricebetween5and10then'5-10元'else'10元以上'endas价格区间fromfruits;

子查询

selects_idfromfruitswheref_id='a1';

selectf_id,s_id,f_namefromfruitswheres_id=101;selectf_id,s_id,f_namefromfruitswheres_id=(selects_idfromfruitswheref_id='a1');

selectf_id,fruits.s_idfs_id,f_name,f_price,suppliers.*fromfruitsinnerjoinsuppliersonfruits.s_id=suppliers.s_id;

selectf_id,s_id,f_namefrom(selectf_id,fruits.s_idfs_id,f_name,f_price,suppliers.*fromfruitsinnerjoinsuppliersonfruits.s_id=suppliers.s_id)asf1wheres_id=(selects_idfromfruitswheref_id='a1');

selectnum1fromtb1wherenum1>all(selectnum2fromtb2);

selectnum1fromtb1wherenum1>(selectmax(num2)fromtb2);

2017年2月20日

2.数据分析能做什么?活动复盘、项目立项、专题报告、项目优化、市场预测、改进技术、帮助研发。

3.应用实例:医疗行业、能源行业、通信行业、电商行业

(1)外部数据:社会人口数据宏观经济数据新闻国情数据市场调研数据

(2)内部数据:用户行为数据服务端日志数据CRM&交易数据

5.方法论是从宏观角度出发,从管理和业务的角度提出的分析框架,知道我们接下来具体分析的方法。方法是微观的概念,是指我们在我们在具体分析过程中使用的方法:

SWOT分析法:从优势(Strength)、劣势(Weakness)、机遇(Opportunity)、威胁(Threat)四个方面分析内外环境,适用于宏观分析。

5W2H分析法:从Why、When、Where、What、Who、How、Howmuch7个常见的维度分析问题。

PEST分析法:从政治(Politics)、经济(Economy)、社会(Society)、技术(Technology)四个方面分析内外环境,适

用于宏观分析。

6.用户购买行为分析:whywhatwhowhenwhereHow、Howmuch

13.什么时数据分析:它就是基于商业目的,有目的地进行收集、整理、加工和分析数据,提炼有价值信息的一个过程。

2017年2月21日

1.跨工作表的序列引用

2017年2月22日

1.双关键字限制

注意:A45与B45=中A与B要绝对引用,因为列号不变

2017年2月23日

1.用户行为理论:

用户使用行为是指用户为获取、使用物品或服务所采用的各种行为,一般按照以下过程:对产品有一个认知、熟悉的过程,然后试用,再决定是否继续消费使用,最后成为忠实用户。

认识->熟悉->使用->使用->忠诚

3.AARRR理论漏斗图

4.数据分析方法论

5.对比分析法:

(1)对比分析法是将两个或两个以上的数据进行比较,分析其中的差异,从而揭示这些食物所代表的发展变化情况和规律性。

6.对比分析法:

(1)指标的口径范围、计算方法计量单位一致。

(2)对比的对象要有可比性

(3)对比的指标类型必须一致

7.杜邦分析法

(1)利用各主要财务指标间的内在联系,对企业财务状态及经济效益进行综合分析评价的方法。

8.矩阵关联分析法:

9.具体分析方法:

10.数据分析报告:

(1)数据分析报告是根据数据分析原理和方法,运用数据来反映、研究和分析事物现状、问题、原因、本质和规律,并得出结论,提出解决问题的一种分析应用文体。

分析报告种类:

(1)日常数据通报:月度数据报告、日报表

(2)专题分析报告:用户流失分析、提升用户消费分析

(3)综合分析报告:企业运营报告、世界人口发展报告

数据分析报告结构:

分析背景->分析目的->分析思路->正文->结论与建议->附录

11.什么是B2C

B2C是Business-to-Customer的缩写,而其中文简称为"商对客"。"商对客"是电子商务的一种模式,也就是通常说的商业零售,直接面向消费者销售产品和服务。

12.天猫的6大优势:

13.天猫的4大特色

14.天猫的店铺类型:旗舰店、专卖店、专营店

15.

16.免费推广:

免费推广是指不花钱的情况下,对产品或店铺作出的推广行为。

免费推广:标题优化、宝贝上下架调整、产品属性的完整、主图的点击率

17.付费推广:

付费推广是指通过工具或方法,获得流量,从而提高店内的流量和销量。

付费推广:直通车、钻石展位、淘宝客

18.直通车

(1)直通车:按单次点击收费的引流工具,适合单品爆款打造。

19.钻石展位

(1)钻石展位:按千次展现收费的引流工具,适合大型活动或品牌推广。

20.淘宝客:

(1)淘宝客:按成交结果收费的引流工具,适合日常推广。

21.

22.数据分析第三方工具:江湖策,生意参谋,数据魔方

23.会员分析的目的:提高复购率、提高客单价、合理维护客户关系、恰当推广商品。

24.千牛卖家工作台是由阿里巴巴集团官方出品,由PC版本和手机版本,淘宝卖家,天猫商家均可使用。千牛工作台包含卖家工作台、消息中心、阿里旺旺、量子恒道、订单管理、商品管理等主要功能。

25.生意参谋:

26.后台导航-店铺左侧栏

28.流量的本质(个性化搜索)

2018年2月24日

1.产品分类

严格意义上来说,爆款分二种、一种是利润爆款,一种是引流爆款。利润爆款也叫小爆款,引流爆款叫大爆款,从成本上来说,引流爆款往往会利润较低!

定价策略

(1)常规款:常规款为店铺的主营产品。此类产品多以成本导向为定价方法进行销售。区别于流量款有价格优势,区别于活动款有折扣优势,区别于利润款,毛利率并不是很高。

(2)流量款:流量款多为引流产品,除有自身的产品优势外,其性价比也很占优。对于同类同质产品能在价格的引导上做出很好的示范,起到吸引店铺流量的作用。

(3)利润款:顾名思义,利润款为产品本身具有核心优势或产品类别同质同类竞争少,所以在利润的追求上会过多。

(4)活动款:活动款的定价需要留有一定的折扣空间,刺激消费者购买,往往作为促销使用。

(5)爆款:爆款的定价策略为区间浮动,根据爆款的预热期,产品价格偏低,追求性价比;到爆款的发展期,产品价格保持优势;到爆款的成熟期,价格可以略微上涨;到爆款的衰退期,低价引流为其他爆款做预热,或将爆款转为利润款,榨干该爆款的剩余价值。

(6)边缘款:此类产品销售形势较低迷,没有爆款或相对爆款的潜质,不具备其他定价策略的核心特点,往往被卖家和消费者忽视。

3.三个钻展的三个阶段

5.定向推广

(2)定向原理

6.直通车

7.

8.淘宝客

9.

如意投的特点是:系统智能精确投放流量可控渠道精确

10.CRM其实是指所有我们与客户接触点的关系管理。

客户关系管理本质:对客户进行细分根据客户价值以及特征进行差异化营销。

11.

12.Excel冻结

2017年2月25日

1.网店核心思维图

网店运营靠流量,大多数工作都是围绕流量展开,很多电商人会把流量看作店铺的生命线,但是很容易走入一味砸钱买流量的误区。流量问题应该客观的看待,流量应该围绕着我们日常运营,运营是有机会的,而流量也应该有规划,每个点击背后都是一个个活生生的顾客,不同的流量入口有着其固有的基因,每个关键词的背后也代表着一定的市场需求,本章节主要分析,如何用数据化的方式精准定位自己的目标顾客,降低引流成本,从而占领主搜阵地。

一、数据制定流量规划

我们明确做电商是为了做生意,而非做流量,不管是从长期来说,还是从短期来说,获取流量的最终目的还是为了成交,既然一切围绕生意,而生意应该有所计划的,那么对于流量我们就应该有所规划。

1、流量的需求

(1)销量的目标决定流量的数量需求

公司无论大小,都会做年度规划,哪怕没有年度规划,老板心中也有一年的计划,而年度规划中很重要的一块就是销售目标规划。

首先,我们看一下销售额公式:

销售额=流量*转化率*客单价

这样,可以得出来:

流量=销售额/(转化率*客单价)

但是,要注意几点:一、不同的流量入口,转化率及客单价会有所差异,其中活动流量所占的比重最大,可以单独考虑。二、销量目标、转化率目标、客单价目标也应该根据类目节奏和自己的综合情况进行微调。

图1全年流量需求表

当然,制定目标的过程也是需要和相应团队一起来制定的,目标的不同决定行为的不同,当然这个涉及到团队管理的内容,这里不做讨论,只是需要强调的是,既然目标制定了,我们应该让团队的工作围绕目标去展开,而流量的目标应该是负责运营推广的同事去实现。

(2)转化的需求决定流量的质量需求

做电商,不仅仅有流量的需求,流量的目的是为了转化,这里就涉及到一个流量质量的问题,即流量与店铺产品定位的匹配程度。不同的流量,在一样的产品、一样的视觉及一样的客服水平面前,也会有不同的表现,转化率、客单价、以及产品的销售结构都有所不同。

流量质量需要怎么把控呢?这里给大家介绍一个流量质量金字塔原理:流量应该是分层的,顶部的流量相对比较少,与产品定位匹配性高,转化率高,也就是我们所说的精准流量;中部的流量精准性良好,转化率一般,数量也比顶部的流量大;而最下面的流量则是属于比较宽泛的流量,不太精准,转化率比较低,同时流量也比较大。

图2流量金字塔原理

2、流量的基因

(1)顾客购物习惯的改变

(2)顾客购物路径的改变

顾客的这种消费行为改变,在网路上依然存在,淘宝平台上,通过搜索成交的比例逐年在降低,而通过主题性活动等形式成交的比例逐步上升。这说明更多的顾客喜欢在愉悦的浏览中购物。如果说搜索流量带着理性购物的基因,更多的是一种刚性的需求,而主题性活动的流量则带着感性购物的基因,更多的是一种冲动型消费。

不同的流量有着其特定的基因,哪怕就是每一个关键词背后也是蕴含着不同的消费群里,比如说,“婴儿推车欧式”代表着一种对品质的需要,“韩版童装”代表着一种对于潮流款式的追求,钻展也是如此,不同的位置,不同的定向,顾客群体都不一样,在做流量规划的同时,更应该注意流量的基因是否与产品定位相匹配。

3、流量规划表

在了解了各个入口的流量基因,熟悉各个入口的流量转化率、客单价及流量成本以后,我们可以把每年的流量目标按月来划分,这样就是每个月的流量规划表,在制定好每月流量规划表以后,需要分解实施,同时进行监控,确保最终流量目标的达成。

二、数据把控推广节奏

1、产品销售节奏。

图3类目销售节奏

图4类目销售节奏

(3)单品生命周期。涉及到单品打造的时候,还需要考虑单品的生命周期,我们可以在淘宝指数,根本本产品的主搜关键词进行查询。例:男童长袖T恤。

图5单品生命周期

在了解所经营产品的销售节奏以后,就需要针对性的进行推广投入、老顾客营销、组织促销活动,在进入快速增长的时候大量投入,而进入成熟期以后,可以根据每个波段进行阶段性投入。

2、全年促销节点

而不同的主题适合的活动也不一样,有些是可以用来塑造品牌,有些是可以进行大规模促销,促销也需要避免频率太高,不同的类目可以进行自行选择。

3、平台营销安排

每年淘内的平台也会有自己的营销节奏安排,如传统的“双十一”、“双十二”、“66大促”、“99大促”等,同时类目也会有一些日常的营销安排,不同类目会有所不同,具体可以参考类目帮派。

如果了解了平台的营销节奏,我们就可以把店内营销活动和平台的营销活动结合,灵活借力;同时我们还需要了解各活动的要求,争取能够参与进去。

4、全年营销计划表

图6全年营销节奏

三、数据提高展现量

1、排名与流量

按照PV计算,前三页占有所有PV的84%,其中第一页65%,第二页11%,第三页7%,而从点击即IPV的角度,前三页占有所有IPV的86%,其中第一页占68%,第二页占12%,第三页占6%,从成交金额来看第一页更是占了所有成交金额的88%,占成交笔数的87%。这说明了占领排名不管对于流量获取来说,还是对于最终成交来说,都显得特别重要。

图7PC来访分析

图8无线来访分析

一般情况下(具体可以用一些软件来查看类目的竞争情况),早10点的竞争较为激烈,但是早10点的流量跟一天当中下午及晚上的流量相差不大,所以安排上下架的时候也需要重点考虑。

第一步:把店内产品根据不同的类别进行分类,把被同一类关键词覆盖的产品放到同一类别里:

图9店铺产品梳理表

3、橱窗推荐优化

橱窗推荐(又名卖家热推),即每位商家根据店铺实际经营情况,将店铺内最有竞争力的宝贝通过设置成橱窗推荐的方式(在“我是卖家”—“宝贝管理”—“橱窗推荐”中设置),在淘宝搜索排序中,其他条件相同的情况下,橱窗推荐宝贝将获得优先展示机会。橱窗推荐规则仅应用在淘宝搜索排序下,不影响天猫搜索排序。

(1)集市店新橱窗获得规则

规则维度

规则内容

信用等级

星级卖家奖励10个橱窗位;

钻级卖家奖励20个橱窗位;

冠级卖家奖励30个橱窗位。

消保

缴纳消保保证金的,奖励5个橱窗位

店铺周成交额(不同类目有所差异)

周成交额是指上周的周成交额,计算周期为周四0点至周三23:59:59;

根据你的信用等级,店铺上周支付宝周成交额:达到XX金额时,奖励30个橱窗位;达到XX金额时,奖励45个橱窗位

金牌卖家

金牌卖家奖励:5个橱窗位

违规扣分

一般违规扣分(A类扣分)满12分及以上,扣除5个橱窗位;

严重违规扣分(B类扣分)满12分及以上,扣除10个橱窗位;

出售假冒商品被违规扣分(C类扣分)满24分及以上,扣除20个橱窗位。

(2)天猫店橱窗获得规则

2013年4月18日生效的《天猫橱窗推荐规则》根据天猫商家每个月(以自然月为计算单位)的销售金额,分设七个层级,每个层级有不同的橱窗推荐位数量。

月销售金额:指上个自然月成交并且已成功的交易。

月销售金额(M)

橱窗推荐位(个)

M<1.5万

1.5万=

10万=

200

30万=

300

100万=

500

300万=

1000

M>=500万

2000

(3)利用橱窗推荐提高展现量

4、关键词的匹配原则

(1)尽量的覆盖更多的搜索关键词。我们分析淘词的TOP500词就会发现,对于大多数类目来说,TOP500词都是有为数不多的字进行各种各样的排列组合,而只要标题中覆盖了消费者搜索的关键词,只要不存在分词上的问题,那么理论上都有可能被搜索到,所以我们可以在优化标题的时候考虑到尽量多的覆盖搜索关键词。

(2)利用完全匹配提高可拆分关键词的关键词匹配分。在人气排序中,关键词的匹配分是人气的一个组成部分,什么叫完全匹配,举个例子,比如在搜索“男童牛仔裤”这个关键词,这个关键词在搜索过程中会被拆成“男童牛仔裤”这样的几个词根,在童装类目中,只要包含“男童牛仔裤”这几个词根的,不管排列顺序如何,都可以被检索到,但是前后顺序一致,并紧密排列的关键词会得到最高的关键词匹配分。如果我们想提高单个的关键词展现量,可以采用完全匹配的技巧。

(3)合理利用长尾词,避开强劲竞争对手。每个关键词背后都是因为有特定的人群来搜索,其实每个关键词就对应一个市场,关键词的竞争度有强有弱,具体我们可以在数据魔方è全网关键词查询,输入宝贝的主推关键词,分析查询结果。

我们以淘宝平台上搜索量最大的连衣裙为例,可以看到下图,仔细分析,我们发现根据搜索指数排序,和当前宝贝数排序并不相同,这样我们就可以用搜索指数除以当前宝贝数,得出单个关键词的竞争激烈程度。再参照转化率可以兼顾转化效果来挑选竞争蓝海市场,我们参照直通车点击单价,可以挑选在直通车推广中相对竞争较弱的词。

我们可以看到“早秋新款套装连衣裙”、“森系连衣裙”等关键词竞争热度都小于周围的其他关键词,如果我们宝贝跟这些关键属性比较相符的话,我们可以把它们添加到我们的宝贝标题中来。

图11淘词分析

explainselectf_name,f_pricefromfruitswheres_idin(101,102)andf_price>5andf_name='apple';

(s_id=101ors_id=102)andf_price>5

describefruits;explain

7、在suppliers表中查询s_city等于“Tianjin”的供应商s_id,然后在fruits表中查询所有该供应商提供的水果的种类,SQL语句如下:

exists:

selects_id,f_namefromfruitswhereexists(selects_idfromsupplierswheres_city='Tianjin'ands_id=fruits.s_id)

连接:selectfruits.s_id,s_name,fruits.f_name,s_city,f1.f_idfromfruitsrightjoinsuppliersonfruits.s_id=suppliers.s_idwheres_city='Tianjin';

selectfruits.s_id,s_name,f_name,s_cityfromfruits,suppliers,fruitsf1wherefruits.s_id=suppliers.s_idands_city='Tianjin';

selects_id,f_namefromfruitswheres_idnotin(selects_idfromsupplierswheres_city='Tianjin');

selectf_nameasfruit_name,f_pricefruit_pricefromfruitsf1wheref_price<8;

select*fromfruitswheref_nameregexp'o|t';'[ot]'

wheref_namelike'%o%'orf_namelike'%t%';

11、在fruits表中字段名为s_id上建立外键连接到suppliers表s_id上,SQL语句为:

altertablefruitsaddconstraintfd_edforeignkey(s_id)referencessuppliers(s_id);

altertablefruitsdropforeignkeyfd_ed;

select*fromfruitswheref_price>4.5groupbyfs_id;

19、查询fruits表中有多少个供应商,SQL语句如下:

selectcount(distinctfs_id)fromfruits;

selectfs_id,max(f_price)fromfruitsgroupbyfs_id;

selectfs_id,f_name,f_pricefromfruitswhere(fs_id,f_price)in(selectfs_id,max(f_price)fromfruitsgroupbyfs_id);

21、在fruits表中添加一字段名为num的字段,数据类型为int,默认值为3;(该字段为销售量的意思)

altertablefruitsaddnumintdefault3;

22、查询fruits表中供应商总销售额前三名的信息及销售额;

selectfs_id,sum(f_price*num)fromfruitsgroupbyfs_idorderbysum(f_price*num)desclimit3;

select*,casewhenf_price<5then'低于5元'whenf_pricebetween5and10then'5-10'else'高于10元'endas单价状况fromfruits;

24、怎样查询fruits表中fs_id和f_name信息重复的记录;selectfs_id,f_name,count(fs_id)fromfruitsgroupbyfs_id,f_namehavingcount(fs_id)>1;

4.总结

主键:primarykey对字段具有非空和唯一的约束;索引非空:notnull字段中的值不能为空;唯一键:unique字段中的值不能出现重复数据;索引索引:index|key加快该字段中数据的查询外键:foreignkey让一张表中一字段的数据对另一张表中对应字段的数据取值范围进行约束,保证数据一致性;默认值:default设定默认值自增:auto_increment只能在具有主键或唯一键的字段上添加;注释:comment

altertable表名addprimarykey|unique|index|foreignkey...altertable表名dropprimarykey;altertable表名dropkey|index|foreignkey键名称;

altertable表名modify字段名数据类型notnull|default|auto_increment|comment;

altertable表名change字段名字段名数据类型notnull|default|auto_increment|comment;

altertable表名add字段名数据类型字段属性first|after字段名;altertable表名drop字段名;

员工表:员工号、员工名、部门号...部门表:部门号、部门名称....

6.

从MySQL中导出数据:

mysqldump.exe

1、将某数据库中的所有表导出来:

mysqldump-u用户名-p数据库名>路径文件名C:\Users\lx>mysqldump-uroot-pcompany>C:\aa\hongqianjin.sqlEnterpassword:******

C:\Users\lx>

注意:cmd中运行,不能语句结束之后不能用;结尾

不能再数据库中运行命令没有数据库的信息,只有表的信息

2、如何以库为单位把数据导出来;mysqldump-uroot-p-Bcompany>C:\aa\hongqianji1.sql

mysqldump-uroot-p-A>C:\aa\allhongqianjin.sql

4、如何导出特定库中特定表的数据:

mysqldump-uroot-pcompanyfruits>C:\aa\fruitshongqianjin.sql

mysql.exe

cmd:mysql-uroot-p

数据库mysql内部:sourceC:/aa/hongqianji1.sql

mysql-uroot-pcompany

sourcec:/aa/fruitshongqianjin.sql

7、只导出数据结构,不导出数据

mysqldump-uroot-p-dcompany>C:\aa\fruitshongqianjin1.sql

8、MySQL中用intooutfile导出fruits的csv或txt文件只导出数据,没有字段名SELECT*INTOOUTFILE文件路径FROM表名+Where条件

在mysql内部使用:select*intooutfile'c:/aa/fruits2.csv'fieldsterminatedby','optionallyenclosedby'"'linesterminatedby'\r\n'fromfruits;

select*intooutfile'C:/bb/fruits3.txt'fieldsterminatedby','optionallyenclosedby'"'linesterminatedby'\r\n'fromfruits;

loaddatainfile'C:/bb/fruits3.txt'intotablefruitscharactersetgbkfieldsterminatedby','optionallyenclosedby'"'escapedby'"'linesterminatedby'\r\n';

Loaddatainfile'c:/aa/fruits2.csv'intotablefruitscharactersetgbkfieldsterminatedby','optionallyenclosedby'"'escapedby'"'linesterminatedby'\r\n';

3、返回最小整数CEILING:使用CEILING函数返回最小整数,输入语句如下:

selectceiling(45.34),ceiling(-45.34);4、使用ROUND(x)函数对操作数进行四舍五入操作,输入语句如下:

selectround(45.34),round(45.56,1),round(45.56,0),round(45.56,-1);5、使用CHAR_LENGTH函数计算字符串字符个数,输入语句如下:

6、使用CONCAT函数连接字符串,输入语句如下:group_concat()

selectconcat('my','sql');

selectfs_id,group_concat(f_name)fromfruitsgroupbyfs_id;

7、使用LEFT函数返回字符串中左边的字符,输入语句如下:selectleft('football',4);

selectmid('football',4)f1,mid('football',-4)f2,mid('football',5,3)f3,mid('football',-5,3)f4;

10、使用LOCATE,POSITION,INSTR函数查找字符串中指定子字符串的开始位置,输入语如下:

selectfind_in_set('ba','ball,my,sql,ba,bae');

12、使用ifnull()函数对null空值进行判断,如果为空,输出第二个值。selectifnull(null,2),ifnull(4,2);

selectdate(now()),year(now()),month(now());

selectdate_add('2017-02-25',interval5day)f1,date_add('2017-02-25',interval5week)f2,date_add('2017-02-25',interval5month)f3;

10.影响无线搜索的十大权重

查看是否是utf8:

showvariableslike'%cha%';

12.

createtabletb_1(s_idchar(8)notnull,f_namechar(20)notnull,f_pricefloat(8,2)notnull,f_noint(4)notnull,primarykey(s_id,f_name));

insertintotb_1values('001','apple',3.5,3),('001','banana',3.5,2),('001','orange',4.5,4),('002','apple',3.3,5),('002','banana',3.8,0),('002','orange',4.7,3);

selects_id,f_name,sum(f_price*f_no)as销售额fromtb_1groupbys_id,f_namewithrollup;

存储过程:

查询fruits信息的存储过程;

select*fromfruitswherefs_id=102;

createprocedure过程名(参数)beginSQL语句;end;//

createprocedurepro1(inxint)beginselect*fromfruitswherefs_id=x;end;//

调用存储过程:

callpro1(105);

参数:in|out|inout参数名数据类型

createprocedurepro2(inpro_inint)beginselectpro_in;setpro_in=3;selectpro_in;end;//

set@x=1;select@x,@y;callpro2(@x)//13select@x//1

createprocedurepro3(outpro_inint)beginselectpro_in;setpro_in=3;selectpro_in;end;//

set@x=1;select@x,@y;callpro2(@x)//null3select@x//3

createprocedurepro4(inxint)begincasewhenx=1thenselect1;whenx=2thenselect2;elseselect3;endcase;end;//

if:createprocedurepro5(inxint)beginifx=1thenselect1;elseifx=2thenselect2;elseselect3;endif;end;//

while:1+2+3+....=5050

createprocedurepro6(outzint,inyint)begindeclareiintdefault1;declaresintdefault0;whilei<=ydosets=s+i;seti=i+1;endwhile;setz=s;end;//

callpro7(@z,50)

dropprocedurepro5;//删除存储过程

查询有哪些存储过程showprocedurestatus;

13.

二,在已经存在的表上创建索引;

altertablefruitsaddindex(f_name);

createindexif_nameonfruits(f_name);

三,删除索引

altertablefruitsdropindexf_name;

dropindexif_nameonfruits;

merge|undefined:

createviewvfruitsasselect*fromfruitsorderbyf_pricedesc;

select*fromvfruitsgroupbyfs_id;

select*fromfruitsgroupbyfs_idorderbyf_pricedesc;

temptable:

createalgorithm=temptableviewvfruits1asselect*fromfruitsorderbyf_pricedesc;

select*fromvfruits1groupbyfs_id;

select*from(select*fromfruitsorderbyf_pricedesc)asvfruitsgroupbyfs_id;

2017年2月26日

1.出库的限制

触发器:创建表格订单表ts1:+----------+----------+------+-----+---------+-------+|Field|Type|Null|Key|Default|Extra|+----------+----------+------+-----+---------+-------+|order_id|char(10)|NO|PRI|NULL|||pro_id|char(10)|NO||NULL|||num|int(10)|YES||NULL||+----------+----------+------+-----+---------+-------+createtablets1(order_idchar(10)notnullprimarykey,pro_idchar(10)notnull,numint(10));

在商品表tt1中插入数据:

delimiter//createtrigger触发器名after|beforeinsert|update|deleteon表名foreachrowbeginSQL操作语句(触发器发生之后的操作);end;//

1、客户下订单,订单表中插入数据:('1001','1112',4),创建触发器,要求商品表自动减去相应的商品库存:

delimiter//createtriggertr1afterinsertonts1foreachrowbeginupdatett1setnum=num-new.numwherepro_id=new.pro_id;end;//

showtriggers;droptrigger触发器名;

2、客户取消订单,取消订单'1001',创建触发器,要求商品表自动添加相应的商品库存:createtriggertr2afterdeleteonts1foreachrowbeginupdatett1setnum=num+old.numwherepro_id=old.pro_id;end;//

deletefromts1whereorder_id='1001';//

3、客户修改订单,将订单'1001'的数量改为8,要求商品表的库存自动进行相应的调整.

createtriggertr3afterupdateonts1foreachrowbeginupdatett1setnum=num+old.numwherepro_id=old.pro_id;updatett1setnum=new-new.numwherepro_id=new.pro_id;end;//

updatets1setnum=8whereorder_id=1001;4、客户下订单,限购要求:每种商品最多只能购买5件,创建存储过程,自动调整下单num和商品表相应的库存.

insertintots1value('1003','1112',10);//

3.数据结构表查询

mysql>showdatabases;->//+--------------------+|Database|+--------------------+|information_schema||company||mysql||performance_schema||t1||t2||test||test_db|+--------------------+8rowsinset(0.00sec)

mysql>useinformation_schema;Databasechangedmysql>showtables;+---------------------------------------+|Tables_in_information_schema|+---------------------------------------+|CHARACTER_SETS||COLLATIONS||COLLATION_CHARACTER_SET_APPLICABILITY||COLUMNS||COLUMN_PRIVILEGES||ENGINES||EVENTS||FILES||GLOBAL_STATUS||GLOBAL_VARIABLES||KEY_COLUMN_USAGE||PARAMETERS||PARTITIONS||PLUGINS||PROCESSLIST||PROFILING||REFERENTIAL_CONSTRAINTS||ROUTINES||SCHEMATA||SCHEMA_PRIVILEGES||SESSION_STATUS||SESSION_VARIABLES||STATISTICS||TABLES||TABLESPACES||TABLE_CONSTRAINTS||TABLE_PRIVILEGES||TRIGGERS||USER_PRIVILEGES||VIEWS||INNODB_BUFFER_PAGE||INNODB_TRX||INNODB_BUFFER_POOL_STATS||INNODB_LOCK_WAITS||INNODB_CMPMEM||INNODB_CMP||INNODB_LOCKS||INNODB_CMPMEM_RESET||INNODB_CMP_RESET||INNODB_BUFFER_PAGE_LRU|+---------------------------------------+40rowsinset(0.00sec)

mysql>select*fromtableswheretable_schema='company';+---------------+--------------+------------+------------+--------+---------+------------+---|TABLE_CATALOG|TABLE_SCHEMA|TABLE_NAME|TABLE_TYPE|ENGINE|VERSION|ROW_FORMAT|TA+---------------+--------------+------------+------------+--------+---------+------------+---|def|company|dept|BASETABLE|InnoDB|10|Compact||def|company|fruits|BASETABLE|InnoDB|10|Compact||def|company|offices|BASETABLE|InnoDB|10|Compact||def|company|person|BASETABLE|InnoDB|10|Compact||def|company|suppliers|BASETABLE|InnoDB|10|Compact||def|company|tb_1|BASETABLE|InnoDB|10|Compact|+---------------+--------------+------------+------------+--------+---------+------------+---6rowsinset(0.00sec)

mysql>showdatabases;+--------------------+|Database|+--------------------+|information_schema||company||mysql||performance_schema||t1||t2||test||test_db|+--------------------+8rowsinset(0.00sec)

mysql>usemysql;Databasechangedmysql>showtables;+---------------------------+|Tables_in_mysql|+---------------------------+|columns_priv||db||event||func||general_log||help_category||help_keyword||help_relation||help_topic||host||ndb_binlog_index||plugin||proc||procs_priv||proxies_priv||servers||slow_log||tables_priv||time_zone||time_zone_leap_second||time_zone_name||time_zone_transition||time_zone_transition_type||user|+---------------------------+24rowsinset(0.00sec)

4.上库存不能大于库存上限

使用mysql数据库,usemysql使用mysql中的表中的user信息,有那些用户

1、添加用户:createuser'用户名'@'服务器名'identifiedby'密码'createuser'hongqianjin1'@'localhost'identifiedby'123456';

C:\Users\lx>mysql-hlocalhost-uroot-pEnterpassword:******

C:\Users\lx>mysql-h127.0.0.1-uroot-pEnterpassword:******

C:\Users\lx>mysql-uhongqianjin1-pEnterpassword:******

查看那些用户mysql>select*fromuser;

grant权限on数据库.数据表to'用户名'@'服务器名'(identifiedby'密码');grantselectoncompany.*to'hongqianjin1'@'localhost';

grantselect,inserton*.*to'lisi'@'localhost'identifiedby'123456';

allprivileges

查看权限:showgrantsfor'hongqianjin1'@'localhost';

3、取消用户权:revoke权限on数据库.数据表from'用户名'@'服务器名';revokeselectoncompany.*from'hongqianjin'@'localhost';

4、刷新权限:

dropuser'用户名'@'服务器名';dropuser'hongqianjin'@'localhost';

6、修改密码:

updateusersetpassword=password('密码')whereuser='用户名'andhost='服务器名';

updateusersetpassword=password('123')whereuser='hongqianjin1'andhost='localhost';

password('123')中password是加密,去掉则不加密。

修改密码之后,赋予权限的人需要刷新一下权限

1、添加用户:createuser'用户名'@'服务器名'identifiedby'密码'

createmysql.user'zhangsan'@'localhost'identifiedby'12345';

grant权限on数据库.数据表to'用户名'@'服务器名'(identifiedby'密码');*.*

grantselectoncompany.*to'zhangsan'@'localhost';

grantselect,inserton*.*to'lisi'@'localhost'identifiedby'1234';

全部权限:allprivileges

查看权限:

showgrantsfor'zhangsan'@'localhost';

3、取消用户权:revoke权限on数据库.数据表from’用户名'@'服务器名';

revokeselectoncompany.*from'zhangsan'@'localhost';

5、删除用户:dropuser‘用户名'@'服务器名';

updateusersetpassword=password('123')whereuser='zhangsan';

忘记root的密码:

C:\Users\Administrator>netstopmysqlMySQL服务正在停止.MySQL服务已成功停止。

C:\Users\Administrator>mysqld-n--skip-grant-tables

打开客户端无需密码直接登陆;mysql>usemysql;Databasechangedmysql>updateusersetpassword=password('880218')->whereuser='root';QueryOK,0rowsaffected(0.05sec)Rowsmatched:1Changed:0Warnings:0

mysql>flushprivileges;QueryOK,0rowsaffected(0.09sec)

数据库:查看有哪些数据库:showdatabases;创建数据库:createdatabase数据库名;创建数据库过程:showcreatedatabase数据库名;删除数据库:dropdatabase数据库名;选择数据库:use数据库名;

数据表:查看有哪些表:showtables;创建数据表:createtable表名(字段名数据类型字段属性,....);数据类型:数值型:整型:int浮点型:float,double,decimal字段属性:主键:primarykey对字段具有非空和唯一的约束唯一键:unique非空:notnull自增:auto_increment默认值:default注释;comment外键:foreignkey普通索引:key|index数据表结构调整:altertable表名add|drop|change|rename|modify。。。查看表格结构:describe|desc表名;创建和表1结构相同的表:createtable表2like表1;把查询结果保存一张表中:createtable表2asselect*from表1where条件;

数据的更新:

插入数据:insertinto表名(字段名)values(数据1),(数据2)...;

insertinto表1(字段名)select字段名from表2where条件;

修改数据:update表名set字段名=数据where条件;删除数据:deletefrom表名where条件;

查询数据:select字段名from表名where条件(不能直接使用sum(),max(),count()等聚合函数)groupby字段名having条件orderby字段名asc|desclimitm,n

连接查询:select字段名from表1inner|left|rightjoin表2on表1.字段名=表2.字段名innerjoin表3on条件where条件;

嵌套查询:select*from(select*fromfruits)asf1wheres_idin(select*fromsuppliers);

去重:distinct合并查询结果:union(去重),unionall(不去重)存在:existswheres_idin(102,103);范围:between...and字符串匹配;(not)like通配符:%,单个字符:_正则表达式;(not)regexp....存储过程:delimiter符号createprocedure过程名(in|out|inout参数名数据类型)begindeclare变量名数据类型默认值SQL语句;end;触发器:createtrigger触发器名after|beforeinsert|update|deleteontable_nameforeachrowbeginSQL语句;end;

开始事务:starttransaction;SQL语句;rollback回滚|commit提交;

showvariableslike'%autocommit%';

setautocommit=0;

6.筛选

2017年2月日

1.

注意:如果没有~的话,则?为通配符,有~的话,号表示?号本身。

THE END
1.2025年2月26日适合求子吗2025年2月26日求子行吗求子是重要的事情,在民俗文化中,选择一个好的求子吉日,是为了能让以后有更好的生活,护佑我们有长远的发展,也是借求子的吉日祈求更多福运。接下来我们就来看看2025年2月26日适合求子吗,2025年2月26日求子行吗。 2025年2月26日是求子吉日吗 【今日公历】2025年2月26日,星期三 http://m.30tqi.com/tqsh/3361404/
2.2025年2月1日老黄历查询,2025年2月1日时辰凶吉查询月建 小时 土府 往亡 朱雀 冲煞 岁煞东 牛日冲羊 <前1月 26日 27日 28日 29日 30日 31日 1日 02日 03日 04日 05日 06日 07日 后1月 > 择吉老黄历-黄道吉日择吉-时辰吉凶 子时丑时寅时卯时辰时巳时午时未时申时酉时戌时亥时子时 时刻00:00-00:5901:00-02:5903:00-04:5905:00-06:5907:00-08https://www.zgjm.org/huangli/2025-2-1.html
3.属龙女2025年上半年桃花运势大揭秘分分合合作者:平安君 时间:2024-11-25属龙女的傲娇气质,是一般男生所征服不了的。但一旦被征服的话,属龙女就会给到对方所有的关爱和呵护。这就是属龙女对感情最为明显的特质的,2025年上半年期间,如此特别的属龙女会迎来什么样的桃花运呢?一起看看具体的运势大揭秘吧。 分分合合 2025年上半年期间,属龙女的桃花运https://mip.sjssmw.com/shengxiao/shulong/230902.html
4.正缘桃花出现时间测算免费,你了解吗?现在,你可以在各大占卜网站和神秘能量机构中找到正缘桃花出现时间测算服务。以下是一份免费正缘桃花出现时间测算表,大家可以参考一下! 生肖 正缘桃花出现时间 鼠 鼠年正月 牛 丑年二月 虎 寅年三月 兔 卯年四月 龙 辰年五月 蛇 巳年六月 马 午年七月 https://www.dubeike.com/wiki-77433.html
5.老黄历2025年2月26日黄道吉日万年历大全月恩 四相 彭祖 丙不修灶必见灾殃 百忌 寅不祭祀神鬼不尝 月相 晓 物候 雨水 二候 候雁北 公历2025年2月26日 星期三 双鱼座 乙巳年 戊寅月 丙寅日 (属虎) 26 农历 二〇二五年 正月 廿九日 财神位 喜神 西南 福神 西北 财神 西南 阴阳贵神 http://365zyg.com/lhl/2025-02-26.html
6.71年属猪的每月财运方位,十二生肖今天运势2月29家里兄弟几个都有鼻炎,是因为你们有同样的性格,遇事有同样的反应,并不是遗传。今年2月29日,上海市闵行区人民法院对此案作出判决,被告人孙某、程某犯诈骗罪,分别被判处有期徒刑十一年、十年,剥夺政治权利一年,并处罚金人民币三十万元。 咱们家的条件够好了,你们班好多同学都没有你的条件好……/h3>https://www.12ka.cc/q4383ng9.html
7.老黄历2025年2月26日黄历吉日吉时查询地母经:诗曰: 太岁乙巳年,高下禾苗翠。春夏多漂流,秋冬五谷丰。豆麦美燕齐,桑柘益吴楚。天虫筐内走,蚕娘哭叶空。丝绵不上秤,疋帛价更高。 卜曰: 蛇头值岁初,谷食盈有余。早禾莫令晚,蚕亦莫令迟。夏季麦苗秀,三冬成实肥。 二十八星宿本日吉凶:参水猿宿星:参星造作旺人家,文星照耀大光华,只因造作田https://m.xzw.com/hl/2025/02/26
8.2025年2月26日老黄历黄道吉日黄历吉日查询2024年正月十二黄道吉日吗 正月十二黄历查询 2024年正月十六黄道吉日查询 日子怎么样 2024年正月黄道吉日最好日子是哪天 2024年正月十一是黄道吉日吗 正月十一黄历查询 2024年正月是几号到几号 2024年正月时间 2024年大年初十是黄道吉日吗 了解今日时辰吉凶 2024年大年初九上班吗 初九的历史和文化背景 2024年大年初九https://m.xingzuo360.cn/laohuangli/2025-02-26/
9.免费算命,生辰八字算命,周易占卜,姓名测试打分欢迎光临卜易居免费算命大全!本站是网上算命最准的网站,主要测算项目有生辰八字算命,姓名测试,在线算命,周易算命,在线抽签,姓名算命,起名网免费测名,在线算命,老黄历查询,周易占卜,八字算命婚姻,周公解梦,万年历,周易算卦,手机号码测吉凶,姓名配对,车牌号https://www.buyiju.com/
10.2023年9月份广德市招聘信息汇总6、检验文员:1人,男女不限,25-45周岁,初中以上学历,1年以上工作年限;熟悉汽车配件产品、锻造产品,会使用基本量具,有检验经验。 7、机修工:1名,男,30-50周岁,高中以上学历,2年以上工作年限;熟练使用各种机械、气动、液压维修工具,对各类维修图纸可以识别,有2年以上设备现场维修工作经验。 8、锻造工人:若干名,https://www.guangde.gov.cn/OpennessContent/show/2930793.html
11.2023年母亲节活动策划方案(精选26篇)2023年母亲节活动策划方案2 一、活动目的 1、提高品牌知名度; 2、提高目标消费群体在酒店的购买率和消费额; 3、通过活动,增进酒店和公众的了解和沟通,制造新闻线索,扩大对外形象宣传。 二、活动时间 5月14日 三、目标群体 母亲节活动目标群体为25岁-45岁之间的时尚白领女青年和在政府机关、企业担任中高层职务的https://www.ruiwen.com/word/muqinjiehuodongchfa.html
12.1971122615点到17点四柱测算详解预测分析详批星尘算命免费算命-1971年12月26日15点到17点(更换出生时间)免费四柱生辰八字命理个性化分析,预测性格命运,绝非网上一般的免费算命程序可比,周易紫微斗数精准算命预测分析。http://mfsm.kvov.com/fx/1971112-26/mfsms-17.html
13.2023年2月26日出生的宝宝五行缺什么2023年2月26日生辰八字分析: 公历生日:2023年 2月 26日 星期日 双鱼座 (阳历) 农历生日:癸卯年 二月 初七 (阴历) 天干地支:癸卯年 甲寅月 乙卯日 五行分析:水木 木木 木木 纳音分析:金箔金 大溪水 大溪水 26日全天各时辰五行分析: 子时【00:00-00:59】:丙子-火水 http://www.8882088.com/html/650.htm
14.头条文章于田县军用通讯工程,为两个约长30米、宽20米、高约10米,用钢筋砼浇灌成整体隐蔽于地下的工事(地堡),分为1、2号工事。在沙漠芦苇荡中施工(基础大开挖等)难度相当大,非常艰苦。听老兵们说,本工程从挖基础到主体完工,步兵六师十七团3个营轮换施工,整整花了3年时间,大部分战士病倒过。 https://card.weibo.com/article/m/show/id/2309404838913675231508?id=2309404838913675231508
15.2019年2月26日是什么命五行缺什么2019年2月26日出生属什么生肖 2019年2月26日出生属生肖猪 2019年2月26日出生的人属猪,年干属土,因此2019年2月26日出生的人是土猪。 属猪人的生肖本命佛是阿弥陀佛,佩戴阿弥陀佛的吊坠能默默保佑自身有更好的运气哦。精准祥批 出生日期: 出生时辰: 性别: 男 女 立即测算 八字精批 八字终生https://m.k366.com/hl/ming_2019-2-26.html
16.10月9日Choice早班车沪深交易所:现阶段A股市场实行T+0交易的财联社:据悉,弱需求与抛货情绪下,锂盐价格下跌,外购矿锂盐厂出现成本倒挂,有锂盐厂检修停产。行业人士分析,“金九银十”的预期或难兑现,锂价依然承压。在电池厂与车企强势进入锂盐交易市场,多方因素共振之下,碳酸锂客供比例有上升趋势,下游话语权增强。 澎湃新闻:北京时间10月2日,“2023年诺贝尔生理https://b.pingan.com.cn/node-ssr/base/brop-cmp/ssr/ugc/details/002401392/?outerSource=zxpt_2310_000615&tempType=bank
17.2023年6月天象预报有趣天文奇观天象包括行星天象(合日、冲日、凌日、大距、行星最小角距地球、过远近日点、升降交点、纬度最南最北,以及行星相合、行星合恒星等),月相,月球过远近地点、月掩行星和恒星,变星,日月食,二分二至,彗星,流星雨,月闪等诸多天文事件。 2023年6月21日22时58分夏至,这天的太阳直射北回归线,之后,太阳直射地球的纬度回转https://interesting-sky.china-vo.org/2023sky-jun/