sql

阅读 / 问答 / 标签

Database.query(sql)什么意思

大概可以猜测这是一个数据库类(Database),query是其中一个方法,用于数据库的查询功能。比如sql="selecttb.atb.bfromtabletborderbytb.adesc",根据此语句可获得数据库的返回结果集。

SQL 语句里出现QUERY 是什么意思,具体见下边语句

QUERY是一个字段,在表tb_users或tb_userinfo_stat中,这里用来设置一个WHERE条件。

mysql 中query是什么意思

我想你应该想说的是mysql_query(),而你说的query应该是框架中自己封装的,应该就是mysql中的mysql_query(),我们公司的框架就是。mysql_query() 函数执行一条 MySQL 查询。语法:mysql_query(query,connection),query 必需。规定要发送的 SQL 查询。注释:查询字符串不应以分号结束。 connection 可选。规定 SQL 连接标识符。如果未规定,则使用上一个打开的连接。

SQL Server 2005不能打开外围应用配置器,求解?

结合网上搜索的结果,共有以下三种解决方案,我是运行到最后一种时完全解决。我估计大家都执行一遍,问题肯定解决。1.查一下 windows下的system32 中是否有framedyn.dll这个系统文件,如果没有到system32 下的wbem文件中拷贝framedyn.dll到system32 目录下2.有人说是管理员(administrator)没有 network service的权限,所以 WMI无法打开。 设置的方法很简单,网络上都有:1) 右击我的电脑--管理2) 在本地用户和组内的Administrators组上双击,出现添加属性对话框。3) 单击添加按钮,出现添加用户对话框4) 单击高级按钮,再单击搜索(或是立即查找)按钮。注:此"NT AUTHORITYNETWORK SERVICE"用户为系统内置帐户,无法直接添加。5) 在搜索结果内选择Network Service用户后,单击确定按照以上的步骤设置之后,进入配置管理器,问题依旧出现到了这里实在让人郁闷的不行。这时又看到一个新方法:检查一下 windows下的system32 中是否有framedyn.dll这个系统文件,如果没有到system32 下的wbem文件中拷贝framedyn.dll到system32 目录下。 我进到system32目录找framedyn.dll文件,果然没有找到,再进入system32wbem目录,找framedyn.dll,拷贝到system32目下。3.以管理员身份运行命令提示符(在附件下面),进入后执行以下命令1)cd/d C:Program FilesMicrosoftSQLServer90Shared2)mofcomp C:Program FilesMicrosoftSQLServer90Sharedsqlmgmproviderxpsp2up.mof当看到有如下信息时表明操作成功Microsoft (R) 32-bit MOF 汇编器版本 5.2.3790.3959正在分析 MOF 文件: C:Program FilesMicrosoft SQL Server90SharedsqlmgmprovideMOF 文件分析成功

由于PC-201012291353 Error:2148007941(0x80080005)上的WMI配置,无法执行sql server系统配置检查器!

按完"确定"按钮后,安装程序终止执行。可用以下方法可解决:在DOS中执行含有以下脚本(新建一个文本,复制下面代码,保存后文件名改为FIXWMI.CMD即可)@echo oncd /d c: empif not exist %windir%system32wbem goto TryInstallcd /d %windir%system32wbemnet stop winmgmtwinmgmt /killif exist Rep_bak rd Rep_bak /s /qrename Repository Rep_bakfor %%i in (*.dll) do RegSvr32 -s %%ifor %%i in (*.exe) do call :FixSrv %%ifor %%i in (*.mof,*.mfl) do Mofcomp %%inet start winmgmtgoto End:FixSrvif /I (%1) == (wbemcntl.exe) goto SkipSrvif /I (%1) == (wbemtest.exe) goto SkipSrvif /I (%1) == (mofcomp.exe) goto SkipSrv%1 /RegServer:SkipSrvgoto End:TryInstallif not exist wmicore.exe goto Endwmicore /snet start winmgmt:End

Sql Server 配置管理器无法打开(无法连接到WMI提供程序)怎么办(不要重装)?

找了好久啊!!建议先用最后一个方法无法连接到WMI提供程序。你没有权限或者该服务器无法访问/cannot connect to WMI provider. You do not have permission or the……1.Cannot connect to WMI provider. You do not have permission or the server is unreachable. Note that you can only manage SQL Server 2005 servers with SQL Server Configuration Manager.Invalid class [0x80041010]The solution is to go to a command prompt and then run mofcomp.C:Program FilesMicrosoft SQL ServerShared>mofcomp "C:Program FilesMicrosoft SQL ServerSharedsqlmgmproviderxpsp2up.mof"The output will look like belowMicrosoft (R) 32-bit MOF Compiler Version 5.1.2600.2180Copyright (c) Microsoft Corp. 1997-2001. All rights reserved.Parsing MOF file: C:Program FilesMicrosoft SQL ServerSharedsqlmgmproviderxpsp2up.mofMOF file has been successfully parsedStoring data in the repository...Done! 注意一下:上述的mofcomp命令在C:WINDOWSsystem32wbem目录下。 通过这个博客的留言,貌似有些人用这个方法解决了问题。我进入了windows的命令处理器,按照这个方法试了一下,得到了和他一样输出的结果,很兴奋,以为问题解决了。再次进入Server Configuration Manager,不幸的是还是弹出了同样的警告框。继续在网上搜,由于关键字大部分是英文的,搜到的英文网页中除了上述的方法转载就是抱怨…… 2.1 右击“我的电脑”-->“管理”2 在“本地用户和组”内的Administrators组上双击,出现添加属性对话框。3 单击“添加”按钮,出现添加用户对话框4 单击“高级”按钮,再单击“搜索”(或是“立即查找”)按钮。注:此"NT AUTHORITYNETWORK SERVICE"用户为系统内置帐户,无法直接添加。5 在“搜索结果”内选择“Network Service”用户后,单击“确定” 3.检查一下 windows下的system32 中是否有framedyn.dll这个系统文件,如果没有到system32 下的wbem文件中拷贝framedyn.dll到system32 目录下。 我进到system32目录找framedyn.dll文件,果然没有找到,再进入system32wbem目录,找framedyn.dll,拷贝到system32目下。再次进入配置管理器,这次终于成功了!!!问题终于解决了!!!这主要是通过Java 或者vc连接数据库遇到的问题。

Sql Server 配置管理器无法打开(无法连接到WMI提供程序)怎么办(不要重装)

找了好久啊!!建议先用最后一个方法无法连接到WMI提供程序。你没有权限或者该服务器无法访问/cannot connect to WMI provider. You do not have permission or the……1.Cannot connect to WMI provider. You do not have permission or the server is unreachable. Note that you can only manage SQL Server 2005 servers with SQL Server Configuration Manager.Invalid class [0x80041010]The solution is to go to a command prompt and then run mofcomp.C:Program FilesMicrosoft SQL ServerShared>mofcomp "C:Program FilesMicrosoft SQL ServerSharedsqlmgmproviderxpsp2up.mof"The output will look like belowMicrosoft (R) 32-bit MOF Compiler Version 5.1.2600.2180Copyright (c) Microsoft Corp. 1997-2001. All rights reserved.Parsing MOF file: C:Program FilesMicrosoft SQL ServerSharedsqlmgmproviderxpsp2up.mofMOF file has been successfully parsedStoring data in the repository...Done! 注意一下:上述的mofcomp命令在C:WINDOWSsystem32wbem目录下。 通过这个博客的留言,貌似有些人用这个方法解决了问题。我进入了windows的命令处理器,按照这个方法试了一下,得到了和他一样输出的结果,很兴奋,以为问题解决了。再次进入Server Configuration Manager,不幸的是还是弹出了同样的警告框。继续在网上搜,由于关键字大部分是英文的,搜到的英文网页中除了上述的方法转载就是抱怨…… 2.1 右击“我的电脑”-->“管理”2 在“本地用户和组”内的Administrators组上双击,出现添加属性对话框。3 单击“添加”按钮,出现添加用户对话框4 单击“高级”按钮,再单击“搜索”(或是“立即查找”)按钮。注:此"NT AUTHORITYNETWORK SERVICE"用户为系统内置帐户,无法直接添加。5 在“搜索结果”内选择“Network Service”用户后,单击“确定” 3.检查一下 windows下的system32 中是否有framedyn.dll这个系统文件,如果没有到system32 下的wbem文件中拷贝framedyn.dll到system32 目录下。 我进到system32目录找framedyn.dll文件,果然没有找到,再进入system32wbem目录,找framedyn.dll,拷贝到system32目下。再次进入配置管理器,这次终于成功了!!!问题终于解决了!!!这主要是通过Java 或者vc连接数据库遇到的问题。

mysql mandatory 设置有什么用

这个就是mysql的命令行界面。 比如: show databases; //显示数据库 ......等等 如果你是想看图形界面的,需要额外的第三方软件连接mysql,网上有很多,你可以去找下。

blob 如何在sql中查询?

【答案】:您好,一下SQL语言您可以试一试!DELETE FROM MIS..MIS.CONTRACT_PROJECT --清空Oracle表中的数据INSERT into MIS..MIS.CONTRACT_PROJECT--将SQLServer中的数据写到Oracle中SELECT contract_id,project_code,actual_money FROM contract_projectSELECT * FROM MIS..MIS.CONTRACT_PROJECT

c# 如何读取mysql blob 类型的二进制数据

写:说明:QueryFile字段为blod类型private bool SaveQuery(String content) { byte[] byts = new System.Text.UnicodeEncoding().GetBytes(content); assistant ast = new assistant(); MySqlParameter[] param = new MySqlParameter[5]; TimeSpan nowtimespan = new TimeSpan(DateTime.Now.Ticks); param[0] = new MySqlParameter("@CQID", nowtimespan); param[1] = new MySqlParameter("@userID", Session["OfficerID"].ToString()); param[2] = new MySqlParameter("@QueryFile", byts); param[3] = new MySqlParameter("@filename", filename.Text); param[4] = new MySqlParameter("@fcomment", Comment.Text); ast.insertCQ(param); return true; }读:说明:2为blod数据类型的索引protected void setSelect(String uderid) { String sqlcommand = String.Format("select * from CustomQuery where CQID="{0}"", uderid); MySqlDataReader msr = dh. getReader(sqlcommand,null); msr.Read(); Byte[] blob = new Byte[(msr.GetBytes(2, 0, null, 0, int.MaxValue))]; msr.GetBytes(2, 0, blob, 0, blob.Length); msr.Close(); msr.Dispose(); String xmlStr = Encoding.Unicode.GetString(blob); query.LoadFromString(xmlStr); }最简单就是:选出blob数据到DataTable强制类型转化为Byte[]再用 Encoding.Unicode.GetString(Byte[],)转化。

oracle sql怎么查看blob字段

打开表的数据窗口。BLOB单元将被命名为(BLOB)。右键单击该单元格。您将看到一个铅笔< / strong>图标。单击它。它将打开一个blob编辑器窗口。

mysql使用blob存储base64格式文件

1.MySQL有四种BLOB类型:   ·tinyblob:仅255个字符   ·blob:最大限制到65K字节   ·mediumblob:限制到16M字节   ·longblob:可达4GB 2.mybatis对应mysql blob的类型 byte[] imgbytes对应了mysql imgbytes blob类型 3.将base64转成二进制的byte数组。直接就可存储到mysql中

MySQL blob是否会影响性能

会严重影响,因为blob字段的存储是指存指针,指向另外的磁盘页/扇区。每次查询都需要单独指向的位置读取,性能很差。

MySQL 中 CLOB 和 BLOB的疑惑

text类型,其字符所占的字节数量跟字符集有关,比如utf8一个字符占三个字节。其长度为字符数,就是保存字符的数量上限,65535就是最多65535个字符,不管是英文还是汉字。blob类型,保存二进制数据,和字符集无关。其长度为字节数,就是该字段保存文件的大小上限,65535就是保存文件的大小上限为65k。

MySql Blob图片类型存储Bug解决

先在本地装了个Mysql,又装了个navicat管理工具,又新建了个工程来测试:简单的测试方法,就是放一个按钮,点击一下,读取远程图片,然后存到数据库,再读取出来显示到界面上。管理工具随意建了个表“D1”,弄了三个id,img,name三个字段。示例代码如下,因为测试,代码就没写的太规范:protectedvoidbtnTest_Click(objectsender,EventArgse){stringurl="http://www.baidu.com/img/baidu_jgylogo3.gif";boolresult=false;intid=0;stringconn="host=127.0.0.1;Port=3306;Database=test;uid=root;pwd=123456";//stringconn="server=.;database=demo;uid=sa;pwd=123456";using(MActionaction=newMAction("d1",conn)){WebClientwc=newWebClient();try{//if(action.Fill(2))//{byte[]data=wc.DownloadData(url);action.Set("img",data);action.Set("name","ldf");result=action.Insert(InsertOp.ID);id=action.Get<int>("id");//}}catch(Exceptionerr){Log.WriteLogToTxt(err);}}if(result)//再开一个读取试试{using(MActionaction=newMAction("d1",conn)){if(action.Fill(id)){Response.BinaryWrite(action.Get<byte[]>("img"));}}}}解决与调试经过:经本地测试,调试,发现对blob类型的参数赋值时,抛出异常:索引超出了数组界限。异常太迷惑,网上搜了一下,有人说是:Mysql.dll的版本问题,花了一个csdn积分下了一个6.2.3版本,还是不顶用。然后无意识的进行调试,估计运气问题,竟然让我发现了问题所在,只能说是运气好。看一段小代码,对参数的赋值,参数多数据库支持时,类似这种写法:DbParameterpara=_fac.CreateParameter();//通过工厂广告获得当前数据库类型的参数para.ParameterName=parameterName;para.Value=value==null?DBNull.Value:value;para.DbType=dbType;if(size>-1)//设定长度。{para.Size=size;}para.Direction=direction;这代码其实很简单:产生了一个参数,然后赋参数名,参数值,参数类型,参数大小和参数指向。而Mysql竟然在对参数Size赋值的问题处理上有些Bug。当我调试跳过对para.Size赋值时,竟然正常了。于是代码改成了这样:if(dbType!=DbType.Binary&&size>-1)//mysql不能设定长度,否则会报索引超出了数组界限错误。然后我测试了下其它数据库,发现指定size是正常的,最后得出一结论:经过测试,其它数据库类型对Size的赋值是正常的,唯Mysql有问题,为此,在编写进行多数据库支持的框架时,总会时不时的遇到好多问题,别纠结,始终要解决。

SQL中binary 和 varbinary的区别 blob

binary 和 varbinary固定长度 (binary) 的或可变长度 (varbinary) 的 binary 数据类型。binary [ ( n ) ]固定长度的 n 个字节二进制数据。N 必须从 1 到 8,000。存储空间大小为 n+4 字节。 varbinary [ ( n ) ]n 个字节变长二进制数据。n 必须从 1 到 8,000。存储空间大小为实际输入数据长度 +4 个字节,而不是 n 个字节。输入的数据长度可能为 0 字节。在 SQL-92 中 varbinary 的同义词为 binary varying。注释如果在数据定义或变量声明语句中没有指定 n,默认长度为 1。如果没有用 CAST 函数指定 n,默认长度为 30。当列数据项大小一致时应使用 binary。当列数据项大小不一致时应使用 varbinary。BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器。在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型。BLOB是一个大文件,典型的BLOB是一张图片或一个声音文件,由于它们的尺寸,必须使用特殊的方式来处理(例如:上传、下载或者存放到一个数据库)。大型对象BLOB就是使用二进制保存数据。如:保存位图。CLOB使用CHAR来保存数据。如:保存XML文档。MySQL中,BLOB是个类型系列,包括:TinyBlob、Blob、MediumBlob、LongBlob,这几个类型之间的唯一区别是在存储文件的最大大小上不同。MySQL的四种BLOB类型类型 大小(单位:字节)TinyBlob 最大 255Blob 最大 65KMediumBlob 中等16MLongBlob 最大 4G

Mysql中如何实现Blob的存取?

此实现为用java访问mysql的blob,对图片进行存取/** * Title: BlobPros.java * Project: test * Description: 把图片存入mysql中的blob字段,并取出 * Call Module: mtools数据库中的tmp表 * File: C:downloadsluozsh.jpg * Copyright: Copyright (c) 2003-2003 * Company: uniware * Create Date: 2002.12.5 * @Author: ChenQH * @version 1.0 版本* * * Revision history * Name Date Description * ---- ---- ----------- * Chenqh 2003.12.5 对图片进行存取 * * note: 要把数据库中的Blob字段设为longblob * *///package com.uniware;import java.io.*;import java.util.*;import java.sql.*;public class BlobPros{ private static final String URL = "jdbc:mysql://10.144.123.63:3306/mtools?user=wind&password=123&useUnicode=true"; private Connection conn = null; private PreparedStatement pstmt = null; private ResultSet rs = null; private File file = null; public BlobPros() { } /** * 向数据库中插入一个新的BLOB对象(图片) * @param infile 要输入的数据文件 * @throws java.lang.Exception */ public void blobInsert(String infile) throws Exception { FileInputStream fis = null; try { Class.forName("org.gjt.mm.mysql.Driver").newInstance(); conn = DriverManager.getConnection(URL); file = new File(infile); fis = new FileInputStream(file); //InputStream fis = new FileInputStream(infile); pstmt = conn.prepareStatement("insert into tmp(descs,pic) values(?,?)"); pstmt.setString(1,file.getName()); //把传过来的第一个参数设为文件名 //pstmt.setBinaryStream(2,fis,(int)file.length()); //这种方法原理上会丢数据,因为file.length()返回的是long型 pstmt.setBinaryStream(2,fis,fis.available()); //第二个参数为文件的内容 pstmt.executeUpdate(); } catch(Exception ex) { System.out.println("[blobInsert error : ]" + ex.toString()); } finally { //关闭所打开的对像// pstmt.close(); fis.close(); conn.close(); } }/** * 从数据库中读出BLOB对象 * @param outfile 输出的数据文件 * @param picID 要取的图片在数据库中的ID * @throws java.lang.Exception */ public void blobRead(String outfile,int picID) throws Exception { FileOutputStream fos = null; InputStream is = null; byte[] Buffer = new byte[4096]; try { Class.forName("org.gjt.mm.mysql.Driver").newInstance(); conn = DriverManager.getConnection(URL); pstmt = conn.prepareStatement("select pic from tmp where id=?"); pstmt.setInt(1,picID); //传入要取的图片的ID rs = pstmt.executeQuery(); rs.next(); file = new File(outfile); if(!file.exists()) { file.createNewFile(); //如果文件不存在,则创建 } fos = new FileOutputStream(file); is = rs.getBinaryStream("pic"); int size = 0; /* while(size != -1) { size = is.read(Buffer); //从数据库中一段一段的读出数据 //System.out.println(size); if(size != -1) //-1表示读到了文件末 fos.write(Buffer,0,size); } */ while((size = is.read(Buffer)) != -1) { //System.out.println(size); fos.write(Buffer,0,size); } } catch(Exception e) { System.out.println("[OutPutFile error : ]" + e.getMessage()); } finally { //关闭用到的资源 fos.close(); rs.close(); pstmt.close(); conn.close(); } } public static void main(String[] args) { try { BlobPros blob = new BlobPros(); //blob.blobInsert("C:Downloadsluozsh1.jpg"); blob.blobRead("c:/downloads/1.jpg",47); } catch(Exception e) { System.out.println("[Main func error: ]" + e.getMessage()); } }}

SQL中binary 和 varbinary的区别 blob

BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器。在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型。BLOB是一个大文件,典型的BLOB是一张图片或一个声音文件,由于它们的尺寸,必须使用特殊的方式来处理(例如:上传、下载或者存放到一个数据库)。根据Eric Raymond的说法,处理BLOB的主要思想就是让文件处理器(如数据库管理器)不去理会文件是什么,而是关心如何去处理它。但也有专家强调,这种处理大数据对象的方法是把双刃剑,它有可能引发一些问题,如存储的二进制文件过大,会使数据库的性能下降。在数据库中存放体积较大的多媒体对象就是应用程序处理BLOB的典型例子。

mysql数据类型中blob和binary的区别?

BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器。在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型。BLOB是一个大文件,典型的BLOB是一张图片或一个声音文件,由于它们的尺寸,必须使用特殊的方式来处理(例如:上传、下载或者存放到一个数据库)。根据Eric Raymond的说法,处理BLOB的主要思想就是让文件处理器(如数据库管理器)不去理会文件是什么,而是关心如何去处理它。但也有专家强调,这种处理大数据对象的方法是把双刃剑,它有可能引发一些问题,如存储的二进制文件过大,会使数据库的性能下降。在数据库中存放体积较大的多媒体对象就是应用程序处理BLOB的典型例子。 BINARY不是函数,是类型转换运算符,它用来强制它后面的字符串为一个二进制字符串,可以理解为在字符串比较的时候区分大小写

请教SQLite数据库读写BLOB字段

SQLite中如何用api操作blob类型的字段在实际的编程开发当中我们经常要处理一些大容量二进制数据的存储,如图片或者音乐等等。对于这些二进制数据(blob字段)我们不能像处理普通的文本那样 简单的插入或者查询,为此SQLite提供了一组函数来处理这种BLOB字段类型。下面的代码演示了如何使用这些API函数。首先我们要建立一个数据库:sqlite3_exec(db, "CREATE TABLE list (fliename varchar(128) UNIQUE, fzip blob);", 0, 0, &zErrMsg);//由于mmmm.rar是一个二进制文件,所以要在使用insert语句时先用?号代替sqlite3_prepare(db, "insert into list values ("mmmm.rar",?);", -1, &stat, 0);FILE *fp;long filesize = 0;char * ffile;fp = fopen("mmmm.rar", "rb");if(fp != NULL){//计算文件的大小fseek(fp, 0, SEEK_END);filesize = ftell(fp);fseek(fp, 0, SEEK_SET);//读取文件ffile = new char[filesize+1];size_t sz = fread(ffile, sizeof(char), filesize+1, fp);fclose(fp);}//将文件数据绑定到insert语句中,替换“?”部分sqlite3_bind_blob(stat, 1, ffile, filesize, NULL);

请教SQLite数据库读写BLOB字段

// 连接字符串 data source=d: est.db3;password=1234 SQLiteConnectionStringBuilder connStr = new SQLiteConnectionStringBuilder(); connStr.DataSource = @"d: est.db3"; connStr.Password = "1234"; conn = new SQLiteConnection(connStr.ToString()); conn.Open(); // 插入数据 string SQL = "INSERT INTO test(k) VALUES(:k)"; SQLiteCommand cmd = conn.CreateCommand(); cmd.CommandText = SQL; // 取图标,准备插入到数据库BLOB字段 FileStream picStream = File.OpenRead(@"d:1.bmp"); byte[] bArray = new byte[picStream.Length]; picStream.Read(bArray, 0, bArray.Length); picStream.Close(); cmd.Parameters.Add("k", DbType.Binary).Value = bArray; // BLOB cmd.ExecuteNonQuery(); //取出数据 cmd.CommandText = "SELECT k FROM test"; System.Data.SQLite.SQLiteDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { MemoryStream streamImage = new MemoryStream(reader["k"] as byte[]); pictureBox1.Image = Image.FromStream(streamImage); streamImage.Close(); // 关闭流 } reader.close(); conn.close();

Mysql中是blob类型,实体类定义为string,怎么取值

这个是mysql下存取blob字段的一个很简单的类,跟据自己的需要改改就行了 /** * Title: BlobPros.java * Project: test * Description: 把图片存入mysql中的blob字段,并取出 * Call Module: mtools数据库中的tmp表 * File: C:downloadsluozsh

上Mysql后,怎么存入和取出blob数据

读取 BLOB数据: 首先做查询,拿到查询结果ResultSet rs = XXXX (和普通数据查询一样) 然后:Blob blob = rs.getBlob("字段名"); 拿到你的Blob ,

使用java语言操作,如何来实现MySQL中Blob字段的存取

/** * Title: BlobPros.java * Project: test * Description: 把图片存入mysql中的blob字段,并取出 * Call Module: mtools数据库中的tmp表 * File: C:downloadsluozsh.jpg * Copyright: Copyright (c) 2003-2003 * Company: uniware * Create Date: 2002.12.5 * @Author: ChenQH * @version 1.0 版本* * * Revision history * Name Date Description * ---- ---- ----------- * Chenqh 2003.12.5 对图片进行存取 * * note: 要把数据库中的Blob字段设为longblob * */ //package com.uniware; import java.io.*; import java.util.*; import java.sql.*; public class BlobPros { private static final String URL = "jdbc:mysql://10.144.123.63:3306/mtools?user=wind&password=123&useUnicode=true"; private Connection conn = null; private PreparedStatement pstmt = null; private ResultSet rs = null; private File file = null; public BlobPros() { } /** * 向数据库中插入一个新的BLOB对象(图片) * @param infile 要输入的数据文件 * @throws java.lang.Exception */ public void blobInsert(String infile) throws Exception { FileInputStream fis = null; try { Class.forName("org.gjt.mm.mysql.Driver").newInstance(); conn = DriverManager.getConnection(URL); file = new File(infile); fis = new FileInputStream(file); //InputStream fis = new FileInputStream(infile); pstmt = conn.prepareStatement("insert into tmp(descs,pic) values(?,?)"); pstmt.setString(1,file.getName()); //把传过来的第一个参数设为文件名 //pstmt.setBinaryStream(2,fis,(int)file.length()); //这种方法原理上会丢数据,因为file.length()返回的是long型 pstmt.setBinaryStream(2,fis,fis.available()); //第二个参数为文件的内容 pstmt.executeUpdate(); } catch(Exception ex) { System.out.println("[blobInsert error : ]" + ex.toString()); } finally { //关闭所打开的对像// pstmt.close(); fis.close(); conn.close(); } } /** * 从数据库中读出BLOB对象 * @param outfile 输出的数据文件 * @param picID 要取的图片在数据库中的ID * @throws java.lang.Exception */ public void blobRead(String outfile,int picID) throws Exception { FileOutputStream fos = null; InputStream is = null; byte[] Buffer = new byte[4096]; try { Class.forName("org.gjt.mm.mysql.Driver").newInstance(); conn = DriverManager.getConnection(URL); pstmt = conn.prepareStatement("select pic from tmp where id=?"); pstmt.setInt(1,picID); //传入要取的图片的ID rs = pstmt.executeQuery(); rs.next(); file = new File(outfile); if(!file.exists()) { file.createNewFile(); //如果文件不存在,则创建 } fos = new FileOutputStream(file); is = rs.getBinaryStream("pic"); int size = 0; /* while(size != -1) { size = is.read(Buffer); //从数据库中一段一段的读出数据 //System.out.println(size); if(size != -1) //-1表示读到了文件末 fos.write(Buffer,0,size); } */ while((size = is.read(Buffer)) != -1) { //System.out.println(size); fos.write(Buffer,0,size); } } catch(Exception e) { System.out.println("[OutPutFile error : ]" + e.getMessage()); } finally { //关闭用到的资源 fos.close(); rs.close(); pstmt.close(); conn.close(); } } public static void main(String[] args) { try { BlobPros blob = new BlobPros(); //blob.blobInsert("C:Downloadsluozsh1.jpg"); blob.blobRead("c:/downloads/1.jpg",47); } catch(Exception e) { System.out.println("[Main func error: ]" + e.getMessage()); } } }

Mysql中的clob和blob

1.clob clob用于存储大量的文本数据。大字段的操作常常以流的方式处理。 2.blob blob用于存储二进制数据,常常为图片或音频。

什么是blob,mysql blob大小配置介绍

BLOB介绍 BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器。在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型。BLOB是一个大文件,典型的BLOB是一张图片或一个声音文件,由于它们的尺寸,必须使用特殊的方式来处理(例如:上传、下载或者存放到一个数据库)。根据Eric Raymond的说法,处理BLOB的主要思想就是让文件处理器(如数据库管理器)不去理会文件是什么,而是关心如何去处理它。但也有专家强调,这种处理大数据对象的方法是把双刃剑,它有可能引发一些问题,如存储的二进制文件过大,会使数据库的性能下降。在数据库中存放体积较大的多媒体对象就是应用程序处理BLOB的典型例子。mysql BLOB类型 MySQL中,BLOB是个类型系列,包括:TinyBlob、Blob、MediumBlob、LongBlob,这几个类型之间的唯一区别是在存储文件的最大大小上不同。  MySQL的四种BLOB类型  类型 大小(单位:字节)  TinyBlob 最大 255  Blob 最大 65K  MediumBlob 最大 16M  LongBlob 最大 4G

怎样将音频和视频文件添加到数据库中,sql server数据库,最好有c#语言代码

如果是直接把音频和视频文件存进数据库的话,通常这个数据库就太庞大的,还不如把音频和视频的文件路径存进去好点。当然,主要看你是怎么样的目的。

SQL server 安装程序在运行Windows installers文件时遇到错误

系统提示“不能访问windows installer 服务,可能你在安全模式下运行 windows ,或者windows installer 没有正确的安装,请和你的支持人员联系以获得帮助”。解决方法:在Windows2000系统下:第一步:点击 开始-->运行,输入 CMD 命令,在弹出的CMD命令提示符窗口中输入“msiexec /unregserver”命令,是为了停掉windows installer服务。第二步:下载windows installer服务安装程序包,Windows2000/NT系统的安装程序包为“InstMsiW.exe”Windows98/ME安装程序包为"InstMsiA.exe",Windows XP系统则集成了最新版本的Windows Installer v2.0。下载“InstMsiW.exe”安装程序包后,将其用winrar解压开,然后进入到此目录中。第三步:右键单击“msi.inf”文件,点击“安装”选项,接着右键单击“mspatcha.inf ”文件,点击“安装”。第四步:在CMD命令提示符下输入“msiexec /regserver”命令,这样就启动了windows installer服务,重新启动Windows2000系统后,问题就得到解决。注意:在安装两个inf文件的过程中,不要重新启动系统,全部****作完成后才能重启,另外,如果系统安装了”瑞星病毒防火墙”和“瑞星网络防火墙”,建议在****作过程中关闭瑞星防火墙。在Windows XP系统下:第一步:使用记事本编写installer.reg文件,内容如下:Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMSIServer]"ImagePath"=-"ImagePath"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,6d,00,73,00,69,00,65,00,78,00,65,00,63,00,2e,00,65,00,78,00,65,00,20,00,2f,00,56,00,00,00然后将文件保存为“.reg”格式,双击该文件,将文件内容导入注册表。第二步:重新启动电脑进入安全模式(启动时按F8键),然后点击开始-->运行,输入CMD命令,在弹出的CMD命令提示符窗口中输入“msiexec /regserver”,最后重新启动系统即可。

请问下 安装SQL时遇到“ 运行windows installer 文件时遇到错误” 请问您是怎么解决的?

系统提示“不能访问windows installer 服务,可能你在安全模式下运行 windows ,或者windows installer 没有正确的安装,请和你的支持人员联系以获得帮助”。解决方法:在Windows2000系统下:第一步:点击 开始-->运行,输入 CMD 命令,在弹出的CMD命令提示符窗口中输入“msiexec /unregserver”命令,是为了停掉windows installer服务。第二步:下载windows installer服务安装程序包,Windows2000/NT系统的安装程序包为“InstMsiW.exe”Windows98/ME安装程序包为"InstMsiA.exe",Windows XP系统则集成了最新版本的Windows Installer v2.0。下载“InstMsiW.exe”安装程序包后,将其用winrar解压开,然后进入到此目录中。第三步:右键单击“msi.inf”文件,点击“安装”选项,接着右键单击“mspatcha.inf ”文件,点击“安装”。第四步:在CMD命令提示符下输入“msiexec /regserver”命令,这样就启动了windows installer服务,重新启动Windows2000系统后,问题就得到解决。注意:在安装两个inf文件的过程中,不要重新启动系统,全部****作完成后才能重启,另外,如果系统安装了”瑞星病毒防火墙”和“瑞星网络防火墙”,建议在****作过程中关闭瑞星防火墙。在Windows XP系统下:第一步:使用记事本编写installer.reg文件,内容如下:Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMSIServer] "ImagePath"=-"ImagePath"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,6d,00,73,00,69,00,65,00,78,00,65,00,63,00,2e,00,65,00,78,00,65,00,20,00,2f,00,56,00,00,00然后将文件保存为“.reg”格式,双击该文件,将文件内容导入注册表。第二步:重新启动电脑进入安全模式(启动时按F8键),然后点击开始-->运行,输入CMD命令,在弹出的CMD命令提示符窗口中输入“msiexec /regserver”,最后重新启动系统即可。

如何在pl/sql developer中查看一个包的存储过程的定义

Connected as SYS SQL> SQL> select text from all_source 2 where type="PACKAGE BODY" 3 and owner="SCOTT" 4 order by name,line; TEXT--------------------------------------------------------------------------------PACKAGE BODY myDemoPack ASFUNCTION prodFunc RETURN myTableType PIPELINED ISBEGIN FOR i in 1 .. 5 LOOP PIPE ROW (myObjectFormat(i,SYSDATE+i,"Row "||i)); END LOOP; RETURN; END;END;package body pkg_show_emp as function func_get_emp return t_ref_cursor as emp_ref_cursor t_ref_cursor; begin open emp_ref_cursor for select * from emp; return emp_ref_cursor; end func_get_emp; procedure pro_show_emp(ename_in in emp.ename%type) as v_sign number; v_empno emp.empno%type; v_deptno emp.deptno%type; begin select 1 into v_sign from dual where exists(select 1 from emp where ename=ename_in); if v_sign=1 then select empno,deptno into v_empno,v_deptno from emp where ename=ename_in; dbms_output.put_line("information of "||ename_in||" are:"); dbms_output.put_line("empno:"||v_empno||",ename:"||ename_in||",de end if; exception when others then dbms_output.put_line("no data found"); end pro_show_emp;end pkg_show_emp; 42 rows selected SQL>

DB2 SQL0104N An unexpected token "END-OF-STATEMENT" was found SQLSTATE=42601 SQLCODE=-104

你的sql语句写错了吗? 说下是在上面情况下出现的这个错误啊

SQL必知必会(第五版)

去重 :使用DISTINCT关键字,它必须直接放在列名的前面。 检索前5行数据: LIMIT 5 OFFSET 5指示MySQL等DBMS返回从第5行起的5行数据。第一个数字是检索的行数,第二个数字是指从哪儿开始。 2.1 排序数据 注意: ORDER BY 子句的位置在指定一条ORDER BY子句时,应该保证它是 SELECT语句中最后一条子句 。如果它不是最后的子句,将会出错。 ORDER BY 2, 3表示先按prod_price,再按prod_name进行排序。 好处在于不用重新输入列名。 缺点。首先,不明确给出列名有可能造成错用列名排序。其次,在对SELECT清单进行更改时容易错误地对数据进行排序(忘记对ORDER BY子句做相应的改动)。最后,如果进行排序的列不在SELECT清单中,显然不能使用这项技术。 DESC 是DESCENDING的缩写,这两个关键字都可以使用。与DESC相对的是 ASC (或ASCENDING),在升序(A→Z)排序时可以指定它。但实际上,ASC没有多大用处,因为升序是默认的(如果既不指定ASC也不指定DESC,则假定为ASC)。 DESC关键字只应用到直接位于其前面的列名。如果想在多个列上进行降序排序,必须对每一列指定DESC关键字。 在SELECT语句中,数据根据WHERE子句中指定的搜索条件进行过滤。WHERE子句在表名(FROM子句)之后给出。 在同时使用ORDER BY和WHERE子句时,应该让ORDER BY位于WHERE之后,否则将会产生错误。 提示: 单引号用来限定字符串。如果将值与字符串类型的列进行比较,就需要限定引号。用来与数值列进行比较的值不用引号。 操作符(operator) 用来联结或改变WHERE子句中的子句的关键字,也称为逻辑操作符(logicaloperator)。 AND 用在WHERE子句中的关键字,用来指示检索满足所有给定条件的行。 一个AND子句,只有两个过滤条件。可以增加多个过滤条件,每个条件间都要使用AND关键字。 ORDER BY子句,放在WHERE子句之后。 OR: WHERE子句中使用的关键字,用来表示检索匹配任一给定条件的行。 SQL(像多数语言一样)在处理OR操作符前,优先处理AND操作符。 圆括号具有比AND或OR操作符更高的优先级。 任何时候使用具有AND和OR操作符的WHERE子句,都应该使用圆括号明确地分组操作符。 IN:WHERE子句中用来指定要匹配值的清单的关键字,功能与OR相当。 IN操作符一般比一组OR操作符执行得更快。 IN的最大优点是可以包含其他SELECT语句,能够更动态地建立WHERE子句。 NOT: WHERE子句中用来否定其后条件的关键字。 通配符(wildcard) 用来匹配值的一部分的特殊字符。 搜索模式(search pattern) 由字面值、通配符或两者组合构成的搜索条件。 说明:区分大小写根据DBMS的不同及其配置,搜索可以是区分大小写的。如果区分大小写,则"fish%"与Fish bean bag toy就不匹配。 除了能匹配一个或多个字符外,%还能匹配0个字符。%代表搜索模式中给定位置的0个、1个或多个字符。 "%"不会匹配名称为NULL的行。 下划线的用途与%一样,但它只匹配单个字符,而不是多个字符。 与%能匹配多个字符不同,_总是刚好匹配一个字符,不能多也不能少。 此语句的WHERE子句中的模式为"[JM]%"。这一搜索模式使用了两个不同的通配符。[JM]匹配方括号中任意一个字符,它也只能匹配单个字符。因此,任何多于一个字符的名字都不匹配。[JM]之后的%通配符匹配第一个字符之后的任意数目的字符,返回所需结果。 也可以使用NOT操作符得出类似的结果。^的唯一优点是在使用多个WHERE子句时可以简化语法: 例如: 拼接(concatenate) 将值联结到一起(将一个值附加到另一个值)构成单个值。 操作符可用加号(+)或两个竖杠(||)表示。 说明:是+还是||?SQL Server使用+号。DB2、Oracle、PostgreSQL和SQLite使用||。在MySQL和MariaDB中,必须使用特殊的函数。 说明: TRIM函数 大多数DBMS都支持 RTRIM() (去掉字符串右边的空格)、 LTRIM() (去掉字符串左边的空格)以及 TRIM() (去掉字符串左右两边的空格)。 SQL支持列别名。 别名(alias) 是一个字段或值的替换名。别名用 AS 关键字赋予。 AS关键字可选,最好用它。 提示:如何测试计算 SELECT语句为测试、检验函数和计算提供了很好的方法。虽然SELECT通常用于从表中检索数据,但是省略了FROM子句后就是简单地访问和处理表达式,例如SELECT 3*2;将返回6,SELECT Trim(" abc ");将返回abc,SELECT Curdate();使用Curdate()函数返回当前日期和时间。 UPPER()函数: 将文本转换为大写。 SQL函数不区分大小写,因此upper(), UPPER(), Upper()都可以,substr(), SUBSTR(), SubStr()也都行。

plsql怎么连接亚马逊rds数据库

1)点击Net Configuration Assistant2) 在弹出的对话框中选择本地Net服务名配置,点下一步3) 在服务名配置对话框中选择添加,点下一步4)在如下对话框中填写要访问的oralce数据库的服务名,该服务名可以通过oralce登录用户名进入环境,在.cshrc中,环境变量ORACLE_SID对应的值便是这个服务名,也可以在oracle用户环境下执行grep | env ORACLE_SID查找。点击下一步5)选择TCP协议,点下一步6)主机名中填写要访问的oracle数据库服务器,使用标准端口号1521,点下一步7)选中“是,进行测试”,点下一步8) 点更改登录,填写要访问的数据库用户名和密码,确保其正确。此处主要是验证前面配置是否正确,如正确这里的测试就可以成功。如果不正确请检查服务名、ip地址、用户名、密码中是否有写错,并改之,就可以成功了。测试成功后点下一步9)在下图中填写网络服务名,此处的网络服务名可以随意取名,点下一步,后面配置数据源的时候用的就是这个网络服务名方法一用起来有点小复杂,不过可以了解数据库的配置步骤,方法二相对来说简单很多找到本机oracle数据库安装的如下路径,如:F:appAdministratorproduct11.1.0client_1 etworkadmin,在该路径下有个文件tnsnames.ora,打开文件会发现里面有很多连接配置,直接拷贝一个修改如下红色字SYSDB_102 = //对应的就是上面方法一提到的网络服务名(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 10.41.24.102)(PORT = 1521)) //访问数据库的ip)(CONNECT_DATA =(SERVICE_NAME = sysdb) //数据库服务名))当配置好后,就可以用PLSQL访问数据库了

如何将RDS数据备份到本地MySQL 数据库

用户在购买完RDS后,接下来就可以开始往RDS迁入数据了。在RDS刚刚对外提供服务的时候,用户只能通过将自己的数据库dump成为sql文件,然后再将sql文件source到RDS中去:数据迁移至RDS-MySQL之使用MySQLdump工具,数据迁移至RDS-SQLserver之利用SQL Server客户端工具,这两种方法是最简单的方法,但是局限性也非常的多:.用户的数据库太大了,逻辑sql导入的方式速度太慢了,严重影响停机时间;.在导入的过程中报错很多,或者导入一半的过程中中断了,需要重新来过;.在迁入RDS过程中,希望我的数据库还能能正常提供服务;大量的用户入云全部堵在迁移数据上面,用户与RDS的缘分就差么这临门一脚。工欲善必先利其器,为了更好的帮助用户入云,RDS对现有的用户入云迁移方式进行改进,帮助用户快速稳定迁移入云,分别为用户提供了mysql和sqlserver两套改良迁移工具:.mysql迁移工具支持在线迁移,用户可以不中断业务的情况下把数据迁移到RDS中来;.sqlserver的迁移工具采用物理备份的方法,将用户的物理备份上传到FTP中后还原到RDS,提升迁移的速度;这两套工具目前都已经集成到了RDS的控制台中,可以参考:数据迁移至RDS-MySQL之使用阿里云控制台和 数据迁移至RDS-SQLserveru阿里云控制台.很多用户在控制台上看到的只是一个黑盒子,在工单中多次咨询迁移的原理,在这里大致讲一下这两个工具的迁移实现:Mysql在线迁移的原理:第一步:预检查,主要是验证用户网络的通畅性,账号和环境的检查;第二步:全量备份,该步骤会把用户的数据全量的dump出一份出来,然后还原到RDS;第三步:增量迁移,该步骤会解析用户全量期间以及后续产生的binlog应用到RDS;第四步:切换,当RDS的数据完全追上用户的数据库后,用户就可以开始进行切换了;Mysql的在线迁移工具目前还有一些限制,比如:mysql 5.0只支持全量迁移,不支持增量迁移;不支持mysql5.6的迁移;不支持存储过程,触发器的迁移;迁移过程中如果有ddl发生则会导致增量迁移失败;SQLSERVER工具迁移的原理:第一步:备份用户对本地数据库进行物理备份;第二步:备份上传至RDS提供的ftp服务器上(ftp地址支持私网和公网上传);第三步:RDS扫描校验用户上传备份文件通过后,恢复至用户RDS;第四步:用户切换应用至RDS;由于sqlserver目前还没有开放日志接口,所以RDS目前还不能支持在线迁移;RDS目前不支持master库的导入。希望这篇文章对你使用RDS有帮助。

sql连接数据库出现无效参数args

就是把start_form_tag改成form。结构化查询语言(StructuredQueryLanguage)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理的接口。

如何找到PostgreSQL数据库上次更新的时间

方法一:通过查找表数据文件方式这种方法通过查找表的数据文件的方式从而确定表的创建时间,但是这种方法并不能准备查询表的创建时间,而且有时候,这种方法得到的信息还有可能是错误的,下面大致演示下。--1.1 创建表并插入数据francs=> create table test_ctime (id int4 primary key ,name varchar(32));NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "test_ctime_pkey" for table "test_ctime"CREATE TABLE francs=> insert into test_ctime select generate_series(1,10000),"create_time test";INSERT 0 10000francs=> d test_ctime;Table "francs.test_ctime"Column | Type | Modifiers --------+-----------------------+-----------id | integer | not nullname | character varying(32) | Indexes:"test_ctime_pkey" PRIMARY KEY, btree (id)francs=> dt+ test_ctime;List of relationsSchema | Name | Type | Owner | Size | Description --------+------------+-------+--------+--------+-------------francs | test_ctime | table | francs | 536 kB | (1 row)备注:表创建好了,接下来演示如何定位表的物理文件。--1.2 定位表所在的表空间francs=> select relname,relfilenode,reltablespace from pg_class where relname="test_ctime";relname | relfilenode | reltablespace ------------+-------------+---------------test_ctime | 24650 | 0(1 row)备注:在 PostgreSQL 的逻辑结构体系中,表位于数据库中,同时表位于表空间上,面表空间对应系统上一个文件目录,每个表由一个或者多个文件组成; 根据上面的结果,表 test_ctime 的 reltablespace值为 0,表示位于所属数据库的默认表空间,注意 relfilenode 值为 24650。--1.3 查询数据库 francs 的默认表空间francs=> select oid,datname,dattablespace from pg_database where datname="francs";oid | datname | dattablespace -------+---------+---------------16386 | francs | 16385 备注:上面查出数据库 francs 的默认表空间的 oid 为 16385。--1.4 查找 oid 为 16385 的表空间 francs=> select oid,* from pg_tablespace where oid=16385;oid | spcname | spcowner | spcacl | spcoptions -------+------------+----------+-----------------------------------------+------------16385 | tbs_francs | 10 | {postgres=C/postgres,francs=C/postgres} | (1 row)备注:查了半天才查到表 test_ctime 的默认表空间为 tbs_francs,这里之所以饶这么大圈,是为了展示 postgresql 中的一些逻辑结构关系,如果自己对环境比较熟悉,可以直接定位到哪个表空间。--1.5 查询表空间 tbs_francs 对应的物理目录francs=> dbList of tablespacesName | Owner | Location ------------+----------+------------------------------------------pg_default | postgres |pg_global | postgres |tbs_francs | postgres | /database/1922/pgdata1/pg_tbs/tbs_francs(3 rows)备注:表空间 tbs_francs 的数据目录为 /database/1922/pgdata1/pg_tbs/tbs_francs。--1.6 进入数据目录[postgres@redhat6 16386]$ cd /database/1922/pgdata1/pg_tbs/tbs_francs[postgres@redhat6 tbs_francs]$ lltotal 4.0Kdrwx------. 4 postgres postgres 4.0K May 22 10:35 PG_9.2_201204301 [postgres@redhat6 tbs_francs]$ cd PG_9.2_201204301/[postgres@redhat6 PG_9.2_201204301]$ lltotal 16Kdrwx------. 2 postgres postgres 12K Jun 26 19:03 16386drwx------. 2 postgres postgres 4.0K May 22 10:37 pgsql_tmp备注:根据前面的步骤 1.3 查询的信息知道 16386 为数据库 francs 的 oid。 再根据步骤 1.2 的信息知道表 test_ctime 的 relfilenode 值为 24650--1.7 查找表 test_ctime 的数据文件[postgres@redhat6 16386]$ ll 24650-rw-------. 1 postgres postgres 512K Jun 26 18:57 24650备注:根据数据文件 24650 知道表的创建时间为 2012-06-26 18:57。但这种方法并不准确,因为表上的操作可能导致表重新生成文件,接着演示。--1.8 cluster 表francs=> cluster verbose test_ctime using test_ctime_pkey;INFO: clustering "francs.test_ctime" using index scan on "test_ctime_pkey"INFO: "test_ctime": found 0 removable, 10000 nonremovable row versions in 64 pagesDETAIL: 0 dead row versions cannot be removed yet.CPU 0.00s/0.03u sec elapsed 0.08 sec.CLUSTER francs=> select relname,relfilenode,reltablespace from pg_class where relname="test_ctime";relname | relfilenode | reltablespace ------------+-------------+---------------test_ctime | 24655 | 0(1 row) 备注:表 test_ctime 经过 cluster 操作后,重新生成了数据文件,文件号由原来的 24650 变成了 24655--1.9 系统上再次查询表数据文件[postgres@redhat6 16386]$ ll 24650-rw-------. 1 postgres postgres 0 Jun 26 19:19 24650 [postgres@redhat6 16386]$ ll 24655-rw-------. 1 postgres postgres 512K Jun 26 19:19 24655备注:显然新文件的时间 24655 并不是表 test_ctime 的初始创建时间。--1.10 vacuum full 表francs=> vacuum full test_ctime;VACUUMfrancs=> select relname,relfilenode,reltablespace from pg_class where relname="test_ctime";relname | relfilenode | reltablespace ------------+-------------+---------------test_ctime | 24659 | 0(1 row)备注: vacuum full 操作后,同样产生了新文件,新文件号为 24659--1.11 系统上再次查询表数据文件[postgres@redhat6 16386]$ ll 24659-rw-------. 1 postgres postgres 512K Jun 26 19:22 24659

求sqlserver 2008的安装程序

打开安装软件SQLEXPRWT_x86_CHS,选择Run program。2开始解压文件,请等待。3选择Installion(安装)->New SQL Server stand-alone installation or add features to an existing installation(全新 SQL Server 独立安装或向现有安装添加功能)。4Setup Support Rule(安装程序支持规则)。setup support rules Identify problems that might occur when you install SQL Server setup support files(安装程序支持规则可确定在你安装SQL Server安装程序支持时可能发生的错误). Failures must be corrected before setup can continue(必须更正所有失败,程序才能够继续)。5点击Show detail>>(显示详细信息)或者点击Hide details<<(隐藏详细信息)。然后点击OK。6Please wait while SQL Server 2008 setup process the current operation(请等待SQL server当前处理当前操作)。7Product key(产品秘钥)。specify the edition of SQL server 2008 to install(选择安装SQL server 2008版本)。此处均为灰色,无需操作,点击Next。8License Terms(许可条款).To install SQL Server 2008, you must accept the Microsoft software license Terms(若要安装SQL server2008,必须接受微软公司的软件许可条款)。选择I accept the license terms(我接受许可条款)。9Setup Support Files(安装程序支持文件)。Click Install to install setup support files,To install or update SQL Server 2008,the files are required(单击“安装”以安装安装程序支持文件,若需要安装或者更新SQL Server 2008,这些文件是必须的)。10Please wait while SQL Server 2008 setup process the current operation(请等待SQL server当前处理当前操作)。11Setup Support Rule(安装程序支持规则)。setup support rules Identify problems that might occur when you install SQL Server setup support files(安装程序支持规则可确定在你安装SQL Server安装程序支持时可能发生的错误). Failures must be corrected before setup can continue(必须更正所有失败,程序才能够继续)。点击Next。12Feature Select(功能选择),Select the express with advanced services features to install (选择安装的express with advanced services功能)。For clustered installations(对应群集安装),only Database Engine Services and Analysis services can be Clustered(只能群集化数据库引擎服务和分析服务)。此处选择Select all,然后点击Next。13Instance Configuration(实例配置)。Specify the name and instance ID for the SQL Server instance(指定SQL Server 实例的名称和实例ID)。此处选择Named Instance(命名实例):SQLExpress,Instance ID(实例ID):SQLExpress,Instance root directory(实例根目录):C:Program Files(x86)Microsoft SQL Server。点击Next。14Disk Space Requirements(磁盘空间要求)。Review the disk space summary for the SQL Server features you selected(查看你选择的SQL功能所需的磁盘空间的摘要)。当磁盘空间满足要求的情况下,点击Next。15Server Configuration(服务器配置)。Specify the configuration(指定配置)。按照如图所示,Serice选择SQL Server Database Engine,Account Name选择NT AUTHORITYSYSTEM,Password选择为空,startup Type选择Automatic。然后,点击Next。16Database Engine Configuration(数据库引擎配置)。Specify Database Engine authentication Security mode,administrators and data directories(指定数据引擎身份验证安全模式,管理员和数据目录)。按照如图,authentication mode选择Mixed Mode(SQL Server authentication and Windows authentication),Enter password选择输入abc@123,Confirm password选择输入abc@123。再点击Add Current User添加当前账号至Specify SQL Server administrators指定的管理员账号。最后点击Next。17Error and usage reporting(错误和使用情况报告)。Help Microsoft improve SQL Server features and services(帮助微软改善SQL Server功能和服务)。默认按照如图所示,进行选择。然后点击Next。18Installation Rules(安装规则)。Setup is running rules to determine if the installation process will be blocked(安装程序正在运行规则以确定是否将阻止安装过程).For more information(关于更多信息),click help(点击帮助)。我们可以点击Show details>>显示细节,也可以点击Hide details<<隐藏细节。然后点击Next。19Ready to Install(准备安装)。Verify the SQL Server2008 features to be installed(核实安装SQL Sever 2008的功能)。然后,选择Install。20Installation progress(安装进度)。此时,Next按钮是灰色的,一致等待直到安装完成。21Installation progress(安装进度)。Setup process complete(安装完成)。点击,Next。22Complete(完成)。Your SQL Server 2008 installation completed successfully(SQL Server 2008 安装以及完成)。点击,Close。END使用SQL Server 2008从安装目录,如默认的C:Program Files (x86)Microsoft SQL Server100ToolsBinnVSShellCommon7IDESsms.exe。服务器类型(server type):数据库引擎(Database Engine);服务器名称(Server name):MININT-MGKOJCOSQLEXPRESS(电脑数据库实例名)。身份验证(Authentication):SQL Server身份验证(SQL Server Authentication)。登录名(Login):sa。密码(Password):abc@123。√记住密码(Remember Password)。然后点击:“连接”。3登录成功SSMS(Microsoft SQL Server Management Studio)。

win8.1 sql server 2012 安装问题

错误安装SQL服务器数据库引擎服务实例的特征SQL Server的功能sql_engine_core_inst"是不支持的状态维修,因为它从来没有成功地配置。只有从成功安装特点可以修复。继续,删除指定的SQL服务器的特征。

如何用C++连接SQL数据库?

控制台程序也可以的 c++ 一般都用ado的方式连接sql server.

SQL Server2005习题答案(急急急)求大神帮助

二、简答题 (40分) 1. 设有如下关系表R: R(NO,NAME,SEX,AGE,CLASS) 主关键字是NO,其中NO为学号,NAME为姓名,SEX为性别,AGE为年龄,CLASS为班号。写出实现下列功能的SQL语句。 (每题5分,共5*4=20分) 1) 插入"95031"班学号为30,姓名为"郑和"的学生记录。 insert R (NO,NAME,CLASS) Values("30","郑和","95031") 2) 删除学号为20的学生记录。 delete from R where NO="20" 3) 统计每个班级的学生人数。 select CLASS,Count(CLASS) from R Group by CLASS 4) 查询所藏图书中,各个出版社的图书最高单价、平均单价和册数。 2. 设有图书管理数据库: 图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2)) 读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20)) 借阅(借书证号C(4),总编号C(6),借书日期D(8)) 其中C表示char类型;N表示numeric类型;D表示DateTime类型,写出以下要求的SQL语句:(每题5分,共5*4=20分) 1) 查询由"清华大学出版社"或"电子工业出版社"出版,并且单价不超出20元的书名。 select 书名 from 图书表 where 单价 < 20 and 出版单位 in ("清华大学出版社","电子工业出版社") 2) 查询共借出多少种图书。 3) 查询“CIE”单位借阅图书的读者的人数。 4) 查询书价在15元至25元(含15元和25元)之间的图书的书名、作者、书价和分类号,结果按分类号升序排序。

关于mysql数据库操作

(您回答的内容与别人回答的内容太相似了,我靠)3楼的SELECT*FROMstedentsWHEREc_noIN (SELECTc_noFROMclassesWHEREclass_adviser="Mike")

sql数据库的创建表

第一题不知道为什么百度说有不合适内容不给我提交。二、写出SQL语句:(各10分,共50分)1.selectdistinctno,namefromtablewhere2010-year(birth)>=50;2.selectno,namefromtablewherelivecity=workingcity;3.selectno,namefromtablewherecompany!="联华公司";4.createviewemp_femaleasselecte#,ename,c#,cname,salaryfromempgroupbye#;5.useempgoupdateempsetsalary=salary+0.5*salary;我无语了做了好几题都说有不适合发表的内容我都不知道哪些语句是不适合发表的--明明是数据库语句啊二、写出SQL语句:1、建立视图:社团负责人(编号,名称,负责人职工号,负责人姓名,负责人性别);2、建立视图:参加人情况(职工号,姓名,社团编号,社团名称,参加日期)3、查找参加唱歌队或篮球队的职工号和姓名。4、求参加人数最多的社会团体的名称和参加人数。5、把对社会团体和参加两个表的数据查看、插入和删除数据的权力赋给用户李平,并允许他将此权力授予其他用户createview社团负责人(编号char(7),名称char(8),负责人职工号char(8),负责人姓名char(8),负责人性别char(2));createview参加人情况(职工号,姓名,社团编号,社团名称,参加日期);select职工号,姓名where社团名称=‘唱歌队"or‘篮球队";selectcount(*)max(名称),max(社团名称)from参加人情况;grantselect,insert,deleteon社会团体and参加人数to李平withadminoption;

SQL Server选择题求助

大多都是B,你都选B基本可以及格

SQL2008中的value,query,Exist 是什么意思,顺便各自举个例子。

1. value的例子:INSERT INTO "表格名A" ("栏位1", "栏位2", ...)VALUES ("值1", "值2", ...)向表A的1, 2列插入一个值为("值1", "值2", ...)的行。value代表这一个行。2. query例子SELECT * FROM Book WHERE price > 100.00 ORDER BY title;从表Book中查找价格大于100的行返回,并按照title的降序排列。3.Exist例子本示例所示查询查找由位于以字母 B 开头的城市中的任一出版商出版的书名: USE pubs GO SELECT title FROM titles WHERE EXISTS (SELECT * FROM publishers WHERE pub_id = titles.pub_id AND city LIKE "B%") GO 使用 NOT EXISTS NOT EXISTS 的作用与 EXISTS 正相反。如果子查询没有返回行,则满足 NOT EXISTS 中的 WHERE 子句。本示例查找不出版商业书籍的出版商的名称: USE pubs GO SELECT pub_name FROM publishers WHERE NOT EXISTS (SELECT * FROM titles WHERE pub_id = publishers.pub_id AND type = "business") ORDER BY pub_name GO 不知道你能看懂不,呵呵

SQL在系统数据库pubs数据库中

SELECT t.title_id, t.title, a.au_id, a.au_lname, a.au_fname, t.pub_id, p.pub_nameFROM dbo.titles t INNER JOIN dbo.titleauthor ta ON t.title_id = ta.title_id INNER JOIN dbo.publishers p ON t.pub_id = p.pub_id INNER JOIN dbo.authors a ON ta.au_id = a.au_id------做法是建视图,加入4个表titles authors titleauthor publishers

带参数和不带参数的SQL语句有的什么区别

就是交互的功能吧,带参数的功能更大,要用面多一些,实现了交互的功能呢,现在我使用一个存储过程来说明问题吧。这里用的数据库pubs是sql自带的数据库,lz可以试试的。不带参数的,查询功能单一use pubs gocreate procedure pub_proc1as select pub_name,type,titlefrom titles,publisherswhere titles.pub_id=publishers.pub_idorder by pub_name,type带参数的为,可以根据参数的选择,调用,查询自己想要的结果,存储过程应用多use pubs gocreate procedure pub_proc2(@ type char(12))as select pub_name,type,titlefrom titles,publisherswhere titles.pub_id=publishers.pub_id and type like @typeorder by pub_name,type调用这个存储过程declare @t char(12)set @t="business" 这一行可以根据自己的需求选择查询,这里我选择查询类型为商业的进行查询exec pub_proc2 @t

SQL的内部连接和外部连接到底有什么区别啊?

内连接只显示匹配项,外连接无论是匹配与否均显示,同时还有左连接和右连接,都是显示匹配的问题。我说的显示是指包含在结果中。

sql查询语句大全

 创建数据库:Create DATABASE database-name

SQL的IMAGE长度该如何获取?

select * from 表名 where datalength(image类型列名)>1000;

一条查询的sql语句,它有个查询字段为list集合,该怎么弄

选择列表:是指出所查询列,它可以是由一组列名列表、星号、表达式、变量等构成。选择部分列,并指定它们的显示次序查询结果集合中数据的排列顺序和选择列表中所指定的列名排列顺序相同。更改列标题,在选择列表中,可重新指定列标题,列名也叫列标题。删除重复行,选择语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,将ALL设置为默认。在使用DISTINCT选项时,所有重复的数据行在SELECT返回的结果集合中可以保留一行。

如何写sql触发器禁止某一列出现null或空白?

如果是禁止表publishers某一列出现null或空白,用触发器有点奇怪,应该用对表设置栏位state不为空。IF(:new.stateisnull)

SQL数据库用子查询选择要修改的行时显示(0行受影响)

首先(pub_name="Algodata Infosystems")and(pub_name="New Moon Books")是不成立的,所以0行受影响,应该是or 或的关系可以简化update titlesset price=a.price*0.9from titles a,publishers bwhere a.pub_id=b.pub_id and b.pub_name="Algodata Infosystems" or b.pub_name="New Moon Books"

SQL内连接与外连接的区别

内连接取交集,外连接分左和右,左连接左边的全取,右连接右边的全取

sql 查询 语句

oralce 的可以处理,其它的不知道咋办.

菜鸟请教sql问题

不是有帮助的么?看看吧

求SQL查询语句

SQL常用语句(1)数据记录筛选: sql="select*from数据表where字段名=字段值orderby字段名[desc]" sql="select*from数据表where字段名like"%字段值%"orderby字段名[desc]" sql="selecttop10*from数据表where字段名orderby字段名[desc]" sql="select*from数据表where字段名in("值1","值2","值3")" sql="select*from数据表where字段名between值1and值2" (2)更新数据记录: sql="update数据表set字段名=字段值where条件表达式" sql="update数据表set字段1=值1,字段2=值2……字段n=值nwhere条件表达式" (3)删除数据记录: sql="deletefrom数据表where条件表达式" sql="deletefrom数据表"(将数据表所有记录删除) (4)添加数据记录: sql="insertinto数据表(字段1,字段2,字段3…)values(值1,值2,值3…)" sql="insertinto目标数据表select*from源数据表"(把源数据表的记录添加到目标数据表) (5)数据记录统计函数: AVG(字段名)得出一个表格栏平均值 COUNT(*|字段名)对数据行数的统计或对某一栏有值的数据行数统计 MAX(字段名)取得一个表格栏最大的值 MIN(字段名)取得一个表格栏最小的值 SUM(字段名)把数据栏的值相加 引用以上函数的方法: sql="selectsum(字段名)as别名from数据表where条件表达式" setrs=conn.excute(sql) 用rs("别名")获取统的计值,其它函数运用同上。 (5)数据表的建立和删除: CREATETABLE数据表名称(字段1类型1(长度),字段2类型2(长度)……) 例:CREATETABLEtab01 (namevarchar (50), datetimedefaultnow ()) DROPTABLE数据表名称(永久性删除一个数据表) 4.记录集对象的方法: rs.movenext将记录指针从当前的位置向下移一行 rs.moveprevious将记录指针从当前的位置向上移一行 rs.movefirst将记录指针移到数据表第一行 rs.movelast将记录指针移到数据表最后一行 rs.absoluteposition=N将记录指针移到数据表第N行 rs.absolutepage=N将记录指针移到第N页的第一行 rs.pagesize=N设置每页为N条记录 rs.pagecount根据pagesize的设置返回总页数 rs.recordcount返回记录总数 rs.bof返回记录指针是否超出数据表首端,true表示是,false为否 rs.eof返回记录指针是否超出数据表末端,true表示是,false为否 rs.delete删除当前记录,但记录指针不会向下移动 rs.addnew添加记录到数据表末端 rs.update更新数据表记录 SQL语句的添加、删除、修改虽然有如下很多种方法,但在使用过程中还是不够用,不知是否有高手把更多灵活的使用方法贡献出来? 添加、删除、修改使用db.Execute(Sql)命令执行操作 ╔----------------╗ ☆ 数据记录筛选 ☆ ╚----------------╝ 注意:单双引号的用法可能有误(没有测式) Sql = "Select Distinct 字段名 From 数据表" Distinct函数,查询数据库存表内不重复的记录 Sql = "Select Count(*) From 数据表 where 字段名1>#18:0:0# and 字段名1< #19:00# " count函数,查询数库表内有多少条记录,“字段名1”是指同一字段 例: set rs=conn.execute("select count(id) as idnum from news") response.write rs("idnum") sql="select * from 数据表 where 字段名 between 值1 and 值2" Sql="select * from 数据表 where 字段名 between #2003-8-10# and #2003-8-12#" 在日期类数值为2003-8-10 19:55:08 的字段里查找2003-8-10至2003-8-12的所有记录,而不管是几点几分。 select * from tb_name where datetime between #2003-8-10# and #2003-8-12# 字段里面的数据格式为:2003-8-10 19:55:08,通过sql查出2003-8-10至2003-8-12的所有纪录,而不管是几点几分。 Sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]" Sql="select * from 数据表 where 字段名 like "%字段值%" order by 字段名 [desc]" 模糊查询 Sql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]" 查找数据库中前10记录 Sql="select top n * form 数据表 order by newid()" 随机取出数据库中的若干条记录的方法 top n,n就是要取出的记录数 Sql="select * from 数据表 where 字段名 in ("值1","值2","值3")" ╔----------------╗ ☆ 添加数据记录 ☆ ╚----------------╝ sql="insert into 数据表 (字段1,字段2,字段3 …) valuess (值1,值2,值3 …)" sql="insert into 数据表 valuess (值1,值2,值3 …)" 不指定具体字段名表示将按照数据表中字段的顺序,依次添加 sql="insert into 目标数据表 select * from 源数据表" 把源数据表的记录添加到目标数据表 ╔----------------╗ ☆ 更新数据记录 ☆ ╚----------------╝ Sql="update 数据表 set 字段名=字段值 where 条件表达式" Sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式" Sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n " 没有条件则更新整个数据表中的指定字段值 ╔----------------╗ ☆ 删除数据记录 ☆ ╚----------------╝ Sql="delete from 数据表 where 条件表达式" Sql="delete from 数据表" 没有条件将删除数据表中所有记录) ╔--------------------╗ ☆ 数据记录统计函数 ☆ ╚--------------------╝ AVG(字段名) 得出一个表格栏平均值 COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计 MAX(字段名) 取得一个表格栏最大的值 MIN(字段名) 取得一个表格栏最小的值 SUM(字段名) 把数据栏的值相加 引用以上函数的方法: sql="select sum(字段名) as 别名 from 数据表 where 条件表达式" set rs=conn.excute(sql) 用 rs("别名") 获取统的计值,其它函数运用同上。 ╔----------------------╗ ☆ 数据表的建立和删除 ☆ ╚----------------------╝ CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… ) 例:CREATE TABLE tab01(name varchar(50),datetime default now()) DROP TABLE 数据表名称 (永久性删除一个数据表) ╔--------------------╗ ☆ 记录集对象的方法 ☆ ╚--------------------╝ rs.movenext 将记录指针从当前的位置向下移一行 rs.moveprevious 将记录指针从当前的位置向上移一行 rs.movefirst 将记录指针移到数据表第一行 rs.movelast 将记录指针移到数据表最后一行 rs.absoluteposition=N 将记录指针移到数据表第N行 rs.absolutepage=N 将记录指针移到第N页的第一行 rs.pagesize=N 设置每页为N条记录 rs.pagecount 根据 pagesize 的设置返回总页数 rs.recordcount 返回记录总数 rs.bof 返回记录指针是否超出数据表首端,true表示是,false为否 rs.eof 返回记录指针是否超出数据表末端,true表示是,false为否 rs.delete 删除当前记录,但记录指针不会向下移动 rs.addnew 添加记录到数据表末端 rs.update 更新数据表记录

sql *=运算符什么意思?

反了,*=是左外连接,=*是右外连接

sql 内连接和外连接的是什么意思

内连接又分为等值连接、自然连接和不等连接三种。 外连接分为左外连接(LEFT OUTER JOIN或LEFT JOIN)、右外连接(RIGHT OUTER JOIN或RIGHT JOIN)和全外连接(FULL OUTER JOIN或FULL JOIN)三种。与内连接不同的是,外连接不只列出与连接条件相匹配的行,而是列出左表(左外连接时)、右表(右外连接时)或两个表(全外连接时)中所有符合搜索条件的数据行。 交叉连接(CROSS JOIN)没有WHERE 子句,它返回连接表中所有数据行的笛卡尔积,其结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。 连接操作中的ON (join_condition) 子句指出连接条件,它由被连接表中的列和比较运算符、逻辑运算符等构成。 无论哪种连接都不能对text、ntext和image数据类型列进行直接连接,但可以对这三种列进行间接连接。例如: SELECT p1.pub_id,p2.pub_id,p1.pr_info FROM pub_info AS p1 INNER JOIN pub_info AS p2 ON DATALENGTH(p1.pr_info)=DATALENGTH(p2.pr_info) (一) 内连接 内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。内连接分三种: 1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。 2、不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些运算符包括>、>=、<=、<、!>、!& lt;和<>。 3、自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。 例,下面使用等值连接列出authors和publishers表中位于同一城市的作者和出版社: SELECT * FROM authors AS a INNER JOIN publishers AS p ON a.city=p.city 又如使用自然连接,在选择列表中删除authors 和publishers 表中重复列(city和state): SELECT a.*,p.pub_id,p.pub_name,p.country FROM authors AS a INNER JOIN publishers AS p ON a.city=p.city (二) 外连接 内连接时,返回查询结果集合中的仅是符合查询条件( WHERE 搜索条件或 HAVING 条件)和连接条件的行。而采用外连接时,它返回到查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左外连接时)、右表(右外连接时)或两个边接表(全外连接)中的所有数据行。 如下面使用左外连接将论坛内容和作者信息连接起来: SELECT a.*,b.* FROM luntan LEFT JOIN usertable as b ON a.username=b.username 下面使用全外连接将city表中的所有作者以及user表中的所有作者,以及他们所在的城市: SELECT a.*,b.* FROM city as a FULL OUTER JOIN user as b ON a.username=b.username (三) 交叉连接 交叉连接不带WHERE 子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。 例,titles表中有6类图书,而publishers表中有8家出版社,则下列交叉连接检索到的记录数将等于6*8=48 行。 SELECT type,pub_name FROM titles CROSS JOIN publishers ORDER BY type 介绍了表连接,更确切的说是inner joins内连接. 内连接仅选出两张表中互相匹配的记录.因此,这会导致有时我们需要的记录没有包含进来。 为更好的理解这个概念,我们介绍两个表作演示。苏格兰议会中的政党表(party)和议员表 (msp)。 party(Code,Name,Leader) Code: 政党代码 Name: 政党名称 Leader: 政党领袖 msp(Name,Party,Constituency) Name: 议员名 Party: 议员所在政党代码 Constituency: 选区

sql 内连接和外连接的是什么意思?

内连接又分为等值连接、自然连接和不等连接三种。 x0dx0ax0dx0a外连接分为左外连接(LEFT OUTER JOIN或LEFT JOIN)、右外连接(RIGHT OUTER JOIN或RIGHT JOIN)和全外连接(FULL OUTER JOIN或FULL JOIN)三种。与内连接不同的是,外连接不只列出与连接条件相匹配的行,而是列出左表(左外连接时)、右表(右外连接时)或两个表(全外连接时)中所有符合搜索条件的数据行。 x0dx0ax0dx0a交叉连接(CROSS JOIN)没有WHERE 子句,它返回连接表中所有数据行的笛卡尔积,其结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。 x0dx0ax0dx0a连接操作中的ON (join_condition) 子句指出连接条件,它由被连接表中的列和比较运算符、逻辑运算符等构成。 x0dx0ax0dx0a无论哪种连接都不能对text、ntext和image数据类型列进行直接连接,但可以对这三种列进行间接连接。例如: x0dx0ax0dx0aSELECT p1.pub_id,p2.pub_id,p1.pr_info x0dx0aFROM pub_info AS p1 INNER JOIN pub_info AS p2 x0dx0aON DATALENGTH(p1.pr_info)=DATALENGTH(p2.pr_info) x0dx0ax0dx0a(一) 内连接 x0dx0ax0dx0a内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。内连接分三种: x0dx0ax0dx0a1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。 x0dx0ax0dx0a2、不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些运算符包括>、>=、<=、<、!>、!& lt;和<>。 x0dx0ax0dx0a3、自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。 x0dx0ax0dx0a例,下面使用等值连接列出authors和publishers表中位于同一城市的作者和出版社: x0dx0ax0dx0aSELECT * x0dx0aFROM authors AS a INNER JOIN publishers AS p x0dx0aON a.city=p.city x0dx0ax0dx0a又如使用自然连接,在选择列表中删除authors 和publishers 表中重复列(city和state): x0dx0ax0dx0aSELECT a.*,p.pub_id,p.pub_name,p.country x0dx0aFROM authors AS a INNER JOIN publishers AS p x0dx0aON a.city=p.city x0dx0ax0dx0a(二) 外连接 x0dx0ax0dx0a内连接时,返回查询结果集合中的仅是符合查询条件( WHERE 搜索条件或 HAVING 条件)和连接条件的行。而采用外连接时,它返回到查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左外连接时)、右表(右外连接时)或两个边接表(全外连接)中的所有数据行。 x0dx0ax0dx0a如下面使用左外连接将论坛内容和作者信息连接起来: x0dx0ax0dx0aSELECT a.*,b.* FROM luntan LEFT JOIN usertable as b x0dx0aON a.username=b.username x0dx0ax0dx0a下面使用全外连接将city表中的所有作者以及user表中的所有作者,以及他们所在的城市: x0dx0ax0dx0aSELECT a.*,b.* x0dx0aFROM city as a FULL OUTER JOIN user as b x0dx0aON a.username=b.username x0dx0ax0dx0a(三) 交叉连接 x0dx0ax0dx0a交叉连接不带WHERE 子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。 x0dx0ax0dx0a例,titles表中有6类图书,而publishers表中有8家出版社,则下列交叉连接检索到的记录数将等于6*8=48 行。 x0dx0ax0dx0aSELECT type,pub_name x0dx0aFROM titles CROSS JOIN publishers x0dx0aORDER BY type x0dx0ax0dx0a介绍了表连接,更确切的说是inner joins内连接. x0dx0a内连接仅选出两张表中互相匹配的记录.因此,这会导致有时我们需要的记录没有包含进来。 x0dx0a为更好的理解这个概念,我们介绍两个表作演示。苏格兰议会中的政党表(party)和议员表 (msp)。 x0dx0ax0dx0aparty(Code,Name,Leader) x0dx0aCode: 政党代码 x0dx0aName: 政党名称 x0dx0aLeader: 政党领袖 x0dx0ax0dx0amsp(Name,Party,Constituency) x0dx0aName: 议员名 x0dx0aParty: 议员所在政党代码 x0dx0aConstituency: 选区

SQL中的内连接外连接和交叉连接是什么意思?

SQL查询语句

Select s_xzqhdm,S_grbh,S_hylb,N_czfdbl,S_xb,S_mz,

SQl语法求高人指点

exec("select @maxsub = sub_flag from "+ @tabelname +"where bet_company_id = "+@bet_company_id+" and match_id = "+@match_id+" and ah_flag = "+@ah_flag)--这样执行动态Sql,@maxsub这个值不能带回来的,并且会提示变量未定义,改为:Declare @Sql nVarchar(4000)Set @Sql="select @maxsub = sub_flag from "+ @tabelname +" where bet_company_id = @bet_company_id and match_id = @match_id and ah_flag = @ah_flag"Exec sp_executeSql @Sql ,N"@bet_company_id smallint,@match_id int,@ah_flag varchar(4),@maxsub varchar(4) output",@bet_company_id,@match_id,@ah_flag,@maxsub output--或Declare @Sql nVarchar(4000)Set @Sql="select @maxsub = sub_flag from "+ @tabelname +" where bet_company_id = "+ @bet_company_id +" and match_id = "+ @match_id+ " and ah_flag = """+@ah_flag+""""Exec sp_executeSql @Sql ,N"@maxsub varchar(4) output",@maxsub output--总之要使用sp_executeSql这种方式才能得到返回值

SQL中的内连接外连接和交叉连接是什么意思?

内连接又分为等值连接、自然连接和不等连接三种。外连接分为左外连接(LEFTOUTERJOIN或LEFTJOIN)、右外连接(RIGHTOUTERJOIN或RIGHTJOIN)和全外连接(FULLOUTERJOIN或FULLJOIN)三种。与内连接不同的是,外连接不只列出与连接条件相匹配的行,而是列出左表(左外连接时)、右表(右外连接时)或两个表(全外连接时)中所有符合搜索条件的数据行。交叉连接(CROSSJOIN)没有WHERE子句,它返回连接表中所有数据行的笛卡尔积,其结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。连接操作中的ON(join_condition)子句指出连接条件,它由被连接表中的列和比较运算符、逻辑运算符等构成。无论哪种连接都不能对text、ntext和image数据类型列进行直接连接,但可以对这三种列进行间接连接。例如:SELECTp1.pub_id,p2.pub_id,p1.pr_infoFROMpub_infoASp1INNERJOINpub_infoASp2ONDATALENGTH(p1.pr_info)=DATALENGTH(p2.pr_info)(一)内连接内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。内连接分三种:1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。2、不等连接:在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些运算符包括>、>=、<=、<、!>、!&lt;和<>。3、自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。例,下面使用等值连接列出authors和publishers表中位于同一城市的作者和出版社:SELECT*FROMauthorsASaINNERJOINpublishersASpONa.city=p.city又如使用自然连接,在选择列表中删除authors和publishers表中重复列(city和state):SELECTa.*,p.pub_id,p.pub_name,p.countryFROMauthorsASaINNERJOINpublishersASpONa.city=p.city(二)外连接内连接时,返回查询结果集合中的仅是符合查询条件(WHERE搜索条件或HAVING条件)和连接条件的行。而采用外连接时,它返回到查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左外连接时)、右表(右外连接时)或两个边接表(全外连接)中的所有数据行。如下面使用左外连接将论坛内容和作者信息连接起来:SELECTa.*,b.*FROMluntanLEFTJOINusertableasbONa.username=b.username下面使用全外连接将city表中的所有作者以及user表中的所有作者,以及他们所在的城市:SELECTa.*,b.*FROMcityasaFULLOUTERJOINuserasbONa.username=b.username(三)交叉连接交叉连接不带WHERE子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。例,titles表中有6类图书,而publishers表中有8家出版社,则下列交叉连接检索到的记录数将等于6*8=48行。SELECTtype,pub_nameFROMtitlesCROSSJOINpublishersORDERBYtype介绍了表连接,更确切的说是innerjoins内连接.内连接仅选出两张表中互相匹配的记录.因此,这会导致有时我们需要的记录没有包含进来。为更好的理解这个概念,我们介绍两个表作演示。苏格兰议会中的政党表(party)和议员表(msp)。party(Code,Name,Leader)Code:政党代码Name:政党名称Leader:政党领袖msp(Name,Party,Constituency)Name:议员名Party:议员所在政党代码Constituency:选区

求多个表交集的SQL语句是什么呀???

不明白,是指两个表的相同记录的交,还是主键相同的交,还是其他情况?得说明白了

sql 内连接和外连接的是什么意思?

内连接又分为等值连接、自然连接和不等连接三种。 外连接分为左外连接(LEFT OUTER JOIN或LEFT JOIN)、右外连接(RIGHT OUTER JOIN或RIGHT JOIN)和全外连接(FULL OUTER JOIN或FULL JOIN)三种。与内连接不同的是,外连接不只列出与连接条件相匹配的行,而是列出左表(左外连接时)、右表(右外连接时)或两个表(全外连接时)中所有符合搜索条件的数据行。 交叉连接(CROSS JOIN)没有WHERE 子句,它返回连接表中所有数据行的笛卡尔积,其结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。 连接操作中的ON (join_condition) 子句指出连接条件,它由被连接表中的列和比较运算符、逻辑运算符等构成。 无论哪种连接都不能对text、ntext和image数据类型列进行直接连接,但可以对这三种列进行间接连接。例如: SELECT p1.pub_id,p2.pub_id,p1.pr_info FROM pub_info AS p1 INNER JOIN pub_info AS p2 ON DATALENGTH(p1.pr_info)=DATALENGTH(p2.pr_info) (一) 内连接 内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。内连接分三种: 1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。 2、不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些运算符包括>、>=、<=、<、!>、!& lt;和<>。 3、自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。 例,下面使用等值连接列出authors和publishers表中位于同一城市的作者和出版社: SELECT * FROM authors AS a INNER JOIN publishers AS p ON a.city=p.city 又如使用自然连接,在选择列表中删除authors 和publishers 表中重复列(city和state): SELECT a.*,p.pub_id,p.pub_name,p.country FROM authors AS a INNER JOIN publishers AS p ON a.city=p.city (二) 外连接 内连接时,返回查询结果集合中的仅是符合查询条件( WHERE 搜索条件或 HAVING 条件)和连接条件的行。而采用外连接时,它返回到查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左外连接时)、右表(右外连接时)或两个边接表(全外连接)中的所有数据行。 如下面使用左外连接将论坛内容和作者信息连接起来: SELECT a.*,b.* FROM luntan LEFT JOIN usertable as b ON a.username=b.username 下面使用全外连接将city表中的所有作者以及user表中的所有作者,以及他们所在的城市: SELECT a.*,b.* FROM city as a FULL OUTER JOIN user as b ON a.username=b.username (三) 交叉连接 交叉连接不带WHERE 子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。 例,titles表中有6类图书,而publishers表中有8家出版社,则下列交叉连接检索到的记录数将等于6*8=48 行。 SELECT type,pub_name FROM titles CROSS JOIN publishers ORDER BY type 介绍了表连接,更确切的说是inner joins内连接. 内连接仅选出两张表中互相匹配的记录.因此,这会导致有时我们需要的记录没有包含进来。 为更好的理解这个概念,我们介绍两个表作演示。苏格兰议会中的政党表(party)和议员表 (msp)。 party(Code,Name,Leader) Code: 政党代码 Name: 政党名称 Leader: 政党领袖 msp(Name,Party,Constituency) Name: 议员名 Party: 议员所在政党代码 Constituency: 选区

plsql能执行,java报错: 表或视图不存在

select 语句 from 关键字后面的表名,在表名之前加存在此表的数据库名字。例如:select businessunit_id,businessunit_name from scott.dm_d_mark_bizunit_risk group by businessunit_id,businessunit_name order by businessunit_id scott.dm_d_mark_bizunit_risk 指的就是 scott 用户下的表。

mySQL的syntax error

alter table `indexnumber` add column `index` varchar(20) 出错是因为 index 是关键字 表示索引 所以用作字段名的是后 要加上 `符号

SQL左右连接中的on and和on where的区别

on and 是连接条件同时满足 例如 连接条件是A表的X列=B表的X列,且A表的Y列也要满足=B表的Y列on where 是ON后面的那一个条件满足后,对满足where条件的行进行筛选

SQL左右连接中的on and和on where的区别

原先一直对SQL左右连接中的on and和on where的区别不是太了解,直到在网上看到了下面这段话才豁然开朗。在使用left join时,on and和on where条件的区别如下: 1、on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。 2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉,on后的条件用来生成左右表关联的临时表,where后的条件对临时表中的记录进行过滤。

[FOR BROWSE]在SQL中的作用

Visual FoxPro 6.0 关系数据库管理系统是新一代数据库管理系统的杰出代表,以它强大的性能、完整而又丰富的工具、超高速的速度、极其友好的界面,以及完备的兼容性等特点,吸引众多的国内外用户,倍受广大用户的欢迎 Visual FoxPro 6.0 及它的中文版,是可运行于Windows 95和Windows NT平台的数据库开发系统,它不仅可以简化数据库管理,而且能使应用程序的开发流程更为合理。 Visual FoxPro 6.0 使组织数据、定义数据库规则和建立应用程序等工作变得简单易行。用户利用可视化的设计工具和向导,可以快速创建表单,查询和打印报表。

在VB中使用水晶报表,如何利用SQL语句改变报表的数据源?

首先引用Crystal Reports 9 ActiveX Designer Run Time Library再添加Crystal Repotr View Control 9控件在工程资源管理器中右键--添加--Crystal Reports 9 新建一个Crystal Reports9报表设置数据源后将要显示的字段加入报表内。窗体代码部分:Dim m_Report As New CrystalReport1 "(这个CrystalReport1是你建立的报表的名称)Dim m_Connection As ADODB.Connection "(建立一个ADO连接)Dim adoRS As ADODB.Recordset Private Sub Form_Load() Dim SQL As String Dim strConnect As String " Create and bind the ADO Recordset object Set m_Connection = New ADODB.Connection Set adoRS = New ADODB.Recordset " Open the connection strConnect = "你的数据库连接字符串" m_Connection.Open strConnect SQL = "查询语句" adoRS.Open SQL, m_Connection, adOpenDynamic, adLockBatchOptimistic m_Report.Database.SetDataSource adoRS"(动态设置报表数据源) Screen.MousePointer = vbHourglass CRViewer1.ReportSource = m_Report CRViewer1.ViewReport "(显示报表) Screen.MousePointer = vbDefaultEnd Sub此代码在VB6+SP5+Windows2000 Server下调试通过以上代码参考水晶报表9中文版

如何在水晶报表中实现SQL 查询

给你一个例子 基本可以传递参数 到水晶报表 可以查询 并且可以将参数字段显示为你需要的值 以前采用vb6做的动态传递水晶报表参数字段,存在一个缺陷就是在设计水晶报表的时候没有按照注释的那里写的(直接拖参数字段到预览的界面)就不会出现水晶报表提示要输入离散值的消息框。其实也不完全是这样的,有时我按照这种方式操作仍然有这个输入离散值消息框的提示,具体是什么原因造成的还不是很清楚,估计开发水晶报表的明白内部机制的原因,我只想能顺畅的使用就可以了,可出现不相关的输入提示就直接影响到客户使用程序。 我在做DotNet2005时用的是水晶报表10,在传递参数后。有加入了设置显示报表控件的参数对象集合为传递的参数值【CRViewer91.ParameterFieldInfo = m_Report.ParameterFields 】运行程序就没有这个输入离散值的提示。vb6使用水晶报表9.0不知道加入这个设置是否能解决问题。暂时我还没有条件测试主要是计算机上没有安装水晶报表9,不过也是一种解决这个问题的办法。先在这里保存起来,待有条件了测试下,没有这条语句可能在设计报表rpt文件的时候和程序动态调用可就要来回的测试了 。 哈~~~~~~Private Sub DisplayReport1()"" ==========================================================" 开发人员:段利庆" 编写时间:2008-09-01" 过程名称:DisplayReport" 参数说明:" 功能说明:动态载入水晶报表文件(*.rpt)显示打印预览"" 其他说明:程序采用的是Crystal Reports 9.1版本" 工程引用:Crystal Reports 9 ActiveX Designer Design and Runtime Library" 控件:CRViewer91"""" =========================================================="*中央错误处理On Error GoTo PROC_ERR Dim m_Application As New CRAXDDRT.Application Dim m_Report As CRAXDDRT.ReportDim strSQL As String strSQL = "SELECT * FROM 视图_收费_计量仪表 " Dim strRptPath As String strRptPath = App.Path & "Crystal_RPT_ParaSell_Meter.rpt" Debug.Print "strRptPath:" & strRptPath Set m_Report = Nothing Set m_Report = m_Application.OpenReport(strRptPath, 1) "*防止弹出水晶报表数据库登录对话框 m_Report.Database.Tables.Item(1).TestConnectivity m_Report.Database.Tables.Item(1).ConnectBufferString = objdata.ConnectionString m_Report.SQLQueryString = strSQL "**************************************************** "*参数字段传递参数 "* "*搞了2天了终于找到原因了 08-09-03 "*1.在新建一个参数字段,一定要直接拖放到预览里面 "* 否则拖到设计里面就要弹出输入离散值的消息框 "* "*2.GetItemByName("MyParaT") 参数是参数字段的名称 "* m_Report.DiscardSavedData m_Report.ParameterFields.GetItemByName("MyParaT").ClearCurrentValueAndRange m_Report.ParameterFields.GetItemByName("MyParaT").AddCurrentValue (Text1.Text) m_Report.ParameterFields.GetItemByName("k1").ClearCurrentValueAndRange m_Report.ParameterFields.GetItemByName("k1").AddCurrentValue (Text1.Text) m_Report.ParameterFields.GetItemByName("k2").ClearCurrentValueAndRange m_Report.ParameterFields.GetItemByName("k2").AddCurrentValue (Text1.Text) "*----------------------------------------------------- "* 以下这句是否能彻底解决弹出离散值输入框问题 "*是根据vb2005 Crystal Report10 顺畅的处理结果得出的 "*2009-08-26 "CRViewer91.ParameterFieldInfo = m_Report.ParameterFields "*传递的对象 用下面的语句 "*Set CRViewer91.ParameterFieldInfo = m_Report.ParameterFields "*----------------------------------------------------- "****************************************************CRViewer91.DisplayGroupTree = False CRViewer91.ReportSource = m_Report CRViewer91.Zoom 1 CRViewer91.ViewReport"*结束子程序PROC_EXIT: Exit Sub"*错误处理,显示出错信息PROC_ERR: MsgBox " ErrNumber: " & Err.Number & vbCrLf & _ "ErrDescription: " & Err.Description & vbCrLf & _ " Module: " & Me.Caption & vbCrLf & _ " Procedure: " & "DisplayReport" GoTo PROC_EXITEnd Sub

mysql 如何授予某个用户reload权限

mysql 如何授予某个用户reload权限?0 reload 是 administrative 级的权限,即 server administration;这类权限包括:CREATE USER, PROCESS, RELOAD, REPLICATION CLIENT, REPLICATION SLAVE, SHOW DATABASES, SHUTDOWN, SUPER1 这类权限的授权不是针对某个数据库的,因此须使用on *.* 来进行:grant reload on *.* to "test"@"localhost";。创了一个在aware_db库下只有select权限的用户,现在想用这个用户对aware_db下的device_table表做flush但提示需要reload权限,mysql> flush table aware_db.device_table;ERROR 1227 (42000): Access denied; you need the RELOAD privilege for this operation切换到root用户授予该用户reload权限却失败了求大神帮忙 谢啦!mysql> grant RELOAD on aware_db.* to yikuaiwu@"%"identified by "yikuaiwu";ERROR 1221 (HY000): Incorrect usage of DB GRANT and GLOBAL PRIVILEGES

怎么在Crystal Report动态改变.rpt里面数据库的SQL语句

在C#中,使用Crystal Report制作报表时,您可以动态指定数据源和及时更新报表内容。您可以通过DataSet的方式来访问后台数据库,这样您需要手动编码来提取数据,填充DataSet,并传递到报表文件中。在这里,您可以动态指定报表数据源。下面提供一些基本的步骤,关于更详细的信息,请参考下面的链接:1.Solution Explorer/Add/Add New Item…/DataSet,按照提示建立DataSet;2.Solution Explorer/Add/Add New Item…/Crystal Report,在建立数据库链接时(Database Expert窗口),请选择<Project Data>,利用上一步建立的DataSet。如下提供一段示例代码供您参考(用来建立数据库链接,填充DataSet,并绑定到报表文件中):Private Sub BindReport()SqlConnection myConnection = New SqlConnection();myConnection.ConnectionString = "Server=localhost;database=pubs;uid=sa;pwd=sa";SqlCommand myCommand = New SqlCommand();myCommand.Connection = myConnection;//在这里根据您的情况,动态指定设定SQL语句myCommand.CommandText = "Select * from Stores";myCommand.CommandType = CommandType.Text;SqlDataAdapter myDA = New SqlDataAdapter();myDA.SelectCommand = myCommand;//这里的Dataset1为上面创建报表时建立Dataset1 myDS =New Dataset1();myDA.Fill(myDS, "Stores");CrystalReport1 oRpt= New CrystalReport1();oRpt.SetDataSource(myDS);CrystalReportViewer1.ReportSource = oRpt;End Sub

MySQL中的while循环和repeat循环的区别

MySQL中的while循环和repeat循环的区别1、while是满足条件才执行循环,repeat是满足条件退出循环;2、while在首次循环执行之前就判断条件,最少执行0次,repeat是在首次执行循环之后才判断条件,循环至少执行一次。

SQL语句replace替换问题

 在使用iwms系统的过程中,我们会经常遇到数据内容的替换操作。在告诉大家如何替换数据内容之前,我建议大家先了解一下SQLServer数据库的数据存储类型:  SQLServer数据类型:  以上是数据库的基础知识,是做网站的朋友都应该知道的内容(无论你使用什么cms),所以建议大家都耐心看一下。  数据替换一般都发生在字符串数据字段中,除了ntext类型字段以外的其他字符串数据字段都可以使用以下的sql语句进行替换:  update[swf_Upload]set[Dir]=replace([Dir],"200901/14","200901/15")  update[swf_Content]set[Description]=  replace([Description],"200901/14","200901/15")  update[swf_Content_01]set[content]=  replace(convert(varchar(4000),[content]),"200901/14","200901/15")  UPDATE[数据表名]SET[字段名]=REPLACE([字段名],"老字符串","新字符串")  比如,替换iwms文章数据表(iwms_news)中的标题字段(title)的部分内容,我们应该这么写:  UPDATE[iwms_news]SET[title]=REPLACE([title],"老字符串","新字符串")  上面的sql语句在iwms后台的sql执行里面可以直接执行,基本上可以搞定所有的替换操作,但是由于ntext数据长度的原因,这一方法对ntext类型字段无效。那我们该用什么方法替换ntext类型字段的内容呢?方法有两种:  一是类型转换,将ntext类型转换为varchar类型,然后再用replace。适合于单页内容最大长度<4000的文章。  update[数据表名]set[字段名]=replace(convert(varchar(4000),[字段名]),"老字符串","新字符串")  比如,替换iwms文章数据表(iwms_news)中的标题字段(content,ntext类型字段)的部分内容,我们应该这么写:  updateiwms_newsset[content]=replace(convert(varchar(4000),[content]),"老字符串","新字符串")  二是SQLServer存储过程  declare@ptrvarbinary(16)  declare@artIdint  declare@Positionint,@lenint  set@len=datalength("老字符串")  declarewux_CursorscrollCursor  for  selecttextptr([字段名]),[key字段名]from[数据表名]  forreadonly  openwux_Cursor  fetchnextfromwux_Cursorinto@ptr,@artId  while@@fetch_status=0  begin  select@Position=patindex("%老字符串%",[字段名])from[数据表名]where[key字段名]=@artId  while@Position>0  begin  set@Position=@Position-1

SQL语句replace替换问题

update dob.a set text = REPLACE(text, "我", "*")

sql删除语句,能提示信息删除成功,但数据库中没删除,表名net_new字段id

mysql_query这个方法里面怎么写的,按字面意思是查询的吧

sql server replace 函数使用方法

正数后面有+号吗

SQL语句replace怎么替换?

Replace("字符串","要被替代的字符串","替代后的字符串")1、sqlreplaceinto用法详细说明REPLACE的运行与INSERT很相似。只有一点例外,假如表中的一个旧记录与一个用于PRIMARYKEY或一个UNIQUE索引的新记录具有相同的值,则在新记录被插入之前,旧记录被删除。 2、注意,除非表有一个PRIMARYKEY或UNIQUE索引,否则,使用一个REPLACE语句没有意义。该语句会与INSERT相同,因为没有索引被用于确定是否新行复制了其它的行。3、所有列的值均取自在REPLACE语句中被指定的值。所有缺失的列被设置为各自的默认值,这和INSERT一样。您不能从当前行中引用值,也不能在新行中使用值。如果您使用一个例如“SETcol_name=col_name+1”的赋值,则对位于右侧的列名称的引用会被作DEFAULT(col_name)处理。因此,该赋值相当于SETcol_name=DEFAULT(col_name)+1。为了能够使用REPLACE,必须同时拥有表的INSERT和DELETE权限。
 首页 上一页  33 34 35 36 37 38 39 40 41  下一页  尾页