打开2007数据库
外部数据库1.打开(“ODBC;DSN=MS Access Database;DBQ=”+取运行目录() +“\数据库.accdb;Driver={Microsoft Access Driver (*.mdb, *.accdb)};;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;PWD=”, , 真)
易语言对ACCESS数据库
学习使用数据库,难免要使用SQL语句。外部数据库使用SQL语句可以快速地完成对数据库的种种操作,如:查询、修改、插入记录、删除记录等。至于更多的,比如:创建表、删除表、加密数据等等,等我们能够比较熟练地掌握数据库的操作再研究。
一、基本命令格式
1、查询记录
基本格式:select 字段名from 表名where 条件
例如:要查询“员工表"中“张三"的信息,可以这么写:“select * from 员工表where 姓名='张三'"。这里,“员工表"是要查询的表的名称,“姓名"是字段名称。
如果要查询的是张三的电话呢?就得这么写:“select 电话from 员工表where 姓名='张三'"。“电话"也是该表中的字段。
如果要查询整个表的信息,就不需要加“where"。比如,要查询“员工表"中所有员工的全部信息,就可以这么写:“select * from 员工表"。
2、删除记录
基本格式:delete from 表名where 条件
例如:要删除“学生表"中“成绩"小于50的学生名字,可以这么写:“delete from 学生表where 成绩<50"
如果不加条件,就会删除该表中所有记录,该表就变成一个没有记录的空表,以后还可以向表中添加记录。本命令与删除表“drop table"不同,“drop table"删除的是被操作的表,删除后,整个表都不存在,也就不可以再添加记录了。
3、添加记录
基本格式:insert into 表名(字段1,字段2,字段3) values (字段1的值,字段2的值,字段3的值)
本命令是往指定的表中添加记录。要注意,“表名"后面括号中是被操作的字段名称,“values"后面括号中是对应的字段值,不要弄错了位置的先后顺序。还有,本命令不可以跟“where",因为你要添加的记录在表中根本没有,所以也就不可以有什么条件了。
4、修改记录
基本格式:update 表名set 欲修改的字段名1=该字段的新值,欲修改的字段名2=该字段的新值where 条件
该命令是修改表中已经存在的记录数据。如果不加“where"条件,就会把所有指定的字段都改成新值。
比如:要修改“员工表"中“张三"的工资为1500,应该这么写:“update 员工表set 工资=1500 where 姓名='张三'"。
二、易语言命令操作数据库
在易语言中,对外部数据库,比如ACCESS的操作,有如下方法:
一个是用“外部数据库",另一个是用“数据库连接"和“记录集"。前一种是我这段时间正在学习的,操作起来比较方便。后一种我还没有用过,不敢多讲。不过,我觉得记录
集就象一张
,只是这表格是看不见的,是动态的。在这里,我只说一下“外部数据库"。
1、查询操作
基本命令:外部数据库控件名称.查询(SQL命令语句)
这一命令只可以用来进行查询操作。使用的时候要注意SQL语句是否正确。
如果查询的记录存在,则回车满足查询条件的记录的条数,否则回车0。
2、非查询操作
基本命令:外部数据库控件名称.执行(SQL命令语句,操作的数据)
这一命令可以完成对数据的添加、删除、修改等操作,也可以完成对数据库中表的创建、删除。此命令有两个参数,第一个是SQL命令,后一个是你要操作的数据。第二个参数是可以省略的,只在对表中的备注型、OLE型字段进行操作时才用。
本命令执行成功回车真,否则回车假。这样我们就可以通过执行的结果来判断操作是否正确了。
比如,你想把一张图片放入数据库,应该这么做:
外部数据库1.执行(“insert into 图片表(图片名,图片) values ('美丽的图片',?)",读入文件(你要放入的图片的文件名称))
其中,“图片表"是你的数据库中存放图片的表的名称,“图片名"和“图片"是字段名称,前一字段是文本型的,后一字段是OLE型,也就是易语言中字节集型的。
“美丽的图片"是在表中插入的新记录中“图片名"字段所对应的值,在SQL语句中要用单引号括起来。“?"表示你要操作的数据,如果你操作的数据中有字节集型的,应该用“?"代替,在后面的第二参数中写入真正的数据内容。如果你同时操作多个字节集型的数据,应该用多个“?",并且后面按照顺序放置相应的值。
3、读数据库数据
读数据的时候,首先要用查询命令,要不然是没法读数据的。
建立一个变量,存放查询的结果。如:查询结果,整数型。
查询结果=外部数据库控件名称.查询(查询类的SQL语句)
外部数据库控件名称.到首记录(查询结果)
存放数据的变量=外部数据库控件名称.读(查询结果,要读的字段名称)
好了,以上是我学习数据库以来的一点体会,与朋友们一同分享。朋友们也可以看一下我最近发的软件《小小日记本》、《易用通讯录》和例程《图片导入数据库》,里面用了SQL 语句对ACCESS数据库进行记录的增删、修改、查询等操作。
常用命令格式
insert into 表名(项目名,项目名2) values ('内容','内容')
update 修改update 表名Set 姓名='”+编辑框1.内容+“',性别='”+编辑框2.内容
delete 删除delete from 表名where 条件数组可直接文字用''
select 查询select * from 表名称
“select * from 资料where 姓名like ”+“'%”+搜索内容编辑框+“%';”
“select * from 用户信息where 姓名='”+编辑框8.内容+“'”
update 表名set name=? where ID = 更新图片
INSERT INTO 表名(name) values (?) 写到图片access文件
update 表名set 要更改的=更改的,要更改的=更改的where 条件=条件(修改多处)
分页显示数据SELECT * FROM jy ORDER BY id DESC LIMIT 5,5;
第一个5,是起点
第二个5,是取几条
反向排序“select * from 表名order by 字段名DESC”
正向排序“select * from 表名order by 字段名ASC”
like % where 条件and 并且or 或者
--复制表结构有句型的
--跨数据库
--复制结构+数据
select * into 数据库名.dbo.新表名from 数据库名.dbo.原表名
--只复制结构
select * into 数据库名.dbo.新表名from 数据库名.dbo.原表名where 1=0
select * into data.mdb.新用户from data.mdb.用户日志where 1=0
--复制到临时表
select * into #temptablename from 数据库名.dbo.原表名where 1=0
drop table 新用户删除表
--后面的where 1=0 只要不成立就行了,管它是1=2,还是1000=1001...
插入时间
Replace(Replace(Replace('2013年4月11日', '年', '-'), '月', '-'), '日', '')这样把年月日去掉然后再to_char(to_date('2013411','yyyymdd'),'yyyy-mm-dd') 就得到日期(2013-04-11)再insert into tableName (time)values ('2013-04-11') 后面的分秒我省略了,你自己加mi:ss
一、基础
1、说明:创建数据库
CREATE DATABASE database-name
2、说明:删除数据库
drop database dbname
3、说明:备份sql server
--- 创建备份数据的device
USE master
EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
--- 开始备份
BACKUP DATABASE pubs TO testBack
4、说明:创建新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
根据已有的表创建新表:
A:create table tab_new like tab_old (使用旧表创建新表)
B:create table tab_new as select col1,col2…from tab_old definition only
5、说明:删除新表
drop table tabname
6、说明:增加一个列
Alter table tabname add column col type
注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
7、说明:添加主键:Alter table tabname add primary key(col)
说明:删除主键:Alter table tabname drop primary key(col)
8、说明:创建索引:create [unique] index idxname on tabname(col….)
删除索引:drop index idxname
注:索引是不可更改的,想更改必须删除重新建。
9、说明:创建视图:create view viewname as select statement
删除视图:drop view viewname
10、说明:几个简单的基本的sql语句
选择:select * from table1 where 范围
插入:insert into table1(field1,field2) values(value1,value2)
删除:delete from table1 where 范围
更新:update table1 set field1=value1 where 范围
查找:select * from table1 where field1 like ’%value1%’---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc]
总数:select count as totalcount from table1
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1
11、说明:几个高级查询运算词
A:UNION 运算符
UNION 运算符通过组合其他两个结果表(例如TABLE1 和TABLE2)并消去表中任何重
复行而派生出一个结果表。当ALL 随UNION 一起使用时(即UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自TABLE1 就是来自TABLE2。
B:EXCEPT 运算符
EXCEPT 运算符通过包括所有在TABLE1 中但不在TABLE2 中的行并消除所有重复行而派生出一个结果表。当ALL 随EXCEPT 一起使用时(EXCEPT ALL),不消除重复行。C:INTERSECT 运算符
INTERSECT 运算符通过只包括TABLE1 和TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当ALL 随INTERSECT 一起使用时(INTERSECT ALL),不消除重复行。注:使用运算词的几个查询结果行必须是一致的。
12、说明:使用外连接
A、left (outer)join:
左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
B:right (outer)join:
右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
C:full/cross (outer)join:
全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。
12、分组:Group by:
一张表,一旦分组完成后,查询后只能得到组相关的信息。
组相关的信息:(统计信息)count,sum,max,min,avg 分组的
)
在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据
在selecte统计函数中的字段,不能和普通的字段放在一起;
13、对数据库进行操作:
分离数据库:sp_detach_db; 附加数据库:sp_attach_db 后接表明,附加需要完整的路径名
14.如何修改数据库的名称:
sp_renamedb 'old_name', 'new_name'