Tcl+MySQL学习笔记

一、下载mysqltcl Tcl Mysql Interface

下载适合版本的MySQLTcl库,并将解压后的文件添加到Tcl安装目录的lib文件夹下。

二、使用tcl脚本连接数据库,并对数据库做增删改查等操作

一个简单的例子如下:

package require mysqltcl
global mysqlstatus

set port {3306}
set host {127.0.0.1}
set user {username}     //连接MySQL数据库的用户名
set password {Password} //连接MySQL数据库的密码

set handle [mysqlconnect -host $host -port $port -user $user -password $password]   //连接数据库

mysqlexec $handle "CREATE DATABASE my_db" //创建数据库
mysqlexec $handle "CREATE TABLE my_db.persons(PersonID int,Name varchar(255),City varchar(255));" //创建表
puts [mysqlsel $handle {SELECT * FROM my_db.persons} -list]
mysqlexec $handle "INSERT INTO my_db.persons VALUES (1,'Alisa','city')"   //插入一条记录
mysqlexec $handle "INSERT INTO my_db.persons VALUES (2,'Andy','city1')"
set result [mysqlsel $handle {SELECT * FROM my_db.persons} -list]         //查询表中记录
puts $result
mysqlexec $handle "UPDATE my_db.persons SET Name='Tom', City='USA'  WHERE PersonID=2;"  //修改表中记录
puts [mysqlsel $handle {SELECT * FROM my_db.persons} -list]
mysqlexec $handle "DELETE FROM my_db.persons WHERE PersonID=2;"  //删除一条记录
puts [mysqlsel $handle {SELECT * FROM my_db.persons} -list]
mysqlexec $handle "DROP TABLE my_db.persons;"      //删除数据库中的表
mysqlexec $handle "DROP DATABASE my_db;"      //删除整个数据库

mysqlclose $handle

当进行INSERT、DELETE、UPDATE等操作时,使用mysqlexe,进行SELECT操作时,使用mysqlsel、mysqlquery、mysqlmap、mysqlreceive。

三、SELECT查询输出有几种方式,每种方式输出的结果样式略有不同。

假设上面例子中数据库记录插入成功,则在表中应有两条记录,不同的输出方式会出现如下几种结果。

1.

puts [mysqlsel $handle {SELECT * FROM my_db.persons} -list]
输出结果为:{1 Alisa city} {2 Andy city1}
2.
puts [mysqlsel $handle {SELECT * FROM my_db.persons} -flatlist]
输出结果为:1 Alisa city  2 Andy city1

3.

puts [lindex [mysqlsel $handle {SELECT * FROM my_db.persons} -list] 0]
输出结果为:1 Alisa city

4.

puts [lindex [lindex [mysqlsel $handle "SELECT * FROM my_db.persons" -list] 0] 0]

输出结果为:1

5.

puts [lindex [mysqlsel $handle "SELECT * FROM my_db.persons" -flatlist] 0]

输出结果为:1

四、连接过程中出现一个的问题

        当对数据库中的表进行UPDATA或DELETE操作时,出现“ErrorCode: 1175 You are using safe update mode and you tried to update a tablewithout a WHERE that uses a KEY column”错误。这是Workbench的安全设置导致的,直接在workbench里面的查询窗口输入“SET SQL_SAFE_UPDATES = 0;”,通过设置就可以处理。

你可能感兴趣的:(学习笔记)