sq

阅读 / 问答 / 标签

在SQL Server 中,WAITFOR 语句中的DELAY参数是指什么

delay是指需要等待延迟的时间如waitfor delay "02:00:00" 表时等待2小时后再执行后面的代码。

sql server waitfor函数怎么用

SQL有定时执行的语句 WaitFor,可以写到一个存储过程中再执行一次语法:WaitFor{Delay "time"|Time "time}Delay后面的时间为延迟多少时间执行Time后面的时间为指定何时执行,格式为"HH:MM:SS",不支持日期例:------指定10:00执行Beginwaitfor time "10:00"select * from tablenameend-----指定等待1小时后执行beginwaitfor delay "1:00"select * from tablenameenddbms_lock.sleep(n)暂停n秒后执行一般这个包都会创建,但是权限不是默认就赋予的;还有一个重要的步骤是要给用户all on dbms_lock 权限。。在DBA身分下grant execute on dbms_lock to USERNAME;放到存贮过程里1.WAITFOR--WAITFOR--例 等待1 小时2 分零3 秒后才执行SELECT 语句waitfor delay "01:02:03"select * from employee--例 等到晚上11 点零8 分后才执行SELECT 语句waitfor time "23:08:00"select * from employee

在SQL Server 中,WAITFOR 语句中的DELAY参数是指什么

DELAY参数是指需要等待延迟的时间。  WAITFOR  在达到指定时间或时间间隔之前,或者指定语句至少修改或返回一行之前,阻止执行批处理、存储过程或事务。  DELAY  可以继续执行批处理、存储过程或事务之前必须经过的指定时段,最长可为24小时。

关于pl/sql中的group by的用法,怎样选取自己想要的记录??

select a.* from tab a ,(select sfz,max(time) time from tab group by sfz) b where a.sfz=b.sfz and a.time=b.time;

登录sql deveploper之后点击tables为什么不显示表

把当前用户那块切换到全部用户就可以了,这个是PLSQL的问题,我这也经常遇见,tables不能显示的时候,在当前用户和全部用户切换一下就好了

用SQL语句查询

select a.cust_name as 姓名, b.account_no as 账号,b.oper_type as 操作类型, b.oper_date as操作日期,b. amount as 金额 from custmoer_id a,操作表 b where a.custmoer_id=b.custmoer_id

如何导出/生成在VisualParadigm中创建的SQL代码域

class OperationSqrt : Operation { public override double GetResult() { double result = 0; if (NumberB < 0) throw new Exception(""); result = Math.Sqrt(NumberB); return result; } }

windows不能在本地计算机启动sql server错误代码17051

解决方法:1.Microsoft SQL Server 2008-->配置工具-->SQL Server 安装中心-->维护-->版本升级,产品密钥输入:开发版: PTTFM-X467G-P7RH2-3Q6CG-4DMYB企业版: JD8Y6-HQG69-P9H84-XDTPG-34MBB2.一般第一步操作完以后可以正常的启动sql 服务了,但是打开management studio 时依然提示评估已过期,马上修改注册表:HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL Server100ConfigurationState里的“CommonFiles”值改成3,在重新执行上面的操作。备注:sql server 2008安装检查时提示需要“重启”的解决办法:开始-->运行-->regedit找到HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession Manager 位置然后在右边窗口右击PendingFileRenameOperations,选择删除,然后确认。

查询 SQL语句的时候 出现oracle ora 01861 文字与字符串格式不匹配 百思不得其解!

你自己写错了,TO_CHAR(IM.INFO_MAGA_CREATE_TIME, "YYYY-MM-DD") AS T_INFO_MAGA_CREATE_TIME,TO_DATE("2013-02-01", "YYYY-MM-DD") 他们怎么恩那个对比呢?一个CHAR.一个DATE要不你转换上面的TO_CHAR为TO_DATE要不你转换下面的TO_DATE为 TO_CHAR你的SQL 真。。。。乱

asp.net sql数据导入excel word问题

我有vs2008的详细的代码需要吗 HI我啊 qq:582044384(注明百度知道)

VB+SQL的字段问题

do while not adoRs.eofif trim(adoRs!正确答案) = trim(adoRs!选择的答案) thenstore=store+1pro="正确" end ifadoRs.movenextloop如果不要中间步骤的话adoRs.Open "select count(*) from type2 where 正确答案 = 选择的答案", cn, adOpenStatic, adLockOptimistic msgbox adoRs.Fields(0)

请高手进来帮忙,关于SQL和网络通信链接失败的问题,追加50分。

VB访问SQL Server数据库技术全揭密 摘 要: 本文讨论了Visual Basic应用程序访问SQL Server数据库的几种常用的方法,分别说明了每种方法的内部机理并给出了每种方法的一个简单的实例,最后比较了每种方法性能和优缺点。 一、引言 SQL Server是微软推出的中小型网络数据库系统,是目前最常用的数据库系统之一。随着SQL Server网络数据库应用程序日益增多,这种Web数据库应用系统的正常运行一般依赖于已存在的用户数据库。创建维护数据库的工作可用SQL Server提供的SQL Enterprise Manager工具来进行,如能提供一种定制的数据库管理工具,通过管理应用程序来管理数据库及其设备,对用户来说无疑是最理想的。 Visual Basic作为一种面向对象的可视化编程工具,具有简单易学,灵活方便和易于扩充的特点。而且Microsoft为其提供了与SQL Server通信的API函数集及工具集,因此它越来越多地用作大型公司数据和客户机—服务器应用程序的前端,与后端的Microsoft SQL Server相结合,VB能够提供一个高性能的客户机—服务器方案。 二、VB访问SQL Server数据的常用方法 使用Visual Basic作为前端开发语言,与SQL Server接口有几种常用的方法,即: ①数据访问对象/Jet ②为ODBC API编程 ③使用SQL Server的Visual Basic库(VBSQL)为DB库的API编程 ④RDO 远程数据对象(RemoteData Objects) ⑤ADO 数据对象(Active Data Objects) 1、数据访问对象/Jet VB支持Data Access Objects(DAOs)的子集。DAO的方法虽然不是性能最好的管理客户机—服务器之间的对话方式,但它的确有许多优点。DAO/Jet是为了实现从VB访问Access数据库而开发的程序接口对象。使用DAOs访问SQL Server的过程如下:应用程序准备好语句并送至Jet,Jet引擎(MASJT200.DLL)优化查询,载入驱动程序管理器并与之通讯,驱动程序管理器(ODBC.DLL)通过调用驱动器(SQLSRVR.DLL)的函数,实现连接到数据源,翻译并向SQL Server提交SQL语句且返回结果。下面是一个用DAOs访问SQL Server的VB实例。 注释:Form Declarations Dim mydb As Database Dim mydynaset As Dynaset オ Private Sub Form_Load() Set mydb = OpenDatabase("", False, False, "ODBC; DSN=Myserver; WSID=LCL; DATABASE = sales") Set mydynaset = mydb CreateDynaset("Select*from Customers") オ End Sub ァ 上述例子是以非独占、非只读方式打开sales数据库,并检索Customers表中的所有字段。OpenDatabase函数的最后一个参数是ODBC连接字符串参数,它指明了Microsoft Access连接到SQL Server所需要知道的一些内容。其中“DSN”为数据源名,“WSID”为工作站名,“DATABASE”为所要访问的数据库名。 2、利用ODBC API编程 ODBC(Open Database Connectivity)的思想是访问异种数据库的一种可移植的方式。与数据资源对话的公用函数组装在一个称为驱动程序管理器(ODBC.DLL)的动态连接中。应用程序调用驱动程序管理器中的函数,而驱动程序管理器反过来通过驱动器(SQLSRVR.DLL)把它们送到服务器中。 下面的代码使用上面一些函数先登录到一个服务器数据库,并为随后的工作设置了语句句柄。 Global giHEnv As Long Global giHDB As Long Global giHStmt As Long Dim myResult As integer Dim myConnection As Srting Dim myBuff As String*256 Dim myBufflen As Integer If SQLAllocEnv(giHEnv)<>SQL_SUCCESS Then MsgBox"Allocation couldn注释:t happen!" End If If SQLAllocConnect(giHEnv,giHDB)<>SQL_SUCCESS Then MsgBox "SQL Server couldn注释:t connect!" End If myConnection="DSN=myServer;UID=LCL;PWD=;APP=ODBCTest;WSID=LCL;DATABASE=sales" myResult=SQLDriverConnect(giHDB,Test,form1.hWnd,myConnection.len(myConnection),myBuff,256,myBufflen,SQL_DRIVER_COMPLETE_REQU IE D) myResult=SQLAllocStmt(giHDS,giHStmt) myResult=SQLFreeStmt(giHStmt,SQL_COLSE) rsSQL="Select * from Customers Where City = "Hunan"" myResult = SQLExecDirect(giHStmt,rsSQL,Len(rsSQL)) 3、使用VBSQL对DB库API编程 DB库是SQL Server的本地API,SQL Server的Visual Basic库(VBSQL)为Visual Basic程序员提供API。从一定意义上说,VBSQL是连接Visual Basic程序到SQL Server的性能最好最直接的方式。VBSQL包含以下三个文件: VBSQL.VBX: 包含库函数,具有访问重要的消息和处理错误的能力 VBSQL.BI:包括所有的常量和变量说明 VBSQL.HLP:Windows帮助文件,使用VBSQL的指南 使用VBSQL时,必须将VBSQL.BI加入到Visual Basic工程文件中,并确保VB程序运行时有VBSQL.VBX文件。 一般的DB库API编程的过程是这样的:先通过调用SqlInit对DB库进行初始化,再调用SqlConnection打开一个连接,然后就可做一些工作。下面的代码是一个初始化DB库并登录到服务器的通用例程。 Private Sub InitializeApplication() DBLIB_VERSION=SqlInit() If DBLIB_VERSION=""Then MsgBox"Could not initialize DBLIB!Exit application.", MB_ICONEXCLAMATION End If End Sub Private Function LoginToServer() As integer loginToServer=SUCCEED Status%=SqlSetloginTime%(loginTimeOut) If giSqlConn<>0 Then SqlClose(giSqlConn) 注释:关闭已打开的连接 giSqlConn=SqlOpenConnection(gsServerName, gsLoginID, gsPassword, ProgramName, ProgramName) If giSqlConn<>0 Then liresuit=SqlUse(giSqlConn,"Sales") Else LogintoServer=FAIL End If End Function 4、RDO 远程数据对象(RemoteData Objects) 要讨论RDO,就必然要谈到DAO。RDO是从DAO派生出来的,但两者很大的不同在于其数据库模式。DAO是针对[记录(Records)]和[字段( Fields)],而RDO是作为[行(Rows)]和[列(Columns)]来处理。也就是说DAO 是ISAM模式,RDO是关系模式。此外DAO是访问Access的Jet引擎(Jet是ISAM)的接口,而RDO则是访问ODBC的接口。 可见,RDO是综合了DAO/Jet、VBSQL/DBLib以及ODBC的优点的对象(Object)。需要强调的是,RDO是包裹着ODBC API的一层薄薄的外壳, 被设计成在后台(服务器端)有数据库存在的前提下运行,同时也是针对SQL Server和Oracle而特别设计的。 RDO的优势在于它完全被集成在VB之中。此外,直接访问SQL Server存储过程、完全支持T-SQL、T-SQL调试集成在开发环境中、Visual Database Tools的集成化等,也是RDO的长处。 在RDO的对象和集合中,有很多对数据库的状态和设定进行操作的属性(Property),以及对数据库进行操作的方法(Method)。利用这些,从RDO2.0起就可以开发事件驱动的数据库应用程序。 RDO对象与VB中其他对象的概念相同。与VB用的ActiveX控件(以往称为Custom Control或OCX、VBX)相似的是,RDO也带有属性和方法;但同Spread、InputMan等普遍应用的ActiveX控件不同的是,RDO没有自己的用户界面,因而可以和VB标准的Timer控件归为同一类。当然也可以将RDO看作调用ODBC API函数,进而对后台数据库操作加以控制的对象。在RDO的属性和方法中,包含了对单个的ODBC API函数以及一连串API函数的调用。 ①rdoEngine对象 最初调用RDO对象以及RDC(远程数据控件)时,自动生成rdoEngine对象的附带事件(incident)。rdoEngine用于对RDO全局属性的参数、选项进行设置,是在RDO的阶层结构内处于最上层的对象,包含了所有的其他对象。 rdoEngine对象与DAO/Jet不同,虽然被多个应用程序共享,但体现rdoEngine对象的设定值的属性却并不共用,而是在各自的应用程序的程序界面中对其分别加以设定。这些设定值对其他使用RDO以及RDC的应用程序没有任何影响。rdoEngine不是集合的要素,而是重新定义的对象,rdoEngine对象不能被追加作成对象属性的初值。 ②rdoEnvironment对象 RDO对象在自动创建rdoEngine对象时,将rdoEnviroment对象的初始值生成并保存为rdoEnviroments(0)。一般情况下,应用程序中不必追加rdoEnvironment对象,大多只需对已有的rdoEnviroments(0)进行操作就可以了。只有在支持一个以上事务(Transaction),需要将用户名和口令信息分别处理的情况下,利用rdoCreateEnvironment方法将特定的用户名和口令值做成新的rdoEnvironment对象。在这个方法中可以指定固有名、用户名和口令,如果所指定的值与rdoEnvironments集合的已经存在的成员名称相同,会产生错误。新建的rdoEnvironment对象自动追加在rdoEnvironments集合的最后。调rdoCreateEnvironment方法时,其name参数可以是长度为0的文字列,这时新的rdoEnvironment对象将不会被追加在rdoEnvironments集合之中。 ③rdoConnection对象 rdoConnection对象用于同SQL Server的连接管理。 下面是与SQL Server连接的例子。 用OpenConnection方法的一个实例。 设定的DSN为MyDSN: Dim Cn As rdoConnection Dim En As rdoEnvironment Dim Conn As String Conn = "DSN = MyDSN; UID = Jacob;" & "PWD = 123456; DATA BASE = MyDb;" Set Cn= En.OpenConnection("", rdDriverPrompt, False, Co nn) Set Cn= En.OpenConnection(Prompt:= rdDriverPrompt, Rea dOnly:= False,Connect:= Cnn) 用EstablishConnection方法的一个实例。 这里以独立的rdoConnection对象为例说明与SQL Server的连接。 Public WithEvents Eng As rdoEngine Public WithEvents Cn As rdoConnection Private Sub Form_Load() Set Eng = New rdoEngine Set Cn = New rdoConnection With Cn .Connect = "UID = ; PWD = ;" & "DATABASE = pubs; DSN = biblio" .LoginTimeout = 5 .EstablishConnection rdoDriverNoPromt, True, rdAsyncEna ble End With End Sub 在这个例子中,Form_Load函数对rdoEngine和rdoConnection对象进行初始化。这里有一点需要注意,rdoConnection对象是处于独立的状态之下,即使是处于未连接状态也可以设置属性的值。接下来是rdoConnect对象的事件处理程序。从RDO 2.0起可以实现异步方式(rdAsyn cEnable),EstablishConnection就设定为该值。在异步状态下,不必等待与数据库的连接,程序可以迅速从Form_Load 函数中退出。 然后是BeforeConnect事件,该处理在与数据库的连接开始以前被激发,此时不能进行有关终止连接的操作: Private Sub Cn_BeforeConnect(ConnetString As String, Pro mpt As Variant) MsgBox "正在连接" & ConnectString, vbOKOnly, "连接前" End Sub 连接完成之后的事件处理: Private Sub Cn_Connect(ByVal ErrorOccurred As Boolean) Dim M As String If ErrorOccurred Then For Each er In rdoErrors M = M & er & vbCrLf & M Next MsgBox "连接失败" & vbCrLf & M Else MsgBox "连接成功" 注释:这是确认连接状态的测试代码 Cn.Excute "use pubs" End Sub RDO连接处理结束后,在该事件中确认连接成功与否。连接成功的情况下ErrorOccurred返回False,失败时为True,由此可以对rdoErrors集合进行检测: Private Sub Eng_InfoMessage() For Each er In rdoErrors Debug.Print er Next RdoErrors.Clear End Sub 不能与SQL Server连接的原因多种多样,有可能是由于对数据库的访问权限、网络连接问题、数据库表的信息错误、SQL Server同时连接的许可数、资源不足等等,具体情况需要与网络管理员商量。 断开连接的操作非常简单,但又很重要,因为RDO不提供自动断开的功能。 Cn.Close Set Cn = Nothing 注释:释放对象所占的内存资源 En.Close Set En = Nothing 注释:释放对象所占的内存资源 VB是对象语言,Form、ActiveX控件也都是对象。使用对象后必须养成将对象设为Nothing把它从内存中释放的编程习惯。这样可以预防很多不可预测错误,往往程序中发生原因不明的错误时,其原因就在于此。 5、ADO 数据对象(Active Data Objects) ADO是基于全新的OLE DB技术,OLE DB可对电子邮件、文本文件、复合文件、数据表等各种各样的数据通过统一的接口进行存取。随着ActiveX控件的升级(Windows 98的ActiveX 5.0),RDO将被以ActiveX技术为基础的ADO接口所替代。下面将介绍基于ActiveX技术的ADO访问SQL Server 6.5数据库的技术和方法。基于浏览器的ADO接口常用函数如下: (1)取当前的工作数据库 由于管理任务一般都必须在Master库中完成,因此在执行管理任务之前,最好保存当前工作库,以便完成任务之后再切换回原来的任务。 Public Function SQLGetCurrentDatabaseName(Cn As ADODB.Connection) As String Dim sSQL As String Dim RS As New ADODB.Recordset On Error GoTo errSQLGetCurrentDatabaseName sSQL="select CurrentDB=DB_NAME ( )" RS.Open sSQL, Cn SQLGetCurrentDatabaseName=Trim $ (RS! CurrentDB) RS.Close Exit Function errSQLGetCurrentDatabaseName: SQLGetCurrentDatabaseName=" " End Function (2)取SQL Server安装目录下的DATA子目录路径 取SQL Server的设备文件缺省目录,返回如D:MSSQL DATA。 Public Function SQLGetDataPath(Cn As ADODB.Connection) As String Dim sSQL As String Dim RS As New ADODB.Recordset Dim sFullPath As String On Error GoTo errSQLGetDataPath sSQL="select phyname from master..sysdevices where name=注释:master注释: " RS.Open sSQL, Cn sFullPath = RS! phyname RS.Close SQLGetDataPath=Left $ (sFullPath, Len(sFullPath) -10) 注释:MASTER.DAT的大小 Exit Function errSQLGetDataPath: SQLGetDataPath=" " End Function (3)创建一个新数据库 Public Function SQLCreateDatabase65 (Cn As ADODB.Connection,sDBName As String, sDataDeviceName As String, nDataSize As Integer, Optional sLogDeviceName, Optional nLogSize) As Boolean Dim sSQL As String On Error GoTo errSQLCreateDatabase65 Dim sDB As String sDB =SQLGetCurrentDatabaseName(Cn) sSQL = "USE master" Cn.Execute sSQL sSQL ="CREATE DATABASE" & sDBName sSQL = sSQL &" ON " & sDataDeviceName & "=" & nDataSize If Not IsMissing(sLogDeviceName) And Not IsMissing(nLogSize) Then sSQL = sSQL & "LOG ON" & sLogDeviceName & "="& nLogSize End If Cn.Execute sSQL sSQL = "USE" & sDB Cn.Execute sSQL SQLCreateDatabase65 = True Exit Function errSQLCreateDatabase65: On Error Resume Next sSQL = "USE " & sDB Cn.Execute sSQL SQLCreateDatabase65 = False End Function (4)判断一个数据库是否存在 Public Function SQLExistDatabase(Cn As ADODB.Connection, sDBName As String) As Boolean Dim sSQL As String Dim RS As New ADODB.Recordset Dim bTmp As Boolean on Error GoTo errSQLExistDatabase sSQL = "select CntDB = count ( * ) " sSQL = sSQL & "From master.dbo.sysdatabases" sSQL = sSQL & "Where name = 注释: "& sDBName & " 注释: " RS.Open sSQL, Cn If RS! CntDB = 0 Then bTmp = False Else bTmp = True RS.Close SQLExistDatabase = bTmp Exit Function errSQLExistDatabase: SQLExistDatabase = False Exit Function End Function (5)删除一个数据库 Public Function SQLDropDatabase (Cn As ADODB.Connection, sDBName As String) As Boolean Dim sSQL As String On Error GoTo errSQLDropDatabase If Not SQLExistDatabase(Cn, sDBName) Then SQLDropDatabase = True Exit Function End If Dim sDB As String sDB = SQLGetCurrentDatabaseName(Cn) sSQL = "Use master" Cn.Execute sSQL sSQL = "DROP DATABASE " & sDBName Cn.Execute sSQL sSQL = "USE " & sDB Cn.Execute sSQL SQLDropDatabase = True Exit Function errSQLDropDatabase: On Error Resume Next sSQL = "USE " & sDB Cn.Execute sSQL SQLDropDatabase = False End Function 三、性能比较及应用说明 用VB开发基于SQL Server的数据库系统,以上几种访问SQL Server的方法各有各的特点。DAOs方法是基于对象的,因而便于使用,但是它是从Visual Basic到SQL Server最慢的连接方式。ODBC API和VBSQL方法从本质上讲是基于程序的。ODBC API方法通用性好,允许最强的互操作性,编程简单,但速度慢于VBSQL方法。VBSQL方法通过VBSQL控件,提供了重要的SQL Server前端应用程序所需的灵活性、强大功能和良好性能。它具有真正的事件驱动及错误处理能力,完全支持异步处理、游标和计算列等。这些都是VBSQL方法超出其它方法的优势,但其编程稍复杂。RDO是位于ODBC API之上的一个对象模型层,它依赖ODBC API、ODBC驱动程序以及后端数据库引擎来实现,用RDO所需的程序短小(约250 KB)、快速。RDO具备基本的ODBC处理方法,可直接执行大多数ODBC API函数,RDO包含在VB 4.0/VB 5.0企业版中,由MSRDO32.DLL动态连接库来实现。RDO是综合了DAO/Jet、VBSQL/DBLib和ODBC的优点的对象模型,包含ODBC API应用层,设计为在后台(服务器端)有数据库存在的前提下运行,是针对SQL Server和Oracle而特别设计的。RDO的优势在于它完全被集成在VB之中,可直接访问SQL Server存储过程、完全支持T-SQL、T-SQL调试集成在开发环境中、Visual Database Tools的集成化等。但微软已宣布今后不再对VBSQL/DBLib进行升级,而ODBC API函数一般的编程方式也不为人们所喜爱,RDO的应用将逐渐减少。至于实际使用哪一种接口方式,在很大程度上依赖于用户的应用程序的具体情况而定。 四、VisualBasic访问数据库的前景 近来随着Web应用软件的迅速发展和现有数据存储形式的多种多样,Visual Basic访问数据库的解决方案面临诸如快速提取分布于企业内部和外部有用商业信息等的多种挑战。为此Microsoft提出一种新的数据库访问策略,即“统一数据访问”(UniversalDataAccess)的策略。“统一数据访问”提供了高性能的存取包括关系型和非关系型在内的多种数据源,提供独立于开发工具和开发语言的简单的编程接口,这些技术使得企业集成多种数据源、选择更好的开发工具、应用软件、操作平台、建立容易维护的解决方案成为可能。 “统一数据访问”的基础是Microsoft的数据访问组件。这些组件包括ActiveXDataObjects(ADO)、RemoteDataService(RDS,也称“高级数据连接器或”ADC)、OLEDB和ODBC。

如何把SQLServer表数据导出为Excel文件

工具/原料SQLServer2005或者SQLServer2008、SQLServer2008 R2方法/步骤1方法一:对于会写查询SQL语句的则是直接写查询语句查询出结果。如下图:2接下来到桌面新建一个空的excel文件。接下来回到SQLServer查询界面。鼠标右键点击查询结果的左上角空白列,点击“连同标题一起复制”。则已复制好了数据。如下图:3接下来打开之前建好的Excel文件把复制好的数据黏贴到excel即可。如下图:4方法二:对于不会写查询SQL语句的则使用数据库导出方法。选中要导出数据的数据库,点击右键会弹出一个右键菜单。点击“任务”再点击“导出数据(x)”。如下图:5点击了“导出数据(x)”后会弹出一个界面,并填写好信息。如下图:6点击下一步跳转到如下图1中的界面。在目标中选中excel类型,界面信息则发生改变,并选中导出的excel路径。如下图2。7点击下一步跳转至如下界面,选中第一个选项。如下图:8点击下一步,勾选要导出的表。如下图:9点击下一步,跳转至如下界面:10点击下一步:跳转到如下图1界面,选择下一步在点击完成,则会跳到如下图2界面。证明已经导出成功了。11打开excel就可用看到导出的Excel了。

MySQL如何更改数据库数据存储目录详解

前言MySQL数据库默认的数据库文件位于/var/lib/mysql下,有时候由于存储规划等原因,需要更改MySQL数据库的数据存储目录。下文总结整理了实践过程的操作步骤。话不多说了,一起来看看吧方法如下:1:确认MySQL数据库存储目录[root@DB-Server tmp]# mysqladmin -u root -p variables | grep datadirEnter password: | datadir | /var/lib/mysql/2:关闭MySQL服务在更改MySQL的数据目录前,必须关闭MySQL服务。方式1:[root@DB-Server ~]# service mysql statusMySQL running (9411)[ OK ][root@DB-Server ~]# service mysql stopShutting down MySQL..[ OK ][root@DB-Server ~]# 方式2:[root@DB-Server ~]# /etc/rc.d/init.d/mysql statusMySQL running (8900)[ OK ][root@DB-Server ~]# /etc/rc.d/init.d/mysql stopShutting down MySQL..[ OK ][root@DB-Server ~]# 3:创建新的数据库存储目录[root@DB-Server ~]# cd /u01[root@DB-Server u01]# mkdir mysqldata4:移动MySQL数据目录到新位置[root@DB-Server ~]# mv /var/lib/mysql /u01/mysqldata/5:修改配置文件my.cnf并不是所有版本都包含有my.cnf这个配置文件,在MySQL 5.5版本,我就找不到my.cnf这个配置文件, 而有些MySQL版本该文件位于/usr/my.cnf,如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文件,拷贝其中一个到/etc/并改名为my.cnf中。命令如下:[root@DB-Server mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf编辑/etc/my.cnf文件,修改参数socketMySQL 5.5 版本# The following options will be passed to all MySQL clients[client]#password = your_passwordport = 3306socket = /u01/mysqldata/mysql/mysql.sock# Here follows entries for some specific programs# The MySQL server[mysqld]port = 3306socket = /u01/mysqldata/mysql/mysql.sockskip-external-lockingkey_buffer_size = 16Mmax_allowed_packet = 1Mtable_open_cache = 64sort_buffer_size = 512Knet_buffer_length = 8Kread_buffer_size = 256Kread_rnd_buffer_size = 512Kmyisam_sort_buffer_size = 8M6:修改启动脚本/etc/init.d/mysql将参数datadir修改为datadir=/u01/mysqldata/mysql/7:启动MySQL服务并验证MySQL数据库路径[root@DB-Server ~]# service mysql startStarting MySQL..[ OK ][root@DB-Server ~]# mysqladmin -u root -p variables | grep datadirEnter password: | datadir | /u01/mysqldata/mysql/ 我的疑问:1: 在修改数据库的存储目录前,/var/lib/mysql/目录下根本没有mysql.sock文件,安装上面配置后,就会生成mysql.sock文件。关于mysql.sock文件,搜索了一下资料:mysql.sock是用于socket连接的文件。也就是只有你的守护进程启动起来这个文件才存在。但是你的mysql程序(这个程序是客户端,服务器端是mysqld)可以选择是否使用mysql.sock文件来连接(因为这个方法只适合在Unix主机上面连接本地的mysqld),对于非本地的任何类型的主机。那么这个文件是否一定需要的呢? 这个需要进一步了解清楚。2:我在网上看有些网友总结的修改MySQL数据路径,有些需要给新建的目录的权限做一些处理,而有些有不用对目录权限进行授权,我没有处理,也没有什么问题。到底要不要对新的数据库目录授权呢?3:我在MySQL_5.6.20这个版本测试时,不修改my.cnf,只修改启动脚本/etc/init.d/mysql,也完全没有啥问题。也没有myssql.sock文件生成。4: 注意如果没有禁用selinux, 修改MySQL的数据路径后启动MySQL服务会遇到一些错误。关于这个的解释是后台服务都需要有对相应目录的对应权限,而 mysql 的默认路径/var/lib/mysql 已经添加了相应的策略,修改路径后由于没有相应的策略,导致后台进程读取文件被selinux阻止,从而出现权限错误。 所以要么关闭Selinux或修改文件安全上下文。[root@DB-Server mysql]# /etc/init.d/mysql startStarting MySQL....The server quit without updating PID file (/u01/mysqldata/mysql//DB-Server.localdomain.pid).[FAILED][root@DB-Server mysql]# [root@DB-Server mysql]# chcon -R -t mysqld_db_t /u01/mysqldata/mysql/[root@DB-Server mysql]# /etc/init.d/mysql startStarting MySQL.[ OK ][root@DB-Server mysql]# 总结

mysql数据库管理工具navicat for mysql怎么用

Navicat for MySQL是一款可视化操作Mysql数据库的软件,界面简单,方便使用。1、使用Navicat for MySQL之前当然先下载该软件,可以通过百度搜索查找 Navicat for MySQL。请认准百度安全验证最好到官方网站,或者正规网站站下载;2、下载完以后直接双击安装包,根据自己的的需要安装对应的组件以及指定对应的安装位置就可以了;3、打开Navicat for MySQL主界面如下图所示:4、点击主界面中的“链接”,会弹出一个添加链接的窗口;"连接名”可以任意输入,这个会窗口显示,建议输入容易识别和有意义的名称;“主机名或IP地址”必须输入有效MySql访问IP地址;“端口”一般默认为3306,如果有自定义MySql访问端口,则输入对应的自定义端口即可;“用户名”和“密码”则是对应访问MysSql数据库的帐号,注意如果连接的MySql是非本机服务,则使用“root”是无法链接成功,这是MySql的安全策略问题;点击“确认”则可以成功创建一个数据连接,并且会在左窗口显示,也可以点击“连接测试”,测试一下是否可以成功链接;5、点击左窗口链接,连接成功后,在左侧的导航窗口后会看到当前链接的所有的MySQL数据库,其中灰色的表示没有打开数据库,绿色的标识的就是已经被打开的数据库。右键点击一个灰色的数据库,在右键菜单中包含打开、关闭、新建、删除和数据传输等操作;在已经打开数据中的选中表,可以创建、删除、修改表,在右键菜单中包含建表、导入、导出、运行SQL文件等操作;6、在主窗口点击“查询”,则可以对当前选中的数据库进行表查询、以及对查询的创建、修改、删除等;7、在主窗口点击“视图”,则可以对当前选中的数据库进行添加、修改、删除、导出视图;8、在主窗口点击“函数”,则可以对当前选中的数据库进行添加、修改、删除、运行函数;9、在主窗口还有“事件”、“报表”、“备份”、“计划”、“模型”等菜单,这些都不怎么常用,不过基本也是创建、删除、修改等操作。

数据库oracle11gr2要安装好了,但sqldeveloper打不开?

以下是一些在基因数据库领域有所涉足的上市公司,仅供参考:1. Illumina(ILMN):全球领先的基因测序公司,提供各种基因测序仪器和相关服务。2. Thermo Fisher Scientific(TMO):全球领先的科学仪器和试剂供应商,提供生命科学研究和临床诊断等领域的各种产品和服务。3. Qiagen(QGEN):生命科学和诊断领域的领先供应商,提供基因测序、RNA分析、蛋白质组学等方面的产品和服务。4. BGI Genomics(300676.SZ):全球领先的基因测序和基因组学公司,提供各种基因测序和分析服务。5. Pacific Biosciences(PACB):基因测序技术公司,提供单分子实时(SMRT)测序技术和相关服务。6. Oxford Nanopore Technologies(私人公司):提供基于纳米孔技术的基因测序仪器和服务,其MinION和PromethION测序仪已经广泛应用于科研领域。7. Myriad Genetics(MYGN):提供遗传疾病和癌症等方面的诊断测试和相关服务。8. Natera(NTRA):提供产前和肿瘤等领域的基因检测和相关服务。这些公司在基因数据库领域具有不同的专业性和领域覆盖面,它们的产品和服务有助于推动基因组学和生物技术的发展。

MYsql数据库怎样创建表?

建议你使用一些mysql的客户端工具我一直在使用sqlyong。这个工具比较不错!

MYsql数据库怎样创建表?

进到mysql客户端,或者使用phpmyadmin,执行如下命令:DROPTABLEIFEXISTS`tblTable1`;CREATETABLE`tblTable1`(`iNo`int(11)NOTNULLauto_increment,`strFieldName`varchar(255)NOTNULL,`intOrder`tinyint(4)default0,PRIMARYKEY(`iNo`))ENGINE=MyISAMDEFAULTCHARSET=utf8ROW_FORMAT=DYNAMICCOMMENT="数据表1";

mysql数据库创建表

create table student(id int(32) primary key auto_increment,--主键,自增长name varchar(64) not null,--非空age int(4) default 18,--默认值18);此为示例

标题: 连接到服务器 ------------------------------ 无法连接到 PCOS-06301626SQLEXPRESS。 --------

看错误信息是不是访问的服务器地址无效?

改良后pcosq评分表考量维度增加了什么考核

评分表考量维度。改良后pcos评分表考量维度增加了统PCOSQ评分表考量维度,针对PCOS患者的生活质量评分表情绪、体毛等问题进行考量。pcos是指多囊卵巢综合征表现为稀发排卵或不排卵,伴有肥胖、高雌激素血症、卵巢多滤泡样病变和其他代谢障碍综合。

conn.execute N条SQL语句的问题

首先你循环,拼接所有要执行的sql,然后再执行conn.execute(sql)可以使用StringBuilder进行拼接,效率更高.中间可以用;格开

刚刚毕业一年现在外企做SQE转去做Sourcing如何?请大家帮忙分析下利弊!

Sourcing比SQE前途更光明吧, 对供应商的选择和开发需要Communication 的技巧, 有经验的Sourcing人才很有市场的.

SQE和sourcing哪个好

SQE肯定比sourcing好啦~~很明显 傻的都知道

在sql server资料库中设定性别,用什么样的资料型别?

在sql server资料库中设定性别,用什么样的资料型别? 用tinyint吧,比方说男用0表示,女用1表示。 美国Microsoft公司推出的一种关系型资料库系统。SQL Server是一个可扩充套件的、高效能的、为分散式客户机/伺服器计算所设计的资料库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级资讯管理系统方案。 SQL Server 是一个关系资料库管理系统。它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。Sybase 则较专注于SQL Server在UNIX 作业系统上的应用。 SQL server 2008资料库中的资料型别那些,怎么用 一般来说,总体可以归为3种类型: 字元: char,varchar,nchar,nvarchar 数字: int,decimal,numeric,float,money 时间: datetime,date,time 用惯oracle的人,一般只用3种类型: varchar2,可以认为对应sqlserver的varchar number,可以认为对应sqlserver的numeric date,对应sqlserver的datetime 所以,你如果搞不明白那么多资料型别,就用这三种类型。 sql资料库中常用的资料型别有什么 SQL资料库的常用资料型别: (1)二进位制资料型别 二进位制资料包括 Binary、Varbinary 和 Image Binary 资料型别既可以是固定长度的(Binary),也可以是变长度的。 Binary[(n)] 是 n 位固定的二进位制资料。其中,n 的取值范围是从 1 到 8000。其储存窨的大小是 n + 4 个位元组。 Varbinary[(n)] 是 n 位变长度的二进位制资料。其中,n 的取值范围是从 1 到 8000。其储存窨的大小是 n + 4个位元组,不是n 个位元组。 在 Image 资料型别中储存的资料是以位字串储存的,不是由 SQL Server 解释的,必须由应用程式来解释。例如,应用程式可以使用BMP、TIEF、GIF 和 JPEG 格式把资料储存在 Image 资料型别中。 (2)字元资料型别 字资料的型别包括 Char,Varchar 和 Text 字元资料是由任何字母、符号和数字任意组合而成的资料。 Varchar 是变长字元资料,其长度不超过 8KB。Char 是定长字元资料,其长度最多为 8KB。超过 8KB 的ASCII 资料可以使用Text资料型别储存。例如,因为 Html 文件全部都是 ASCII字元,并且在一般情况下长度超过 8KB,所以这些文件可以 Text 资料型别储存在SQL Server 中。 (3)Unicode 资料型别 Unicode 资料型别包括 Nchar,Nvarchar 和Ntext 在 Microsoft SQL Server 中,传统的非 Unicode 资料型别允许使用由特定字符集定义的字元。在 SQL Server安装过程中,允许选择一种字符集。使用 Unicode 资料型别,列中可以储存任何由Unicode 标准定义的字元。在 Unicode 标准中,包括了以各种字符集定义的全部字元。使用Unicode资料型别,所占用的窨是使用非Unicode资料型别所占用的窨大小的两倍。 在 SQL Server 中,Unicode 资料以 Nchar、Nvarchar 和 Ntext 资料型别储存。使用这种字元型别储存的列可以储存多个字符集中的字元。当列的长度变化时,应该使用Nvarchar字元型别,这时最多可以储存 4000 个字元。当列的长度固定不变时,应该使用 Nchar字元型别,同样,这时最多可以储存4000 个字元。当使用 Ntext 资料型别时,该列可以储存多于 4000 个字元。 (4)日期和时间资料型别 日期和时间资料型别包括 Datetime 和 Smalldatetime两种型别 日期和时间资料型别由有效的日期和时间组成。例如,有效的日期和时间资料包括“4/01/98 12:15:00:00:00 PM”和“1:28:29:15:01AM 8/17/98”。前一个数据型别是日期在前,时间在后一个数据型别是霎时间在前,日期在后。在 Microsoft SQL Server中,日期和时间资料型别包括Datetime 和 Smalldatetime 两种型别时,所储存的日期范围是从 1753 年 1 月 1 日开始,到9999 年12 月 31 日结束(每一个值要求 8 个储存位元组)。使用 Smalldatetime 资料型别时,所储存的日期范围是 1900年 1 月 1日 开始,到 2079 年 12 月 31 日结束(每一个值要求 4 个储存位元组)。 日期的格式可以设定。设定日期格式的命令如下: Set DateFormat {format | @format _var| 其中,format | @format_var 是日期的顺序。有效的引数包括 MDY、DMY、YMD、YDM、MYD 和 DYM。在预设情况下,日期格式为MDY。 整数由正整数和负整阵列成,例如 39、25、0-2 和 33967。在 Microsoft SQL Server 中,整数储存的资料型别是 Int,Smallint和 Tinyint。Int 资料型别储存资料的范围大于 Smallint 资料型别储存资料的范围,而 Smallint 据型别储存资料的范围大于Tinyint 资料型别储存资料的范围。使用 Int 资料型别储存资料的范围是从 -2 147 483 648 到 2 147 483 647(每一个值要求4个位元组储存空间)。使用 Smallint 资料型别时,储存资料的范围从 -32 768 到 32 767(每一个值要求2个位元组储存空间)。使用Tinyint 资料型别时,储存资料的范围是从0 到255(每一个值要求1个位元组储存空间)。 精确小数资料在 SQL Server 中的资料型别是 Decimal 和 Numeric。这种资料所占的储存空间根据该资料的位数后的位数来确定。Decimal 资料型别使用128位来表示值来用作数值计算。 在SQL Server 中,近似小数资料的资料型别是 Float 和 Real。例如,三分之一这个分数记作。3333333,当使用近似资料型别时能准确表示。因此,从系统中检索到的资料可能与储存在该列中资料不完全一样。 (6)货币资料 在 Microsoft SQL Server 中,货币资料的资料型别是Money 和 Smallmoney Money资料型别要求 8 个储存位元组,Smallmoney 资料型别要求 4 个储存位元组。 (7)资料型别。 特 殊资料型别包括前面没有提过的资料型别。特殊的资料型别有3种,即 Timestamp、Bit 和 Uniqueidentifier。 Timestamp 用于表示SQL Server 活动的先后顺序,以二进投影的格式表示。Timestamp 资料与插入资料或者日期和时间没有关系。Timestamp 型别的栏位是一个基于系统时钟在资料行被建立或修改时由SQL Server自动填充的值。 Bit 由 1 或者 0 组成。当表示真或者假、ON 或者 OFF 时,使用 Bit 资料型别。例如,询问是否是每一次访问的客户机请求可以储存在这种资料型别的列中。 Uniqueidentifier 由 16位元组的十六进位制数字组成,表示一个全域性唯一的。当表的记录行要求唯一时,GUID是非常有用。例如,在客户标识号列使用这种资料型别可以区别不同的客户。 来自SQL使用说明。 如何查询sql server资料库中的资料 sql server 查询一个表的所有资讯:查询语法为:select * from 表名 语法中的”*“代表所有。 实际操作举例:某资料中有一表叫”user_user“,表中储存了一些使用者资讯; 1、查询”user_user“表中所有人员资讯且所有栏位,sql语句:select * from user_user 2、查询”user_use“表中所有人员资讯且部分栏位。sql语句:select user_show_id,user_name,pinyin,password from user_user 3、条件查询”user_user“表,以user_name为查询条件查询所有资讯。sql语句:select * from user_user where user_name="李丹" 4、模糊查询”user_user“表,以user_name为模糊查询条件查询所有资讯。sql语句:select * from user_user where user_name like "%张%" SQL server资料库资料型别tinyint, *** allint,int和bigint的区别 长度和取之大小的区别 tinyint 1位元组 0-255 *** allint 2位元组 -32768~~~~ 32767 int 4位元组 bigint 8位元组 取值范围记不住了,太大了 栏位的长度不同,允许的最大数字范围问题。 tinyint 0~2^16 *** allint 0~2^32 int 0~2^32 bigint 0~2^64 aess资料库中资料型别怎样设定字元型 在表设计检视中直接选文字型 在SQL语句中定义时用char(n),n为字元个数 如何在sql server资料库中设定排序演算法 1、SQL Server 不支援资料库使用除预设排序规则以外的排序规则。因此,在重建 master 资料库之前,请从使用者资料库中汇出所有资料。 2. 为资料库中的所有物件生成指令码。 3. 使用适当的排序规则重新建立 master 资料库。 4. 建立新的资料库。使用新的预设排序规则自动建立新的资料库。 5. 执行以前储存的指令码以重新建立物件,然后汇入以前汇出的资料。 如何利用SQL Server Management Studio检视sqlserver资料库中的资料 。你。你。你。新手。。。。 右键--》开启表。。 在java中如何获取mysql资料库中资料型别为varchar的资料? 用Strng物件=resultset 物件的 getString获取撒

sql 中的数据类型有那些?请讲明白些

表1显示了数字数据类型;表2显示了字符数据类型;表3显示了日期和布尔数据类型。 表1 scalar types:numericdatatype range subtypes description binary_integer -214748-2147483647 naturalnaturalnpositivepositivensigntype 用于存储单字节整数。要求存储长度低于number值。用于限制范围的子类型(subtype): natural:用于非负数 positive:只用于正数 naturaln:只用于非负数和非null值 positiven:只用于正数,不能用于null值 signtype:只有值:-1、0或1. number 1.0e-130-9.99e125 decdecimaldouble precisionfloat integericintnumericrealsmallint 存储数字值,包括整数和浮点数。可以选择精度和刻度方式,语法:number[([,])]。缺省的精度是38,scale是0. pls_integer -2147483647-2147483647 与binary_integer基本相同,但采用机器运算时,pls_integer提供更好的性能 。 表2 字符数据类型 datatype rang subtype description char 最大长度32767字节 character 存储定长字符串,如果长度没有确定,缺省是1 long 最大长度2147483647字节 存储可变长度字符串 raw 最大长度32767字节 用于存储二进制数据和字节字符串,当在两个数据库之间进行传递时,raw数据不在字符集之间进行转换。 longraw 最大长度2147483647 与long数据类型相似,同样他也不能在字符集之间进行转换。 rowid 18个字节 与数据库rowid伪列类型相同,能够存储一个行标示符,可以将行标示符看作数据库中每一行的唯一键值。 varchar2 最大长度32767字节 stringvarchar 与varchar数据类型相似,存储可变长度的字符串。声明方法与varchar相同 表3 date和booleandatatype range description boolean true/false 存储逻辑值true或false,无参数 date 01/01/4712 bc 存储固定长的日期和时间值,日期值中包含时间

SQL 数据库,求解答。

恩你有耐心太猛

oraclev$sql的sqltype类型是哪些

(1)二进制数据类型二进制数据包括 Binary、Varbinary 和 ImageBinary 数据类型既可以是固定长度的(Binary),也可以是变长度的。Binary[(n)] 是 n 位固定的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储空间的大小是 n + 4 个字节。Varbinary[(n)] 是 n 位变长度的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储空间的大小是 n + 4个字节,不是n 个字节。在 Image 数据类型中存储的数据是以位字符串存储的,不是由 SQL Server 解释的,必须由应用程序来解释。例如,应用程序可以使用BMP、TIEF、GIF 和 JPEG 格式把数据存储在 Image 数据类型中。(2)字符数据类型字符数据的类型包括 Char,Varchar 和 Text字符数据是由任何字母、符号和数字任意组合而成的数据。Varchar 是变长字符数据,其长度不超过 8KB。Char 是定长字符数据,其长度最多为 8KB。超过 8KB 的ASCII 数据可以使用Text数据类型存储。例如,因为 Html 文档全部都是 ASCII字符,并且在一般情况下长度超过 8KB,所以这些文档可以 Text 数据类型存储在SQL Server 中。(3)Unicode 数据类型Unicode 数据类型包括 Nchar,Nvarchar 和Ntext在 Microsoft SQL Server 中,传统的非 Unicode 数据类型允许使用由特定字符集定义的字符。在 SQL Server安装过程中,允许选择一种字符集。使用 Unicode 数据类型,列中可以存储任何由Unicode 标准定义的字符。在 Unicode 标准中,包括了以各种字符集定义的全部字符。使用Unicode数据类型,所占用的空间是使用非Unicode数据类型所占用的空间大小的两倍。在 SQL Server 中,Unicode 数据以 Nchar、Nvarchar 和 Ntext 数据类型存储。使用这种字符类型存储的列可以存储多个字符集中的字符。当列的长度变化时,应该使用Nvarchar字符类型,这时最多可以存储 4000 个字符。当列的长度固定不变时,应该使用 Nchar字符类型,同样,这时最多可以存储4000 个字符。当使用 Ntext 数据类型时,该列可以存储多于 4000 个字符。(4)日期和时间数据类型日期和时间数据类型包括 Datetime 和 Smalldatetime两种类型日期和时间数据类型由有效的日期和时间组成。例如,有效的日期和时间数据包括“4/01/98 12:15:00:00:00 PM”和“1:28:29:15:01AM 8/17/98”。前一个数据类型是日期在前,时间在后;后一个数据类型是时间在前,日期在后。在 Microsoft SQL Server中,日期和时间数据类型包括Datetime 和 Smalldatetime 两种类型时,所存储的日期范围是从 1753 年 1 月 1 日开始,到9999 年12 月 31 日结束(每一个值要求 8 个存储字节)。使用 Smalldatetime 数据类型时,所存储的日期范围是 1900年 1 月 1日 开始,到 2079 年 12 月 31 日结束(每一个值要求 4 个存储字节)。日期的格式可以设定。设置日期格式的命令如下:Set DateFormat {format | @format _var|其中,format | @format_var 是日期的顺序。有效的参数包括 MDY、DMY、YMD、YDM、MYD 和 DYM。在默认情况下,日期格式为MDY。例如,当执行 Set DateFormat YMD 之后,日期的格式为年 月 日 形式;当执行 Set DateFormat DMY 之后,日期的格式为日 月有年 形式(5)数字数据类型数字数据只包含数字。数字数据类型包括正数和负数、小数(浮点数)和整数整数由正整数和负整数组成,例如 39、25、0-2 和 33967。在 Microsoft SQL Server 中,整数存储的数据类型是 Int,Smallint和 Tinyint。Int 数据类型存储数据的范围大于 Smallint 数据类型存储数据的范围,而 Smallint 据类型存储数据的范围大于Tinyint 数据类型存储数据的范围。使用 Int 数据类型存储数据的范围是从 -2 147 483 648 到 2 147 483 647(每一个值要求4个字节存储空间)。使用 Smallint 数据类型时,存储数据的范围从 -32 768 到 32 767(每一个值要求2个字节存储空间)。使用Tinyint 数据类型时,存储数据的范围是从0 到255(每一个值要求1个字节存储空间)。精确小数数据在 SQL Server 中的数据类型是 Decimal 和 Numeric。这种数据所占的存储空间根据该数据的位数后的位数来确定。Decimal 数据类型使用128位来表示值来用作数值计算。在SQL Server 中,近似小数数据的数据类型是 Float 和 Real。例如,三分之一这个分数记作0.333333,当使用近似数据类型时能准确表示。因此,从系统中检索到的数据可能与存储在该列中数据不完全一样。(6)货币数据类型在 Microsoft SQL Server 中,货币数据的数据类型是Money 和 SmallmoneyMoney数据类型要求 8 个存储字节,Smallmoney 数据类型要求 4 个存储字节。(7)特殊数据类型特殊数据类型包括前面没有提过的数据类型。特殊的数据类型有3种,即 Timestamp、Bit 和 Uniqueidentifier。Timestamp 用于表示SQL Server 活动的先后顺序,以二进投影的格式表示。Timestamp 数据与插入数据或者日期和时间没有关系。Timestamp 类型的字段是一个基于系统时钟在数据行被创建或修改时由SQL Server自动填充的值。Bit 由 1 或者 0 组成。当表示真或者假、ON 或者 OFF 时,使用 Bit 数据类型。例如,询问是否是每一次访问的客户机请求可以存储在这种数据类型的列中。Uniqueidentifier 由 16字节的十六进制数字组成,表示一个全局唯一的。当表的记录行要求唯一时,GUID是非常有用。例如,在客户标识号列使用这种数据类型可以区别不同的客户。

用Navicat for mysql 创建存储过程

function inorder($root) gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)configure:3438: $? = 0configure:3427: gcc -V >&5llvm-gcc-4.2: argument to `-V" is missingconfigure:3438: $? = 1configure:3427: gcc -qversion >&5i686-apple-darwin11-llvm-gcc-4.2: no input filesconfigure:3438: $? = 1

mysql有几种数据类型呢?分别是哪几种呢?

var mycars = new Array() Composite comp2 = new Composite("Composite XY"); comp2.Add(new Leaf("Leaf XYA")); comp2.Add(new Leaf("Leaf XYB")); root.Add(comp2); root.Add(new Leaf("Leaf C"));

sql数据库中常用的数据类型有什么

两个字符型字段分别定义为char(10)和varchar(10),当给它们存入“123”这个数据时,char(10)字段占用十个字节的存储空间,而varchar(10)只占用3个字节存储空间,这就是char和varchar的区别。可以看出varchar比较适合存储长度变化很大的数据。nchar和char,nvarchar和varchar的区别在于是否使用unicode进行编码。一般情况下在仅仅处理中文及英文,不涉及特殊符号时不需要使用unicode。另一种需要用unicode的情况是需要将字符串数据添加到sql语句中执行,又不想里面的东西如单引号使sql产生误解,可以将其用unicode编码,这时每个字符都将占用两个字节,单引号也不会被sql识别了。ntext和text的区别也是一样。由于每个字符都占用两个字节,比较适合存储纯中文包括少量英文的数据。smallint、int和bigint的区别仅仅在于位数不同。smallint可存储2字节整数(-32768~32767),int可存储4字节整数(-2147483648~2147483647),bigint可存储8字节整数(-9223372036854775808~9223372036854775807)。smalldatetime用两个字节存储,可表示从1900年1月1日到2079年6月6日之间的任何时间,精确到分钟。datetime用四个字节存储,可表示1753年1月1日到9999年12月31日的任何时间,精确到百分之三秒。sql中没有bigdatetime类型。

asp.net mysql 保存tinyint 出错怎么办,tinyint默认为0,但一保存,结果变成了null???

0你保存的时候要写成‘0"就是外面加个单引号或双引号

mysql布尔用tinyint还是bit

mysql是不支持bool类型如果当把一个数据设置成bool类型的时候,数据库会自动转换成tinyint(1)的数据类型,其实这个就是变相的bool。 默认值也就是1,0两种,分别对应了bool的true和false

mysql TINYINT kettle 取数查询 kettle直接把表中的"1"值用"Y"来代表了 大家有遇到过这问题吗?

请问这个问题有没有解决?求解决方案,kettle直接把tinyint当成boolean解析了,我现在做一个数据库迁移的ETL,表示碰到了这个tinyint类型好蛋疼

sql server的tinyint类型与.net中的谁对应

与byte对应,范围都为0-255

mysql tinyint(1) 能为空吗

可以为null

mysql中的tinyint型的字段通过hibernate工具反向生成实体类时,为什么这个字段的类型变成了boolean型的?

手动搞定喽,好像是改成byte类型,或者删掉不写也行

mysql中的longtext字段在Java的po类中定义成啥类型?还有tinyint

楼上正解。

SQL里的real类型和tinyint类型在C#里分别对应类型

还手写Model? 如果你初学 自己写 无可厚非了 (有代码生成器的)

MySQL的字段类型是tinyint,拿出来变成true和false了,怎么让它在页面上显示成数字

把tinyint加长吧,比如tinyint(2)

sql 中tinyint这个默认值是什么?

没有默认值如果是可空的话就是NULL如果NOTNULL,默认值需要用DEFALUT()来指定

sqlserver数据库的表怎么设置枚举状态tinyint

1、选中该表右键点击Design。2、随便选中一个字段右键点击CheckConstraints,即可看到该表所有有枚举值的字段。。3、在General处即可编辑枚举值,即可实现新增或者删除枚举值。

在 MySQL 中,tinyint的取值范围是()。

在 MySQL 中,tinyint的取值范围是()。 A.0-10B.100-1000C.0-255D.0-100正确答案:C

sql 中tinyint这个默认值是什么?

没有默认值如果是可空的话 就是 NULL如果NOT NULL, 默认值需要用DEFALUT()来指定

SQL2000里tinyint是什么意思

tinyint是一种数据类型:短整型Declare是声明的意思

mysql 无符号 tinyint 最大能够存多大整数

tinyint是-128到127,无符号就乘2,也就是0到255

为什么mysql的boolean变成tinyint

应该是用0和1来表示

mysql tinyint 4 最大能存到多少

在MySQL的数据类型中,Tinyint的取值范围是:带符号的范围是-128到127。无符号的范围是0到255Tinyint占用1字节的存储空间,即8位(bit)。那么Tinyint的取值范围怎么来的呢?我们先看无符号的情况。无符号的最小值即全部8位(bit)都为0,换算成十进制就是0,所以无符号的Tinyint的最小值为0.无符号的最大值即全部8bit都为1,11111111,换算成十进制就是255.为什么有符号的TINYINT的最小值是-128?虽然“-0”也是“0”,但根据正、反、补码体系,“-0”的补码和“+0”是不同的,这样就出现两个补码代表一个数值的情况。为了将补码与数字一一对应,所以人为规定“0”一律用“+0”代表。同时为了充分利用资源,就将原来本应该表示“-0”的补码规定为代表-128

编写程序时 EXEC SQL DECLARE ZBS CURSOR for SELECT CO

把EXEC SQL 去掉就行了,你后边的语句就是创建游标的,执行存储过程的时候才用EXEC的

ps/sql中oracle的select语句有rowid进行查寻编辑修改报错

AbstractChannelHandlerContext的fireChannelRegistered方法,此时fireChannelRegistered中的this就是传入ctx,就是ClientHandler01对象,所以此时的findContextInbound就会从ClientHandler01开始查找它的next,即查找到ClientHandler02对象,并执行ClientHandler02的registered事件。

第五章 SQL定义表(一)

可以通过定义表(使用 CREATE TABLE )或通过定义投影到表的持久类来创建表: 由于以下原因,这两个名字之间的对应关系可能不相同: 表、视图或存储过程名称可以是限定的( schema.name ),也可以是限定的( name )。 模式名遵循标识符约定,需要特别注意非字母数字字符的使用。 模式名不应该指定为带分隔符的标识符。 尝试指定“USER”或任何其他SQL保留字作为模式名会导致 SQLCODE -312 错误。 INFORMATION_SCHEMA 模式名和相应的信息。 模式包名在所有命名空间中保留。 用户不应该在这个模式/包中创建表/类。 当执行一个创建操作(比如 create TABLE ),指定一个还不存在的模式时,InterSystems IRIS将创建新的模式。 InterSystems IRIS使用模式名生成相应的包名。 由于模式及其对应包的命名约定不同,用户应该注意非字母数字字符的名称转换注意事项。 这些名称转换的注意事项与表不同: INFORMATION_SCHEMA 模式名和相应的信息。 模式包名在所有命名空间中保留。 用户不应该在这个模式/包中创建表/类 在所有名称空间中保留 IRIS_Shard 模式名。 用户不应在此模式中创建表、视图或过程。 存储在 IRIS_Shard 模式中的项不会通过编目查询或 INFORMATION_SCHEMA 查询显示。 初始设置是对所有名称空间(系统范围)使用相同的默认模式名。 可以为所有命名空间设置相同的默认模式名,也可以为当前命名空间设置默认模式名。 如果创建了一个具有非限定名称的表或其他项,InterSystems IRIS将为其分配默认模式名和相应的持久类包名。 如果一个命名的或默认的模式不存在,InterSystems IRIS将创建模式(和包),并将创建的项分配给该模式。 如果删除模式中的最后一项,InterSystems IRIS将删除该模式(和包)。 下面的模式名解析描述适用于表名、视图名和存储过程名。 系统范围的初始默认模式名是 SQLUser 。 对应的持久类包名是 User 。 因此,非限定表名 Employee 或限定表名 SQLUser 。 Employee 将生成类 User.Employee 。 因为 USER 是一个保留字,尝试用 USER 的模式名(或任何SQL保留字)指定限定名会导致 SQLCODE -1 错误。 要返回当前默认模式名,请调用 $SYSTEM.SQL.DefaultSchema() 方法: 或者使用以下预处理器宏: 可以使用以下任意一种方式更改默认模式名: 注意:当更改默认的SQL模式名称时,系统将自动清除系统上所有名称空间中的所有缓存查询。 通过更改默认模式名称,可以更改所有包含非限定表、视图或存储过程名称的查询的含义。 强烈建议在安装InterSystems IRIS时建立默认的SQL模式名,以后不要修改。 模式名用于生成相应的类包名。 因为这些名称有不同的命名约定,所以它们可能不相同。 可以通过将其设置为系统范围的默认模式来创建与SQL保留字同名的模式,但是不建议这样做。 名为 User 的默认模式根据类命名唯一性约定,生成相应的类包名称 User0 。 如果指定 _CURRENT_USER/name 作为默认模式名,其中name是选择的任意字符串,那么InterSystems IRIS将当前登录进程的用户名分配为默认模式名。 如果进程没有登录,则name将用作默认的模式名。 例如,如果进程没有登录, _CURRENT_USER/HMO 使用HMO作为默认模式名。 在 $SYSTEM.SQL.SetDefaultSchema() 中,指定 "_CURRENT_USER" 作为带引号的字符串。 当访问一个现有的表(或视图,或存储过程)进行DML操作时,将从模式搜索路径中提供一个非限定的名称。 按照指定的顺序搜索模式,并返回第一个匹配项。 如果在搜索路径中没有找到匹配的模式,或者没有搜索路径,则使用默认的模式名。 (注意, #Import 宏指令使用了不同的搜索策略,不会“失败”到默认的模式名。) 如果非限定名与模式搜索路径中指定的任何模式或默认模式名不匹配,则会发出 SQLCODE -30 错误,例如: SQLCODE: -30 消息: Table "PEOPLE" not found in schemas: CUSTOMERS,EMPLOYEES,SQLUSER 。 当创建一个基于odbc的查询以通过Mac上的Microsoft query从Microsoft Excel运行时,如果从可用的表列表中选择一个表,则生成的查询不包括该表的模式(相当于类的包)。 例如,如果选择从示例模式返回 Person 表的所有行,则生成的查询为: 因为InterSystems IRIS将不限定的表名解释为 SQLUser 模式中的表名,所以该语句要么失败,要么从错误的表返回数据。 要纠正这一点,编辑查询(在SQL View选项卡上),显式引用所需的模式。 然后查询应该是: INFORMATION.SCHEMA 。 SCHEMATA persistent 类列出当前名称空间中的所有模式。 下面的示例返回当前命名空间中的所有非系统模式名: Management Portal SQL界面的左侧允许查看模式(或匹配筛选器模式的多个模式)的内容。 每个表在其模式中都有一个唯一的名称。 一个表有一个SQL表名和一个对应的持久化类名; 这些名称在允许的字符、区分大小写和最大长度方面有所不同。 如果使用SQL CREATE TABLE 命令定义,则指定遵循标识符约定的SQL表名; 系统生成一个对应的持久化类名。 如果定义为持久类定义,则必须指定只包含字母和数字字符的名称; 这个名称既用作区分大小写的持久类名,也用作(默认情况下)对应的不区分大小写的SQL表名。 可选的 SqlTableName class 关键字允许用户指定不同的SQL表名。 当使用 CREATE TABLE 命令创建表时,InterSystems IRIS使用表名生成相应的持久化类名。 由于表及其对应类的命名约定不同,用户应该注意非字母数字字符的名称转换: 同一个模式中的视图和表不能具有相同的名称。 尝试这样做会导致 SQLCODE -201 错误。 可以使用 $SYSTEM.SQL.TableExists() 方法确定一个表名是否已经存在。 可以使用 $SYSTEM.SQL.ViewExists() 方法确定视图名是否已经存在。 这些方法还返回与表或视图名称对应的类名。 管理门户SQL interface Catalog Details表信息选项显示与所选SQL表名称对应的类名。 试图指定 “USER” 或任何其他SQL保留字作为表名或模式名会导致 SQLCODE -312 错误。 要指定SQL保留字作为表名或模式名,可以指定名称作为带分隔符的标识符。 如果使用带分隔符的标识符指定包含非字母数字字符的表或模式名,InterSystems IRIS将在生成相应的类或包名时删除这些非字母数字字符。 适用以下表名长度限制: 在SQL中,每条记录都由一个唯一的整数值标识,这个整数值称为 RowID 。 在InterSystems SQL中,不需要指定 RowID 字段。 当创建表并指定所需的数据字段时,会自动创建RowID字段。 这个 RowID 在内部使用,但没有映射到类属性。 默认情况下,只有当持久化类被投影到SQL表时,它的存在才可见。 在这个投影表中,将出现一个额外的 RowID 字段。 默认情况下,这个字段被命名为 “ID” ,并分配给第1列。 默认情况下,当在表中填充数据时,InterSystems IRIS将从1开始向该字段分配连续的正整数。 RowID 数据类型为 BIGINT(%Library.BigInt) 。为 RowID 生成的值具有以下约束:每个值都是唯一的。不允许使用 NULL 值。排序规则是精确的。 默认情况下,值不可修改。 默认情况下,InterSystems IRIS将此字段命名为 “ ID” 。但是,此字段名称不是保留的。每次编译表时都会重新建立 RowID 字段名。如果用户定义了一个名为 “ ID” 的字段,则在编译表时,InterSystems IRIS会将 RowID 命名为 “ ID1” 。例如,如果用户随后使用 ALTER TABLE 定义了一个名为 “ ID1” 的字段,则表编译会将 RowID 重命名为 “ ID2” ,依此类推。在持久性类定义中,可以使用 SqlRowIdName 类关键字直接为此类投影到的表指定 RowID 字段名。由于这些原因,应避免按名称引用 RowID 字段。 InterSystems SQL提供了 %ID 伪列名称(别名),无论分配给 RowID 的字段名称如何,该伪列名称始终返回 RowID 值。 (InterSystems TSQL提供了 $IDENTITY 伪列名称,其作用相同。) ALTER TABLE 无法修改或删除 RowID 字段定义。 将记录插入表中后,InterSystems IRIS将为每个记录分配一个整数ID值。 RowID 值始终递增。它们不被重用。因此,如果已插入和删除记录,则 RowID 值将按升序排列,但可能不连续。 可以通过设置 SetDDLUseSequence() 方法,将InterSystems IRIS配置为使用 $INCREMENT 执行 ID 分配。若要确定当前设置,请调用 $ SYSTEM.SQL.CurrentSettings() 方法。 在持久性类定义中, IdLocation 存储关键字global(例如,对于持久性类 Sample.Person:<IdLocation> ^ Sample.PersonD </ IdLocation> )包含RowID计数器的最高分配值。 (这是分配给记录的最高整数,而不是分配给进程的最高整数。)请注意,此RowID计数器值可能不再与现有记录相对应。要确定是否存在具有特定RowID值的记录,请调用表的 %ExistsId() 方法。 通过 TRUNCATE TABLE 命令重置 RowID 计数器。即使使用 DELETE 命令删除表中的所有行,也不会通过 DELETE 命令将其重置。如果没有数据插入表中,或者已使用 TRUNCATE TABLE 删除所有表数据,则 IdLocation 存储关键字全局值未定义。 默认情况下, RowID 值不可用户修改。尝试修改 RowID 值会产生 SQLCODE -107 错误。覆盖此默认值以允许修改 RowID 值可能会导致严重的后果,只有在非常特殊的情况下并应格外谨慎。 Config.SQL.AllowRowIDUpdate 属性允许 RowID 值是用户可修改的。 通过定义一个用于投影表的持久类,可以定义 RowID 以具有字段或字段组合中的值。为此,请使用 IdKey index 关键字指定一个索引。例如,一个表可以具有一个 RowID ,其 RowId 通过在 PatientName [IdKey] 上指定索引定义 IdxId 来与 PatientName 字段的值相同;或者可以通过指定索引定义 IdxId 来将 PatientName 和 SSN 字段的组合值在 (PatientName,SSN)[IdKey]; 上。 当 RowID 基于多个字段时, RowID 值是由 || 连接的每个组成字段的值。操作员。例如, Ross,Betsy || 123-45-6789 。 InterSystems IRIS尝试确定基于多个字段的 RowID 的最大长度。如果无法确定最大长度,则 RowID 长度默认为512。 用作外键引用的 RowID 必须是公共的。 默认情况下,不能将具有公共 RowID 的表用作源表或目标表,以使用 INSERT INTO Sample.DupTable SELECT * FROM Sample.SrcTable 将数据复制到重复表中。 可以使用Management Portal SQL界面“目录详细信息字段”列出“隐藏”列来显示 RowID 是否被隐藏。 可以使用以下程序返回指定字段(在此示例中为 ID )是否被隐藏:

使用pl/sql怎么向oracle的表里插入rowid这个列啊?

rowid 只是一个实际位置标识,只能供于查询,是不能增删改的

plsql导出的表自动增加rowid列怎么导入

1、打开plsql-->工具----》导出用户对象(可以导出表结构和序列、视图)ps:如果上面不选中"包括所有者",这样到导出的表结构等就不包含所有者,这样就可以将A所有者的表结构等导入到B所有者的表空间中2、导出表结构和表数据:二、导入:1、首先要创建用户和表空间(1)创建用户:(2)创建表空间:电脑开始菜单-----》找到oracle目录----》找到数据要导入进的数据库---》打开该数据库的控制台---》然后可以创建表空间

sql中自动增长序号的问题怎样让返回的数据集里面的rowid始终从1开始?

--乘以1就可以了--有什么问题可以随时找我 希望采纳 CREATE VIEW V_OrderDetailasselect RANK() over (order by OrderDetailID)*1 as rowid ,* from T_OrderDetail

oracle sql select 语句为何里头有rowid就成可编辑了?

相当于是select rowid ,customer_id from customers for update了

SQLServer删除重复记录的几种方法

例如: id name value 1 a pp 2 a pp 3 b iii 4 b pp 5 b pp 6 c pp 7 c pp 8 c iii id是主键 要求得到这样的结果 id name value 1 a pp 3 b iii 4 b pp 6 c pp 8 c iii 方法1 delete YourTable where [id] not in ( select max([id]) from YourTable group例如:id name value1 a pp2 a pp3 b iii4 b pp5 b pp6 c pp7 c pp8 c iiiid是主键要求得到这样的结果id name value1 a pp3 b iii4 b pp6 c pp8 c iii方法1delete YourTablewhere [id] not in (select max([id]) from YourTablegroup by (name + value))方法2delete afrom 表 a left join(select id=min(id) from 表 group by name,value)b on a.id=b.idwhere b.id is null查询及删除重复记录的SQL语句查询及删除重复记录的SQL语句1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录delete from peoplewhere peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)and rowid not in (select min(rowid) from people group by peopleId having count(peopleId )>1)3、查找表中多余的重复记录(多个字段)select * from vitae awhere (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录delete from vitae awhere (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录select * from vitae awhere (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)(二)比方说在A表中存在一个字段“name”,而且不同记录之间的“name”值有可能会相同,现在就是需要查询出在该表中的各记录之间,“name”值存在重复的项;Select Name,Count(*) From A Group By Name Having Count(*) > 1如果还查性别也相同大则如下:Select Name,sex,Count(*) From A Group By Name,sex Having Count(*) > 1(三)方法一declare @max integer,@id integerdeclare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) >; 1open cur_rowsfetch cur_rows into @id,@maxwhile @@fetch_status=0beginselect @max = @max -1set rowcount @maxdelete from 表名 where 主字段 = @idfetch cur_rows into @id,@maxendclose cur_rowsset rowcount 0 方法二"重复记录"有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。1、对于第一种重复,比较容易解决,使用select distinct * from tableName就可以得到无重复记录的结果集。如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除select distinct * into #Tmp from tableNamedrop table tableNameselect * into tableName from #Tmpdrop table #Tmp发生这种重复的原因是表设计不周产生的,增加唯一索引列即可解决。2、这类重复问题通常要求保留重复记录中的第一条记录,操作方法如下假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集select identity(int,1,1) as autoID, * into #Tmp from tableNameselect min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoIDselect * from #Tmp where autoID in(select autoID from #tmp2)最后一个select即得到了Name,Address不重复的结果集(但多了一个autoID字段,实际写时可以写在select子句中省去此列)(四)查询重复select * from tablename where id in (select id from tablenamegroup by idhaving count(id) > 1)学习sql有一段时间了,发现在我建了一个用来测试的表(没有建索引)中出现了许多的重复记录。后来总结了一些删除重复记录的方法,在Oracle中,可以通过唯一rowid实现删除重复记录;还可以建临时表来实现...这个只提到其中的几种简单实用的方法,希望可以和大家分享(以表employee为例)。SQL> desc employeeName Null? Type----------------------------------------- -------- ------------------emp_id NUMBER(10)emp_name VARCHAR2(20)salary NUMBER(10,2)可以通过下面的语句查询重复的记录:SQL> select * from employee;EMP_ID EMP_NAME SALARY---------- ---------------------------------------- ----------1 sunshine 100001 sunshine 100002 semon 200002 semon 200003 xyz 300002 semon 20000SQL> select distinct * from employee;EMP_ID EMP_NAME SALARY---------- ---------------------------------------- ----------1 sunshine 100002 semon 200003 xyz 30000SQL> select * from employee group by emp_id,emp_name,salary having count (*)>1EMP_ID EMP_NAME SALARY---------- ---------------------------------------- ----------1 sunshine 100002 semon 20000SQL> select * from employee e1where rowid in (select max(rowid) from employe e2where e1.emp_id=e2.emp_id ande1.emp_name=e2.emp_name and e1.salary=e2.salary);EMP_ID EMP_NAME SALARY---------- ---------------------------------------- ----------1 sunshine 100003 xyz 300002 semon 200002. 删除的几种方法:(1)通过建立临时表来实现SQL>create table temp_emp as (select distinct * from employee)SQL> truncate table employee; (清空employee表的数据)SQL> insert into employee select * from temp_emp; (再将临时表里的内容插回来)

导出了大量sql语句备份,插回去时rowid怎么办?有没有什么简单方法,导出时不导出rowid

备份而已。你再导入时就没有了。只是ORACLE的记忆功能

SQL在表中插入一行数据ROWID如何更改?

这个要看你的编码规则了

sqlite rowid怎么使用

默认情况下,SQLite会自动存在一个RowID列,从1开始,每添加一条记录+1当设置了主键,而且主键的类型为integer时,查询RowID等于主键 主键设置为integer时,对rowid和主键的查询情况create table aaa(id integer PRIMARY KEY,aaa ntext)只有在设置为Integer时才会替代rowid,设置为int或其它都不行,下图为主键设置成int类型create table aaa(id int PRIMARY KEY,aaa ntext)写入效率对比:插入500W记录,不设置主键,利用rowid,写入时间1分13秒插入500W记录,设置Integer主键,写入时间1分19秒检索效率对比:对设置了integer主键的表,查询主键100W次,耗时1分20秒对设置了integer主键的表,查询rowid 100W次,耗时1.22秒 对不设置主键的表,查询rowid 100W次,耗时1.23秒(这2秒左右的差距,判断有两种可能,第一是程序运行时误差,第二种可能是因为主键是ID,比rowid长度小,所以拼接sql语句时,要占时间优势)检索优化: 每次检索对command赋值,耗时约1分20秒 [csharp] SQLiteCommand cmd = new SQLiteCommand(conn); for (int i = 0; i < 1000000; i++) { www.2cto.com cmd.CommandText = "select * from aaa where id=" + (1000000 + i); cmd.ExecuteNonQuery(); } 每次检索对参数赋值,耗时约58秒 [csharp] SQLiteCommand cmd = new SQLiteCommand(conn); cmd.CommandText = "select * from aaa where id=@id"; cmd.Parameters.Add("id", DbType.Int32); for (int i = 0; i < 1000000; i++) { www.2cto.com cmd.Parameters[0].Value = (1000000 + i); cmd.ExecuteNonQuery(); } SQLite文件大小:大小基本保持一致(但我发现不设置主键,添加一个ID字段为int时,文件大小也是一样的,猜测可能是SQLite预留的B Tree的空间)结论:不管是使用rowid还是自定义主键,查询效率基本相同,写入效率使用独立主键要损失大约8%的效率,不过好处是可以自己管理主键的内容

pl/sql 中 select a.* ,rowid from 表 a.*和 rowid 是啥意思

就一个表干嘛加a.多繁琐啊

over在SQL里就什么意思

RANK ( ) OVER ( [query_partition_clause] order_by_clause )DENSE_RANK ( ) OVER ( [query_partition_clause] order_by_clause )可实现按指定的字段分组排序,对于相同分组字段的结果集进行排序,其中PARTITION BY 为分组字段,ORDER BY 指定排序字段over不能单独使用,要和分析函数:rank(),dense_rank(),row_number()等一起使用。其参数:over(partition by columnname1 order by columnname2)含义:按columname1指定的字段进行分组排序,或者说按字段columnname1的值进行分组排序。例如:employees表中,有两个部门的记录:department_id =10和20select department_id,rank() over(partition by department_id order by salary) from employees就是指在部门10中进行薪水的排名,在部门20中进行薪水排名。如果是partition by org_id,则是在整个公司内进行排名。以下是个人见解:sql中的over函数和row_numbert()函数配合使用,可生成行号。可对某一列的值进行排序,对于相同值的数据行进行分组排序。如下表:执行语句:select row_number() over(order by AID DESC) as rowid,* from bb后的结果如下:rowid标识行号有了,同时AID也按降序排列。AID有重复的记录,如果要删除rowid为2所对应的记录则可以:with [a] as(select row_number() over(order by AID desc) as rowid,* from bb)delete from [a] where rowid=2如果查看rowid 为5所对应的记录的信息,可以:with [b] as(select row_number() over(order by AID desc) as rowid,* from bb)select * from [b] where rowid=5注意:over里的order只能查查询里的原始数据进行操作,不会对计算出的新值或新字段起作用。msdn中的说法如下:<ORDER BY 子句> 只能引用通过 FROM 子句可用的列。<ORDER BY 子句>不能与聚合窗口函数一起使用。

利用rowid高效删除重复数据SQL如下,语句是怎么执行的?

不孬

请教关于mysql有没有rowid

你需要rowid 干什么呢?

SQLite数据库的id字段,怎么设置成从1开始自增

使用自增长字段为主键有不少问题,比如维护或是在大型分布应用中主键冲突的解决等。在一些大型分布应用中主键一般选用guid,这可以有效的避免主键冲突,减少对主键维护的工程。当然,对于中小型的应用,自增长字段的好处更多一些,简单、快速。Sqlite中,一个自增长字段定义为INTEGER PRIMARY KEY AUTOINCREMENT,那么在插入一个新数据时,只需要将这个字段的值指定为NULL,即可由引擎自动设定其值,引擎会设定为最大的rowid+1。当然,也可以设置为非NULL的数字来自己指定这个值,但这样就必须自己小心,不要引起冲突。当这个rowid的值大于所能表达的最大值 9223372036854775807 (3.0及以后版本的rowid最大值)后,rowid的新值会这个最大数之前随机找一个没被使用了的值。所以在rowid达到最大值前,rowid的值是严格单调增加的。INTEGER PRIMARY KEY AUTOINCREMENT 自增长字段的算法与rowid稍微有些不同。 第一,在达到最大值后,rowid会找已被删除的字段对应的rowid作为新值,而自增长字段则会丢出一个SQLITE_FULL的错误。 第二,自增长字段在增加新值时,是找一个从没被使用过的rowid作为新值,而rowid则是找最大已存在的rowid+1。这里对应用的影响会比较大,尤其是一些对id值有依赖的元记录,只适合使用自增长字段而不能用rowid。 比如,我们设计一个元记录表:drop table test;create table test ( [tkid] integer PRIMARY KEY autoincrement, -- 设置主键 [tktype] int default 0, [tableid] varchar (50), [createdate] datetime default (datetime("now", "localtime")) -- 时间); 第三,使用自增长字段,引擎会自动产生一个sqlite_sequence表,用于记录每个表的自增长字段的已使用的最大值,用户可以看到,并可以用使用 Update、Delete和Insert操作,但不建议这么使用,这会让引擎混乱。如果使用rowid,也会有这么一个内部表,用户可以维护rowid 值,但看不到。这么看来,如果直接使用rowid来代替自增加字段,根据两者的细微的差别,需要注意是否与自己的应用冲突,如果没有冲突,那么用rowid会更快一点。 SQLite中创建自增字段:简单的回答:一个声明为 INTEGER PRIMARY KEY 的字段将自动增加。从 SQLite 的 2.3.4 版本开始,如果你将一个表中的一个字段声明为 INTEGER PRIMARY KEY,那么无论你何时向该表的该字段插入一个 NULL 值,这个 NULL 值将自动被更换为比表中该字段所有行的最大值大 1 的整数;如果表为空,那么将被更换为 1。一个新的API函数 sqlite3_last_insert_rowid() 返回最近的插入操作的整形键.注意这个整型键始终比之前插入表中的最后一个键大1。新键相对于表中的已有键来说是唯一的,但它可能与之前从表中删除的键值重叠。要始终得到在整个表中唯一的键,在INTEGER PRIMARY KEY的声明之前加关键词AUTOINCREMENT.这样被选的键将总是比表中已存在的最大键大1。若可能的最大键已存在于表中,INSERT操作将失败并返回一个SQLITE_FULL错误码.

sqlserver 也有rowid吗

没有的,游标可以实现类似功能oracle里有

表employee和orders,使用sql命令检索订单人数最多的前三名职工的职工号,姓名和订单数

没错,其实差别就在 COUNT(orders.订购单号) AS 订单数 和 COUNT(*) AS 订单数他俩的唯一区别就是,如果有订单号为NULL的情况下COUNT(orders.订购单号)不把这个空计算在内,而COUNT(*)则把这个空值也算做有效

请教关于mysql有没有rowid

MYSQL没有隐藏的rowid字段,这和informix、oracle等不一样的,要操作数据必须自己使用表上的主键。

SQL自动编号 rowid是怎么执行?是再创建一张表么?

你可以尝试的cope另外一张表然后主键ID利用触发器自动增长具体的步骤是先先复制表结构,然后创建序列,在表格上加触发器,然后再复制表数据。不过这样非常麻烦,最简单的就是删表重建。

Sql 语句中" a.rowid b.rowid"是什么意思? a ,b 为表明

1、rowid是一个伪列,是用来确保表中行的唯一性,它并不能指示出行的物理位置,但可以用来定位行。 2、rowid是存储在索引中的一组既定的值(当行确定后)。我们可以像表中普通的列一样将它选出来。 3、利用rowid是访问表中一行的最快方式。 4、rowid需要10个字节来存储,显示为18位的字符串。 rowid的组成结构为: data object number(6位字符串)+relative file number(3位字符串)+block number(6位字符串)+row number(3位字符串),如:AAAADeAABAAAAZSAAA

为什么布斯克茨的球衣是SERGIO,不是Busquets么?

因为他的名字叫做塞尔吉奥布斯克茨,塞尔吉奥才是名字,布斯克茨是西班人常见的一个姓氏而已,就如罗伯特是一个形式,什么罗伯特卡洛斯。罗伯特巴乔一样,我们国内发翻译很多一直用的他的姓氏而不是名字

为什么布斯克茨的球衣是SERGIO,不是Busquets么?

塞尔吉奥是他的名字 可能他嫌姓氏太长不想把姓氏印在球衣上 也说不定还是为了跟他老爸卡洛斯·布斯克茨区分呢

如何在JDBC里调用PLSQL创建的存储过程?

import oracle.jdbc.*;import oracle.sql.*;import java.sql.*;public class ReturnIndexTable{ Connection ociconn=null;OracleCallableStatement stmt =null;public String[] getTable(String in_param){ String[] reAry=null;try{ OracleDriver S_Driver=null;if(S_Driver==null)S_Driver=new oracle.jdbc.OracleDriver();DriverManager.registerDriver(S_Driver);String url="jdbc:oracle:oci8:@test";String user="user";String password=" password";ociconn= DriverManager.getConnection(url,user,password);stmt =(OracleCallableStatement)ociconn.prepareCall("begin yejf_count(?,?); end;");// 返回的索引表最大长度(可以大于索引表实际长度)int maxLen =31;// 索引表元素类型int elemSqlType = OracleTypes.VARCHAR;//索引表元素长度(CHAR, VARCHAR or RAW),其它元素类型可忽略该项值,但该参数仍须定义int elemMaxLen=50;stmt.setString(1,in_param);// 注册返回参数stmt.registerIndexTableOutParameter(2,maxLen,elemSqlType,elemMaxLen);stmt.execute();// 返回数组类型reAry=(String[])stmt.getPlsqlIndexTable(2);}catch (Exception e){e.printStackTrace();}finally{return reAry;}}//关闭连接.............}

WIN7上如何安装Oracle客户端?需要通过配置tnsnames.ora,使用P/L sql去连接其他数据库

系统报什么错

solr查询时怎样达到mysql的union效果

可以试试:使用SolrQuery对象,SolrQuery solrQuery = new SolrQuery();//组装查询条件solrQuery.setQuery("*:*");String key = "java3";solrQuery.addFilterQuery("content:" + "*"+key+"*" );试试吧

如何使用Solr索引MySql数据库

在solr与tomcat整合文章中,我用的索引库是mycore,现在就以这个为例。首先要准备jar包:solr-dataimporthandler-4.8.1.jar、solr-dataimporthandler-extras-4.8.1.jar和mysql-connector-java-5.0.7-bin.jar这三个包到solr的tomcat的webappssolrWEB-INFlib下在这个文件夹的conf下配置两个文件,添加一个文件。先配置solrconfig.xml。在该文件下添加一个新节点。<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"><lst name="defaults"><str name="config">data-config.xml</str></lst></requestHandler>在solrconfig.xml的同目录下创建data-config.xml。配置:复制代码<dataConfig><dataSource type="JdbcDataSource"driver="com.mysql.jdbc.Driver"url="jdbc:mysql://localhost:3306/courseman"user="root"password="mysql" /><document><entity name="student"query="SELECT * FROM student"><field column="id" name="id" /><field column="name" name="name" /><field column="gender" name="gender" /><field column="major" name="major" /><field column="grade" name="grade" /></entity></document></dataConfig>复制代码schemal.xml的配置复制代码<?xml version="1.0" ?><!--Licensed to the Apache Software Foundation (ASF) under one or morecontributor license agreements. See the NOTICE file distributed withthis work for additional information regarding copyright ownership.The ASF licenses this file to You under the Apache License, Version 2.0(the "License"); you may not use this file except in compliance withthe License. You may obtain a copy of the License atUnless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License.--><schema name="example core one" version="1.1"><fieldtype name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/><fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/><fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap="0"/><!-- general --><field name="id" type="int" indexed="true" stored="true" /><field name="gender" type="string" indexed="true" stored="true" /><field name="name" type="string" indexed="true" stored="true" /><field name="major" type="string" indexed="true" stored="true" /><field name="grade" type="string" indexed="true" stored="true" /><field name="_version_" type="long" indexed="true" stored="true"/><!-- field to use to determine and enforce document uniqueness. --><uniqueKey>id</uniqueKey><!-- field for the QueryParser to use when an explicit fieldname is absent --><defaultSearchField>name</defaultSearchField><!-- SolrQueryParser configuration: defaultOperator="AND|OR" --><solrQueryParser defaultOperator="OR"/></schema>复制代码默认的文件不是这样的,稍微改动了一下。field 的type类型是根据fieldtype 的name定义的。class是solr自定义的不能更改。shcema.xml文件的field字段的属性介绍:(1)name:字段名称(2)type:字段类型(此处type不是java类型,而是下面定义的fieldType)(3)indexed:是否索引看true--solr会对这个字段进行索引,只有经过索引的字段才能被搜索、排序等;false--不索引(4)stored:是否存储看true--存储,当我们需要在页面显示此字段时,应设为true,否则false。(5)required:是否必须看true--此字段为必需,如果此字段的内容为空,会报异常;false--不是必需(6)multiValued:此字段是否可以保存多个值看(7)omitNorms:是否对此字段进行解析看有时候我们想通过某个字段的完全匹配来查询信息,那么设置 indexed="true"、omitNorms="true"。(8)default:设置默认值有这样一个FieldType描述:<fieldType name="text_general" positionIncrementGap="100"><analyzer type="index"><tokenizer/><filter ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" /><filter/></analyzer><analyzer type="query"><tokenizer/><filter ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" /><filter synonyms="synonyms.txt" ignoreCase="true" expand="true"/><filter/></analyzer></fieldType>属性说明:(1)name:类型名称,<field>中的type引用的就是这个name(2)class:solr自定义的类型(3)<analyzer type="index">定义建立索引时使用的分词器及过滤器(4)<analyzer type="query">定义搜索时所使用的分词器及过滤器(5)<tokenizer/>定义分词器(6)<filter/>定义过滤器uniqueKey属性<uniqueKey>id</uniqueKey>类似于数据表数据的id,solr索引库中最好定义一个用于标示document唯一性的字段,此字段主要用于删除document。defaultSearchField属性就是你在做query搜寻时若不指定特定栏位做检索时, Solr就会只查这个栏位.<defaultSearchField>default</defaultSearchField>copyField属性是用来复制你一个栏位里的值到另一栏位用. 如你可以将name里的东西copy到major里, 这样solr做检索时也会检索到name里的东西.<copyField source="name" dest="major"/>现在可以将数据库的数据导入solr了。点击Execute就可以了。

在sqlserver 2008 怎么配置才可以正常支持lead和lag分析函数

我刚刚安装好,这个sqlserver 2008 r2 安装废了我不少时间,你按这个填入就可以啦 SQL Server 代理 NT AUTHORITYSYSTEM SQL Server Database Engine NT AUTHORITYNETWORK SERVICE SQL Server Analysis Services NT AUTHORITYNETWORK SERVICE Sql Server Reporting Services NT AUTHORITYNETWORK SERVICE SQL Server Integration Services NT AUTHORITYNETWORK SERVICE SQL Server Browser 默认

SQL lag() over()函数用法什么用?

Lag()就是取当前顺序的上一行记录。结合over就是分组统计数据的。Lag()函数,就是去上N行的字段的数据。with tmp as(select "1" id ,"aa" name from dual union allselect "2" id ,"bb" name from dual)select a.*, lag(name,1) over (order by id desc) lagfrom tmp a运行结果:ENAME SAL PREV_ENAME PREV_SAL---------- ---------- ---------- ----------SMITH 800 N/AJAMES 950 SMITH 800ADAMS 1100 JAMES 950WARD 1250 ADAMS 1100MARTIN 1250 WARD 1250MILLER 1300 MARTIN 1250TURNER 1500 MILLER 1300ALLEN 1600 TURNER 1500CLARK 2450 ALLEN 1600BLAKE 2850 CLARK 2450JONES 2975 BLAKE 2850

SQL语句中LAG怎么用?如下代码什么意思?

lag(字段名,前几行,默认值)over( 根据TIMEID 分类by 根据字段TIMEID 排序) 重命名 ,CUR_CNT:咨询量, REASON_ID:原因ID, TIMEID:时间 , PRE_CUR_CNT:上月咨询量。

PHP PDO 怎么获取SQLSRV 存储过程的OUTPUT值?

我在SQLSRV上建好了存储过程,单步调试能取得OUTPUT的值,但是PHP页面上尝试取得该值时,总是报错,在网上查了很多资料,都没办法解决?不知道是不是我的代码有问题,麻烦大神帮忙看看,以下为具体说明。存储过程的OUTPUT值为 @flag INT,成功为1,失败为0,单步调试是有值的,我感觉应该不是SQL部分的问题。这里的类型也试过BIT、TINYINT、VARCHAR,一样的在SQL部分都有值,但PHP页面好像都没取到值。try {$dbh = new PDO($dsn, $username, $password);$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); try {$dbh->beginTransaction();$sql = "{CALL UploadMasterData(:model, :workplace, :item, :itemCategory, :itemNumber, :filename, :flag)}";$statement = $dbh->prepare($sql);$statement->bindParam(":model", $model, PDO::PARAM_STR);$statement->bindParam(":workplace", $workplaceNumber, PDO::PARAM_INT);$statement->bindParam(":item", $item, PDO::PARAM_STR);$statement->bindParam(":itemCategory", $itemCategory, PDO::PARAM_STR);$statement->bindParam(":itemNumber", $itemNumber, PDO::PARAM_INT);$statement->bindParam(":filename", $filename, PDO::PARAM_STR);$statement->bindParam(":flag", $insertFlag, PDO::PARAM_INT, 11);$statement->execute(); /*if (!$insertFlag) {break;}*/if ($insertFlag) { echo "更新成功<br>"; echo "|" . $insertFlag . "|";$dbh->commit();} else { echo "更新失败<br>"; echo "|" . $insertFlag . "|";$dbh->rollBack();}}catch (PDOException $exception) { echo "An error occurred while operating the database and started to roll back. PDOException info:<br>" . $exception->getMessage() . "<br>";$dbh->rollBack();}}catch (PDOException $exception) { echo "Failed to establish database connection. PDOException info:<br>" . $exception->getMessage();}这里$insertFlag的值好像没有接收成功,有尝试过修改:flag为@flag好像也不行,尝试很多方法,不是报错就是0,不知道是不是我接收的写的有问题,代码有删减,说的比较乱,如果有不明白的麻烦追问,请大神解答,谢谢。An error occurred while operating the database and started to roll back. PDOException info:SQLSTATE[IMSSP]: Types for parameter value and PDO::PARAM_* constant must be compatible for input/output parameter 7.Array([0] => IMSSP[1] => -55[2] => Types for parameter value and PDO::PARAM_* constant must be compatible for input/output parameter 7.)IMSSP193#0 C:Apache24htdocsSOPpagesdo.php(193): PDOStatement->execute()#1 {main}以上是出现过的错误信息。大概整理下要点,如下。$dbh->beginTransaction();$sql = "{CALL UploadMasterData(:model, :workplace, :item, :itemCategory, :itemNumber, :filename, :flag)}";$statement = $dbh->prepare($sql);$statement->bindParam(":model", $model, PDO::PARAM_STR);$statement->bindParam(":workplace", $workplaceNumber, PDO::PARAM_INT);$statement->bindParam(":item", $item, PDO::PARAM_STR);$statement->bindParam(":itemCategory", $itemCategory, PDO::PARAM_STR);$statement->bindParam(":itemNumber", $itemNumber, PDO::PARAM_INT);$statement->bindParam(":filename", $filename, PDO::PARAM_STR);$statement->bindParam(":flag", $insertFlag, PDO::PARAM_INT | PDO::PARAM_INPUT_OUTPUT, 2048);$statement->execute();这里的$insertFlag我老是取不到值,看到一个微软官方的示例,安照一样的方法好像就是不行,是我的理解错了吗?[以下为微软官方示例]<?php$database = "AdventureWorks";$server = "(local)";$dbh = new PDO("sqlsrv:server=$server ; Database = $database", "", ""); $dbh->query("IF OBJECT_ID("dbo.sp_ReverseString", "P") IS NOT NULL DROP PROCEDURE dbo.sp_ReverseString");$dbh->query("CREATE PROCEDURE dbo.sp_ReverseString @String as VARCHAR(2048) OUTPUT as SELECT @String = REVERSE(@String)");$stmt = $dbh->prepare("EXEC dbo.sp_ReverseString ?");$string = "123456789";$stmt->bindParam(1, $string, PDO::PARAM_STR | PDO::PARAM_INPUT_OUTPUT, 2048);$stmt->execute();print $string; // Expect 987654321 ?> 而如果我把:flag改为@flag就会提示参数未定义。。。蛋疼

PDO vs.MySQLi 选择哪一个

一: PHP-MySQL 是 PHP 操作 MySQL 资料库最原始的 Extension ,PHP-MySQLi 的 i 代表 Improvement ,提更了相对进阶的功能,就 Extension 而言,本身也增加了安全性。而 PDO (PHP Data Object) 则是提供了一个 Abstraction Layer 来操作资料库,用讲的其实看不出来有有什麽差别,所以就直接看程式吧… 首先,先来看一段用 PHP-MySQL 写成的程式码,这类的范例常用在世界各地: 复制代码代码如下:lt;?php mysql_connect($db_host, $db_user, $db_password); mysql_select_db($dn_name); $result = mysql_query(SELECT `name` FROM `users` WHERE `location` = ;$location;); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { echo $row[;name;]; } mysql_free_result($result); ?; 乍看之下没什麽问题,但其实背后有些学问… 这种方式不能 Bind Column ,以前例的 SQL 叙述来说,$location 的地方容易被 SQL Injection。后来于是发展出了 mysql_escape_string() (备注:5.3.0之后弃用) 以及 mysql_real_escape_string() 来解决这个问题,不过这麽一搞,整个叙述会变得复杂且丑陋,而且如果栏位多了,可以想见会是怎样的情形… 复制代码代码如下:lt;?php $query = sprintf(SELECT * FROM users WHERE user=;%s; AND password=;%s;, mysql_real_escape_string($user), mysql_real_escape_string($password)); mysql_query($query); ?; 在 PHP-MySQLi 中有了不少进步,除了透过 Bind Column 来解决上述问题,而且也多援 Transaction, Multi Query ,并且同时提供了 Object oriented style (下面这段 PHP-MySQLi 范例的写法) 和 Procedural style (上面 PHP-MySQL 范例的写法)两种写法…等等。 复制代码代码如下:lt;?php $mysqli = new mysqli($db_host, $db_user, $db_password, $db_name); $sql = INSERT INTO `users` (id, name, gender, location) VALUES (?, ?, ?, ?); $stmt = $mysqli-;prepare($sql); $stmt-;bind_param(;dsss;, $source_id, $source_name, $source_gender, $source_location); $stmt-;execute(); $stmt-;bind_result($id, $name, $gender, $location); while ($stmt-;fetch()) { echo $id . $name . $gender . $location; } $stmt-;close(); $mysqli-;close(); ?; 但看到这边又发现了一些缺点,例如得 Bind Result,这个就有点多馀,不过这其实无关紧要,因为最大的问题还是在于这不是一个抽象(Abstraction)的方法,所以当后端更换资料库的时候,就是痛苦的开始… 于是 PDO 就出现了(备注:目前 Ubuntu 和 Debian 来说,PDO 并没有直接的套件可以安装,而是必须透过 PECL 安装)。
 1 2 3 4 5 6  下一页  尾页