数据库里面怎么写函数

数据库里面怎么写函数,第1张

数据库不同有不同的函数,以oracle为例:常用的有单条语句作用的函数:destinct(去除重复行),to_char(转换自符串),to_date(日期格式函数),sumstr(截取自符串),lower(将字母转换为小写),upper(将字母转换为小写),char(将数字转换为字符),ascii(求字符的ascii码)等函数

组函数:min(求最小值),max(求最大值),avg(求平均数),sum(求总和),counnt(统计记录数)

创建数据库的关键是函数中的sql对象,通过该对象我们指定了数据库文件的一些基本属性。之后,我们新创建了一个SqlCommand对象,通过该对象我们就实际完成了对数据库的 *** 作。函数的实现如下:

 private void button1_Click(object sender, System.EventArgs e)

{

// 打开数据库连接

if( conn.State != ConnectionState.Open) conn.Open()

string sql = "CREATE DATABASE mydb ON PRIMARY" +"(name=test_data,filename = ‘C:\\mysql\\mydb_data.mdf’, size=3," +"maxsize=5,filegrowth=10%)log on" +"(name=mydbb_log,filename=‘C:\\mysql\\mydb_log.ldf’,size=3," +"maxsize=20,filegrowth=1)"

cmd = new SqlCommand(sql, conn)

try

{

cmd.ExecuteNonQuery()

}

catch(SqlException ae)

{

MessageBox.Show(ae.Message.ToString())

}

}

创建了数据库后,我们得为其创建表,表是数据库中的基本对象。我们通过CREATE TABLE这句SQL语句完成创建表的 *** 作,表被创建后,我们就确定了其模式(Schema)。之后,我们还通过INSERT语句向该表中添加了四条记录以为后用。函数的实现如下:

private void button2_Click(object sender, System.EventArgs e)

{

// 打开数据库连接

if( conn.State == ConnectionState.Open) conn.Close()

ConnectionString ="Integrated Security=SSPI" + "Initial Catalog=mydb" + "Data Source=localhost"

conn.ConnectionString = ConnectionString

conn.Open()

sql = "CREATE TABLE myTable"+ "(myId INTEGER CONSTRAINT PKeyMyId PRIMARY KEY,"+ "myName CHAR(50),

myAddress CHAR(255), myBalance FLOAT)"

cmd = new SqlCommand(sql, conn)

try

{

cmd.ExecuteNonQuery()

// 向表中添加记录

sql = "INSERT INTO myTable(myId, myName, myAddress, myBalance) "+ "VALUES (1001, ‘Puneet Nehra’, ‘A 449 Sect 19, DELHI’, 23.98 ) "

cmd = new SqlCommand(sql, conn)

cmd.ExecuteNonQuery()

sql = "INSERT INTO myTable(myId, myName,myAddress, myBalance) "+ "VALUES (1002, ‘Anoop Singh’, ‘Lodi Road, DELHI’, 353.64) "

cmd = new SqlCommand(sql, conn)

cmd.ExecuteNonQuery()

sql = "INSERT INTO myTable(myId, myName, myAddress, myBalance) "+ "VALUES (1003, ‘Rakesh M’, ‘Nag Chowk, Jabalpur M.P.’, 43.43) "

cmd = new SqlCommand(sql, conn)

cmd.ExecuteNonQuery()

sql = "INSERT INTO myTable(myId, myName, myAddress, myBalance) "+ "VALUES (1004, ‘Madan Kesh’, ‘4th Street, Lane 3, DELHI’, 23.00) "

cmd = new SqlCommand(sql, conn)

cmd.ExecuteNonQuery()

}

catch(SqlExceptionae)

 {

MessageBox.Show(ae.Message.ToString())} }

完成此 *** 作后,我们可以在本机的SQL Sever企业管理器中打开mydb数据库并找到该表了。

如果拥有较高的服务器权限,可以开个定时器在服务器上执行,但是如果是租用虚拟主机空间的话,可以用PHP模拟定时器功能。

1、先给m添加一个上次更改的时间字段,比如change_at,数据类弄推荐int或者timespan,用int会比较好,因为可以用php的time()来取时间对比。

2、定义一个函数get_m(),每次要取m值的时候都通过这个函数取。在取值之前对m进行 *** 作:

function get_m()

{

$now = time()

$change_at = get_change_at()//取得change_at的值,函数自己去写。

$m = read_m()//取得数据库内的真实数值

$time_span = $now - $change_at

//没有达到更新条件,直接返回;

if ($time_span <180)

return $m

$m += floor($time_span / 180)

$change_at += (floor($time_span/180) * 180)

//将新的m和change_at写入数据库

save_m($m,$change_at)

return $m

}

其中的几个函数read_m(),get_change_at(),save_m()根据具体的数据库结构写功能,也可以不要用函数直接把数据库 *** 作代码写在那边。

这样就能保证每次程序取到的值和数据库自动更改的情况下是一样的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9592543.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存