sql执行
Ⅰ 如何执行sql语句
在你抄安装完sql
2000
之后
开始->所有程序->Microsoft
Sql
Server->查询分析器
输入相应的数据库袭名称(如果忘了百
可以进入
开始->所有程序->Microsoft
Sql
Server->服务器管理度查看)问
用户名
密码就可以进入
在这里可以进行sql语言的答编译
和
执行
Ⅱ 如何执行sql脚本
sql脚本要在dbms里执行
比如oracle,你可以在sqlplus里,或pl/sql developer里执行
直接复制sql语句过去,回车就好了(注意带分号)
如果你的sql是一个sql文件(*.sql)
可以使用start或@ 然后跟文件的路径(c:/a.sql) 回车
Ⅲ SQL语句到底是怎么执行的
下面先给出上面的SQL语句的执行顺序,然后进行讲解:
(8)select
(9)distinct
(11)top 1
(6) Table1.id,COUNT(Table1.name) as nameCount
(1)from Table1
(3)inner join Table2
(2)on Table1.id=Table2.id
(4)where Table1.id<4
(5)group by Table1.id
(7)having Table1.id<3
(10)order by Table1.id desc
红色序号给出了执行的顺序:
(1)from:对Table1和Table2执行笛卡尔积,也就是两个表的行的各种组合,共5*5=25行,生成虚拟表VT1
(2)on:选择VT1中的那些Table1.id=Table2.id的所有行,生成虚拟表VT2。
(3)inner join:这里是内部连接,直接就是VT2,如果是outer join,如left join、right join、full join,那么还需要按照外部连接的规则,把VT1中没有匹配的行添加到VT2,生成VT3.
(4)where:选出VT3中Table1.id<4的表格,给虚拟表VT4.
(5)group by:按照Table1.id进行分组。
(6)COUNT:执行聚合函数,选出对应Table1.id的行数,生成的结果给虚拟表VT5
(7)having:选择VT5中Table1.id<3的所有结果,给虚拟表VT6
(8)select:选择VT6中相应的列,给虚拟表VT7
(9)distinct:将VT7中重复的行去除,生成VT8
(10)order by:将VT8的结果按照Table1.id进行排序,这里没有生成一个新的表VT9,而是生成游标VC9。
(11)top:从游标VC9的开始处选择指定的行数,这里是1行,生成虚拟表VT10.
经过上面的过程,最终的SQL语句将VT10返回给用户使用。
所以以后再写SQL语句的时候,可以按照上面的顺序写SQL语句了,读SQL语句也可以按照上面的顺序去读,做到心里明白。
Ⅳ 怎么执行SQL语句
击连接我们的本地数据库,如下图所示
Ⅳ mysql 怎么执行sql文件
右键以文本文件的形式打开,里面是记录着可以在mysql里面执行的代码。
要执行sql文件里面的代码,需要打开mysql数据库去执行,新手推荐用软件的形式执行此sql,软件如navicat,sqlyog等。
打开软件并且配置连接数据库的信息后打开,然后创建一个数据库,之后右键数据库选中执行sql,接着选择要执行的sql文件,按提示一步一步走下去即可。
老手推荐使用cmd指令来执行sql,因为速度比较快,首先也是连接上数据库,创建并选择好数据库:
mysql>use 数据库名;
mysql>set names utf8; --设置传输编码,避免中文乱码
mysql>source d:/xxx.sql; -- source 文件路径
就这么简单, 然后就等着sql执行完毕即可.
Ⅵ linux 怎么执行sql
要看你有没有设数据库bin目录的环境变量 如果设置了就直接可以用,如果没设置你就:
1.切换工作目录到mysql(或其他数据库产品)下,用root用户执行 sudo bin/mysqld_safe --user root &(这个符号表示从后台启动)
2.然后再切换到bin目录下工作 执行./mysql -u 用户名 -p
3.终端会提示你输入密码
Ⅶ SQL怎么运行啊
程序-> sql->企业管理器/查询分析器
Ⅷ 如何直接执行SQL语句
1、ExecuteQuery方法
看命名,我们很容易联想到ADO.NET里熟悉的Command的ExecuteNonQuery方法,但是VS的智能提示告诉我们这个方法返回的是一个泛型集合,应该“所思非所得”。下面通过一个简单方法,验证我们的猜想(数据库设计可以参考这一篇):
/// <summary>
/// 直接执行sql语句,获取总人数
/// </summary>
/// <returns></returns>
publicint GetTotalCount()
{
string strSql = "SELECT COUNT(0) FROM Person(NOLOCK)";
var query = dataContext.ExecuteQuery<int>(strSql);
int result = query.First<int>();
Console.WriteLine();
Console.WriteLine("total count:{0}", result);
return result;
}
调试的时候,通过IntelliTrace跟踪到:
毫无疑问,上面的图片说明最初的想法是不正确的,”ADO.NET:执行Reader…”云云,让我们更加坚信它实际执行的应该是ExecuteReader方法。当然最简单的方法是直接查看它的方法说明:
// 摘要:
// 直接对数据库执行 SQL 查询并返回对象。
//
// 参数:
// query:
// 要执行的 SQL 查询。
//
// parameters:
// 要传递给命令的参数数组。注意下面的行为:如果数组中的对象的数目小于命令字符串中已标识的最大数,
则会引发异常。如果数组包含未在命令字符串中引用的对象,则不会引发异常。如果某参数为
// null,则该参数会转换为 DBNull.Value。
//
// 类型参数:
// TResult:
// 返回的集合中的元素的类型。
//
// 返回结果:
// 由查询返回的对象的集合。
public IEnumerable<TResult> ExecuteQuery<TResult>(string query, paramsobject[] parameters);
ExecuteQuery方法还有一个非泛型方法:
//
// 摘要:
// 直接对数据库执行 SQL 查询。
//
// 参数:
// elementType:
//
要返回的 System.Collections.Generic.IEnumerable<T>
的类型。使查询结果中的列与对象中的字段或属性相匹配的算法如下所示:如果字段或属性映射到特定列名称,则结果集中应包含该列名称。如果未映射字段或属性,则结果集中应包含其名称与该字段或属性相同的列。通过先查找区分大小写的匹配来执行比较。如果未找到匹配项,则会继续搜索不区分大小写的匹配项。如果同时满足下列所有条件,则该查询应当返回(除延迟加载的对象外的)对象的所有跟踪的字段和属性:T
// 是由 System.Data.Linq.DataContext 显式跟踪的实体。
System.Data.Linq.DataContext.ObjectTrackingEnabled
// 为 true。实体具有主键。否则会引发异常。
//
// query:
// 要执行的 SQL 查询。
//
// parameters:
// 要传递给命令的参数数组。注意下面的行为:如果数组中的对象的数目小于命令字符串中已标识的最大数,
则会引发异常。如果数组包含未在命令字符串中引用的对象,则不会引发异常。如果某参数为
// null,则该参数会转换为 DBNull.Value。
//
// 返回结果:
// 由查询返回的对象的 System.Collections.Generic.IEnumerable<T> 集合。
public IEnumerable ExecuteQuery(Type elementType, string query, paramsobject[] parameters);
看它的参数需要多传递一个elementType,明显不如泛型方法简洁。
2、ExecuteCommand方法
同样道理,这个方法立刻让我们联想到(世界没有联想,生活将会怎样?),联想到,等等,不知联想到什么。然后我们看一下方法使用说明:
//
// 摘要:
// 直接对数据库执行 SQL 命令。
//
// 参数:
// command:
// 要执行的 SQL 命令。
//
// parameters:
// 要传递给命令的参数数组。注意下面的行为:如果数组中的对象的数目小于命令字符串中已标识的最大数,
则会引发异常。如果数组包含未在命令字符串中引用的对象,则不会引发异常。如果任一参数为
// null,则该参数会转换为 DBNull.Value。
//
// 返回结果:
// 一个 int,表示所执行命令修改的行数。
publicint ExecuteCommand(string command, paramsobject[] parameters);
到这里,看它的返回类型为int,表示执行命令修改的行数,这次很容易想到ExecuteNonQuery方法。对不对呢?通过下面的代码证明我们的设想:
/// <summary>
/// 直接执行sql语句 根据用户Id更新体重
/// </summary>
/// <param name="id">用户Id</param>
/// <param name="destWeight">更新后的体重</param>
/// <returns></returns>
publicint ModifyWeightById(int id, double destWeight)
{
string strSql = string.Format("UPDATE Person SET Weight={0} WHERE Id={1}", destWeight, id);
int result = dataContext.ExecuteCommand(strSql);
Console.WriteLine();
Console.WriteLine("affect num:{0}", result);
return result;
}
调试过程中,通过IntelliTrace可以很清楚地捕获:“ADO.NET:执行NonQuery…”基本可以断言我们的设想是正确的。
3、防止sql注入
1和2中,执行sql语句的两个方法都有一个params 类型的参数,我们又会想到ADO.NET非常重要的sql语句的参数化防止sql注入问题。下面通过一个方法,看看linq2sql可不可以防止sql注入。
(1)、直接执行拼接的sql语句(有风险)
/// <summary>
/// 直接执行sql语句 根据用户Id更新FirstName
/// </summary>
/// <param name="id">用户Id</param>
/// <param name="destName">更新后的FirstName</param>
/// <returns></returns>
publicint ModifyNameById(int id, string destName)
{
string strSql = string.Format("UPDATE Person SET FirstName='{0}' WHERE Id={1}", destName, id);
//这么拼接有风险
int result = dataContext.ExecuteCommand(strSql);
Console.WriteLine();
Console.WriteLine("affect num:{0}", result);
return result;
}
然后,在客户端这样调用这个方法:
int result = ServiceFactory.CreatePersonService().ModifyNameById(10, "'Anders'");
//更新id为10的人的FirstName
Ⅸ 怎么执行sql命令
执行sql命令步骤如下:
1、点击页面中的【SQL】。
以上就是执行sql命令的步骤。
Ⅹ 请问SQL语句怎么执行
申明个 Command 对象,然后用 对象.Execute("sql语言") 方法执行。
回答补充:
1.conn.conn 是什么?连接对象需要申明。
2.adCmdText 在那里?你写的是 sql="xxxx"。
3.Adodc3又是什么?记录集对象也需要申明。