189 8069 5689

mysql8.0怎么执行语句 mysql 执行语句

如何直接执行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.ExecuteQueryint(strSql);

int result = query.Firstint();

Console.WriteLine();

Console.WriteLine("total count:{0}", result);

return result;

}

调试的时候,通过IntelliTrace跟踪到:

毫无疑问,上面的图片说明最初的想法是不正确的,”ADO.NET:执行Reader…”云云,让我们更加坚信它实际执行的应该是ExecuteReader方法。当然最简单的方法是直接查看它的方法说明:

// 摘要:

// 直接对数据库执行 SQL 查询并返回对象。

//

// 参数:

// query:

// 要执行的 SQL 查询。

//

// parameters:

// 要传递给命令的参数数组。注意下面的行为:如果数组中的对象的数目小于命令字符串中已标识的最大数,

则会引发异常。如果数组包含未在命令字符串中引用的对象,则不会引发异常。如果某参数为

// null,则该参数会转换为 DBNull.Value。

//

// 类型参数:

// TResult:

// 返回的集合中的元素的类型。

//

// 返回结果:

// 由查询返回的对象的集合。

public IEnumerableTResult ExecuteQueryTResult(string query, paramsobject[] parameters);

ExecuteQuery方法还有一个非泛型方法:

//

// 摘要:

// 直接对数据库执行 SQL 查询。

//

// 参数:

// elementType:

//

要返回的 System.Collections.Generic.IEnumerableT

的类型。使查询结果中的列与对象中的字段或属性相匹配的算法如下所示:如果字段或属性映射到特定列名称,则结果集中应包含该列名称。如果未映射字段或属性,则结果集中应包含其名称与该字段或属性相同的列。通过先查找区分大小写的匹配来执行比较。如果未找到匹配项,则会继续搜索不区分大小写的匹配项。如果同时满足下列所有条件,则该查询应当返回(除延迟加载的对象外的)对象的所有跟踪的字段和属性:T

// 是由 System.Data.Linq.DataContext 显式跟踪的实体。

System.Data.Linq.DataContext.ObjectTrackingEnabled

// 为 true。实体具有主键。否则会引发异常。

//

// query:

// 要执行的 SQL 查询。

//

// parameters:

// 要传递给命令的参数数组。注意下面的行为:如果数组中的对象的数目小于命令字符串中已标识的最大数,

则会引发异常。如果数组包含未在命令字符串中引用的对象,则不会引发异常。如果某参数为

// null,则该参数会转换为 DBNull.Value。

//

// 返回结果:

// 由查询返回的对象的 System.Collections.Generic.IEnumerableT 集合。

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

mysql数据库怎么执行sql语句

首先创建连接

就创建个Cnnection对象,然后把驱动加上,还有帐号密码什么的!我没连过sql数据库,不知道驱动,你可以在网上搜一下。

给你一个我连接mysql数据库的例子

public Connection Getdata(){//这是连接数据库的一个方法,还可以配置连接池。

Connection con=null;

try {

Class.forName("com.mysql.jdbc.Driver");//加驱动

con=DriverManager.getConnection("jdbc:mysql://localhost:3306/data","root","qq");//数据库路径、端口、库名、数据库用户名和密码

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}

return con;

}

public void delete(int id){//对数据库进行操作的方法,先调用上面写好的连接!

Connection con=Getdata();

Statement st;

try {

st=con.createStatement();

st.executeUpdate("delete from kaoshi where id="+id);

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

如何执行mysql语句块

如果是在命令提示符下键入SQL语句,结尾需要加分号,回车即可,如果你是在MYSQL的一个集成开发环境下操作,将SQL语句键入页面上方的一个框里,然后按菜单栏上的三角箭头

mysql数据库执行sql语句怎么写

Mysql常用命令详解

Mysql安装目录

数据库目录

/var/lib/mysql/

配置文件

/usr/share/mysql(mysql.server命令及配置文件)

相关命令

/usr/bin(mysqladmin mysqldump等命令)

启动脚本

/etc/init.d/mysql(启动脚本文件mysql的目录)

系统管理

连接MySQL

格式:

mysql -h 主机地址 -u用户名 -p用户密码

例 1:连接到本机上的 MySQL。

hadoop@ubuntu:~$ mysql

-uroot -pmysql;

例 2:连接到远程主机上的 MYSQL。

hadoop@ubuntu:~$ mysql -h

127.0.0.1 -uroot -pmysql;

修改新密码

在终端输入:mysql -u用户名 -p密码,回车进入Mysql。

use mysql;

update user set password=PASSWORD('新密码') where

user='用户名';

flush privileges; #更新权限

quit; #退出

增加新用户

格式:grant select on 数据库.* to

用户名@登录主机 identified by '密码'

举例:

例 1:增加一个用户 test1 密码为

abc,让他可以在任何主机上登录,并对所有数据库有

查询、插入、修改、删除的权限。首先用以 root 用户连入

MySQL,然后键入以下命令:

mysqlgrant select,insert,update,delete on *.* to

root@localhost identified by 'mysql';

或者

grant all privileges on *.* to

root@localhost identified by 'mysql';

然后刷新权限设置。

flush privileges;

2:如果你不想 root 有密码操作数据库“mydb”里的数据表,可以再打一个命令将密码消掉。

grant

select,insert,update,delete on mydb.* to root@localhost identified by

'';

删除用户

hadoop@ubuntu:~$ mysql

-u用户名 -p密码

mysqldelete from user where user='用户名' and

host='localhost';

mysqlflush privileges;

//删除用户的数据库

mysqldrop

database dbname;

数据库操作

显示所有的数据库

mysql show databases;(注意:最后有个

s)

创建数据库

mysql create database

test;

连接数据库

mysql use

test;

查看当前使用的数据库

mysql select

database();

当前数据库包含的表信息

mysql

show tables; (注意:最后有个 s)

删除数据库

mysql drop database

test;

表操作

备注:操作之前使用“use

数据库名”应连接某个数据库。

建表

命令:create

table 表名 (字段名 1 类型 1 [,..字段名 n 类型

n]);

例子:

mysql create table MyClass(

id int(4) not null

primary key auto_increment,

name char(20) not null,

sex int(4)

not null default '0',

degree double(16,2));

获取表结构

命令: desc 表名,或者show columns from

表名

例子:

mysql describe MyClass

mysql desc MyClass;

mysql

show columns from MyClass;

删除表

命令:drop table 表名

例如:删除表名为

MyClass 的表

mysql drop table MyClass;

插入数据

命令:insert into 表名 [( 字段名

1[,..字段名 n ])] values ( 值 1 )[, ( 值 n )]

例子:

mysql insert

into MyClass values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang',

96.59);

查询表中的数据

查询所有行

mysql

select * from MyClass;

查询前几行数据

例如:查看表 MyClass 中前 2 行数据

mysql

select * from MyClass order by id limit 0,2;

或者

mysql select * from

MyClass limit 0,2;

删除表中数据

命令:delete from 表名 where 表达式

例如:删除表

MyClass 中编号为 1 的记录

mysql delete from MyClass where id=1;

修改表中数据

命令:update 表名 set 字段=新值,... where

条件

mysql update MyClass set name='Mary' where id=1;

在表中增加字段

命令:alter table 表名 add 字段 类型

其他;

例如:在表 MyClass 中添加了一个字段 passtest,类型为 int(4),默认值为 0

mysql alter

table MyClass add passtest int(4) default '0'

更改表名

命令:rename table 原表名 to 新表名;

例如:在表

MyClass 名字更改为 YouClass

mysql rename table MyClass to

YouClass;

更新字段内容

命令:update 表名 set

字段名 = 新内容

update 表名 set 字段名 = replace(字段名, '旧内容', '新内容');

例如:文章前面加入 4

个空格

update article set content=concat(' ', content);

数据库导入导出

从数据库导出数据库文件

使用“mysqldump”命令

首先进入 DOS

界面,然后进行下面操作。

1)导出所有数据库

格式:mysqldump -u [数据库用户名] -p

-A[备份文件的保存路径]

2)导出数据和数据结构

格式:mysqldump -u [数据库用户名] -p

[要备份的数据库名称][备份文件的保存路径]

举例:

例 1:将数据库 mydb 导出到 e:\MySQL\mydb.sql

文件中。

打开开始-运行-输入“cmd”,进入命令行模式。

c:\ mysqldump -h localhost -u

root -p mydb e:\MySQL\mydb.sql

然后输入密码,等待一会导出就成功了,可以到目标文件中检查是否成功。

2:将数据库 mydb 中的 mytable 导出到 e:\MySQL\mytable.sql 文件中。

c:\ mysqldump -h

localhost -u root -p mydb mytablee:\MySQL\mytable.sql

例 3:将数据库 mydb

的结构导出到 e:\MySQL\mydb_stru.sql 文件中。

c:\ mysqldump -h localhost -u root -p

mydb --add-drop-table e:\MySQL\mydb_stru.sql

备注:-h localhost

可以省略,其一般在虚拟主机上用。

3)只导出数据不导出数据结构

格式:

mysqldump -u [数据库用户名] -p -t

[要备份的数据库名称][备份文件的保存路径]

4)导出数据库中的Events

格式:mysqldump -u [数据库用户名] -p

-E [数据库用户名][备份文件的保存路径]

5)导出数据库中的存储过程和函数

格式:mysqldump -u [数据库用户名]

-p -R [数据库用户名][备份文件的保存路径]

从外部文件导入数据库中

1)使用“source”命令

首先进入“mysql”命令控制台,然后创建数据库,然后使用该数据库。最后执行下面操作。

mysqlsource

[备份文件的保存路径]

2)使用“”符号

首先进入“mysql”命令控制台,然后创建数据库,然后退出 MySQL,进入 DOS

界面。最后执行下面操作。

mysql -u root –p [备份文件的保存路径]


新闻标题:mysql8.0怎么执行语句 mysql 执行语句
本文路径:http://cdxtjz.cn/article/hjigee.html

其他资讯