人像考勤机php数据,考勤机数据分析测试案例 - 测试人生 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

本周只是从后台来做测试。

了解了关联的几个表结构,数据流的变化。学到了一些基本的测试语句。

Update attendance_machine_data_log Set FlashTime=dbo.FROM_UNIXTIME(time_log_stamp,'%Y-%m-%d  %H:%i:%s') Where FlashTime Is Null

--日期的截取后的年月日查询

select  * from attendance_machine_data_log

where employee_id=16 and CONVERT(varchar(10),FlashTime,102)='2008-10-23'

--将一个字段的属性改变

alter table shift_time  ALTERcolumnattendance_rule_id   int  NULL

--5、创建表A、B、C

CREATE TABLE A

(id DECIMAL(9) NOT NULL,

name CHAR(10));

CREATE TABLE B

(id DECIMAL(9) NOT NULL,

hobby CHAR(10));

CREATE TABLE C

(id DECIMAL(9) NOT NULL,

name CHAR(10));

--6、增加表字段

ALTER TABLE C

add hobbya CHAR(10)

--7、修改表字段

ALTER TABLE C

ALTER COLUMN hobby CHAR(5)

--8、删除表

ALTER TABLE C

DROP COLUMN id

--9、删除表

DROP TABLE C

--10、添加主键

ALTER TABLE A

ADD PRIMARY KEY(ID)

--10、删除主键

ALTER TABLE A

DROP PRIMARY KEY(ID)

--11、创建索引

CREATE UNIQUE INDEX INDEXID ON A(ID)

--12、删除索引

DROP INDEX A.INDEXID

--13、创建视图

CREATE VIEW VIEWA

AS SELECT ID FROM A WHERE ID>100

--14、删除视图

DROP VIEW VIEWA

--1.1、查询指定列

SELECT id FROM A

--1.2、查询全部列

SELECT * FROM A

SELECT ID,NAME FROM A

--1.3、取消相同取值的行

SELECT DISTINCT ID FROM A

--1.4、比较大小

SELECT * FROM A WHERE ID>5

--1.5、多重条件查询

SELECT * FROM A WHERE ID>5 AND NAME='NANCY' OR NAME='TONY'

--1.6、确认范围查询

SELECT * FROM A WHERE ID  BETWEEN 1 AND 4

SELECT * FROM A WHERE ID  NOT BETWEEN 1 AND 4

--这与下等价

SELECT * FROM A WHERE ID>=1 AND ID<=4

SELECT * FROM A WHERE ID<1 OR ID>4

--1.7、确认集合

SELECT * FORM A WHERE ID IN  (1,2,3)

--1.8字符匹配查询

--查询Northwind数据库中orders表的ShipCountry列以B,C,D,F开始且第三个字

-- ,符为“a”的OrderlD、CustomerID和ShipCountry的信息。

SELECT ORDERID,CUSTOMERID,SHIPCOUNTRY FROM ORDERS WHERE SHIPCOUNTRY LIKE '[BCDF]%' AND SHIPCOUNTRY LIKE '__A%'

--1.9空值查询

SELECT * FROM A WHERE ID IS  NULL

--1.10常用库函数及统计汇总查询

SELECT ID,NAME FROM A

Where ID=(select max(ID) from A)

--1.11分组查询

SELECT ID FROM A GROUP BY ID HAVING ID>0

--1.12对查询结果进行排序

SELECT * FROM A ORDER BY ID,NAME DESC

--1.13数据表连接查询

----A、内联接

select A.Name,B.Hobby from A, B where A.id = B.id

select A.Name,B.Hobby from A Inner join B ON A.id = B.id

----B、左外联接

select A.Name,B.Hobby from A Left join B ON A.id = B.id

----C、右外联接

select A.Name,B.Hobby from A Right join B ON A.id = B.id

----D、此句以上右外联接结果是一样的

select A.Name,B.Hobby from B Left join A ON A.id = B.id

----E、全联接,以下两句同

select A.Name,B.Hobby from A cross join B

select A.Name,B.Hobby from A,B

--1.14使用TOP限制结果集

SELECT TOP 3 WITH TIES ID,NAME FROM A ORDER BY ID

--1.15将查询结果存入表中

SELECT * INTO #TEMP FROM A

SELECT * INTO ##TEMP1 FROM A

SELECT * INTO D FROM A

--1.16合并查询

SELECT * FROM A

UNION

SELECT * FROM B

--1.17子查询

--A、使用子查询进行比较测试

SELECT ID,NAME FROM A

WHERE NAME='NANCY'

and ID>( SELECT AVG(ID) from B)

--B、使用子查询基于集合的测试

SELECT * FROM A

WHERE ID IN

(SELECT ID FROM B)

--C、使用子查询进行存在性测试

SELECT NAME FROM A

WHERE EXISTS

(SELECT * FROM B

WHERE ID=A.ID)

--2.1插入一行新记录

INSERT INTO A(ID,NAME) VALUES(1,'TONY')

--2.2插入一行的部分数据值

INSERT INTO A(ID) VALUES(2)

--2.3插入多行记录

INSERT INTO B(ID,HOBBY) SELECT * FROM A

--2.4修改数据

UPDATE A

SET NAME='NANCY' WHERE ID=2

UPDATE A

SET NAME='A' WHERE ID IN(SELECT ID FROM B)

--2.5删除记录

DELETE A WHERE ID=2

DELETE A WHERE ID IN(SELECT ID FROM B)

---随机取出两条数据

select top 2 * from B order by newid()

---列出数据库里所有的表名

select name from sysobjects where type='U'

---列出表里所有的列

select name from syscolumns where id=object_id('B')

---初始化表,将内容清空

TRUNCATE TABLE A

--其次,大家来看一些不错的sql语句

--1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)

--法一:where 1 <>1 或用where 1=1在程序里是经常使用的,后面可根据加个多个条件也可不加,非常灵活

select * into b from a where 1 <>1

--法二:

select top 0 * into b from a

--2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用)

insert into b(a, b, c) select d,e,f from b

--3、说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用)

insert into b(a, b, c) select d,e,f from b in ‘具体数据库’ where 条件

--例子:..from b in '"&Server.MapPath(".")&"\data.mdb" &"' where..

--4、说明:两张关联表,删除主表中已经在副表中没有的信息

delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )

--5、说明:四表联查问题:

select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....

--6、说明:日程安排提前五分钟提醒

select * from 日程安排 where datediff('minute',f开始时间,getdate())>5

--7、说明:一条sql 语句搞定数据库分页

select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段

select top 10 yonghu.* from (select top 20 * from yonghu)a,yonghu where a.yhdm=yonghu.yhdm

--8、说明:前10条记录

select top 10 * FROM table1 where 范围

--9、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.)

select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)

--10、说明:包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重复行而派生出一个结果表

(select a from tableA ) except (select a from tableB) except (select a from tableC)

--11、说明:随机取出10条数据

select top 10 * from tablename order by newid()

--12、说明:随机选择记录

select newid()

--13、说明:删除重复记录

Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)

--14、说明:列出数据库里所有的表名

select name from sysobjects where type='U'

--15、说明:列出表里的所有的

select name from syscolumns where id=object_id('TableName')

select name from syscolumns where id=object_id('yonghu')

--16、说明:列示type、vender、pcs字段,以type字段排列,case可以方便地实现多重选择,类似select 中的case。

select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type

显示结果:

type vender pcs

电脑 A 1

电脑 A 1

光盘 B 2

光盘 A 2

手机 B 3

手机 C 3

--17、说明:初始化表table1

TRUNCATE TABLE table1

--18、说明:选择从10到15的记录

select top 5 * from (select top 15 * from table order by id asc) table_别名 order by id desc

--随机读取若干条记录,测试过

--Access语法:SELECT top 10 * From 表名 ORDER BY Rnd(id)

--Sql server:select top n * from 表名 order by newid()

--mysql:select * From 表名 Order By rand() Limit n

--使用SQL语句 用...代替过长的字符串显示

--语法:

--SQL数据库:

select case when len(field)>10 then left(field,10)+'...' else field end as news_name,news_id from tablename

---=Access数据库:

SELECT iif(len(field)>2,left(field,2)+'...',field) FROM tablename;

--19、查询时字符串连接(用+号)

select id+'['+name+']' YH from a

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值