1、打开 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 语句可以快速地完成对数据库的种种操作,如:查询、修改、插入记录、删除记录等。至于更多的,比如:创建表、删除表、加
2、密数据等等,等我们能够比较熟练地掌握数据库的操作再研究。一、基本命令格式1、查询记录基本格式:select 字段名 from 表名 where 条件例如:要查询“员工表中“张三的信息,可以这么写:“select * from 员工表 where 姓名=张三 。这里, “员工表是要查询的表的名称, “姓名是字段名称。如果要查询的是张三的电话呢?就得这么写:“select 电话 from 员工表 where 姓名=张三。 “电话也是该表中的字段。如果要查询整个表的信息,就不需要加“where。比如,要查询“员工表中所有员工的全部信息,就可以这么写:“select * from 员工表。2、删除记录
3、基本格式:delete from 表名 where 条件例如:要删除“学生表中“成绩小于 50 的学生名字,可以这么写:“delete from 学生表 where 成绩50 如果不加条件,就会删除该表中所有记录,该表就变成一个没有记录的空表,以后还可以向表中添加记录。本命令与删除表“drop table不同, “drop table删除的是被操作的表,删除后,整个表都不存在,也就不可以再添加记录了。3、添加记录基本格式:insert into 表名(字段 1,字段 2,字段 3) values (字段 1 的值,字段 2 的值,字段3 的值)本命令是往指定的表中添加记录。要注意, “表名后面
4、括号中是被操作的字段名称,“values后面括号中是对应的字段值,不要弄错了位置的先后顺序。还有,本命令不可以跟“where,因为你要添加的记录在表中根本没有,所以也就不可以有什么条件了。4、修改记录基本格式:update 表名 set 欲修改的字段名 1=该字段的新值,欲修改的字段名 2=该字段的新值 where 条件该命令是修改表中已经存在的记录数据。如果不加“where条件,就会把所有指定的字段都改成新值。比如:要修改“员工表中“张三的工资为 1500,应该这么写:“update 员工表 set 工资=1500 where 姓名=张三 。二、易语言命令操作数据库在易语言中,对外部数据库,
5、比如 ACCESS 的操作,有如下方法:一个是用“外部数据库,另一个是用“数据库连接和“记录集。前一种是我这段时间正在学习的,操作起来比较方便。后一种我还没有用过,不敢多讲。不过,我觉得记录集就象一张表格,只是这表格是看不见的,是动态的。在这里,我只说一下“外部数据库。1、查询操作基本命令:外部数据库控件名称.查询(SQL 命令语句)这一命令只可以用来进行查询操作。使用的时候要注意 SQL 语句是否正确。如果查询的记录存在,则回车满足查询条件的记录的条数,否则回车 0。2、非查询操作基本命令:外部数据库控件名称.执行(SQL 命令语句,操作的数据)这一命令可以完成对数据的添加、删除、修改等操作
6、,也可以完成对数据库中表的创建、删除。此命令有两个参数,第一个是 SQL 命令,后一个是你要操作的数据。第二个参数是可以省略的,只在对表中的备注型、OLE 型字段进行操作时才用。本命令执行成功回车真,否则回车假。这样我们就可以通过执行的结果来判断操作是否正确了。比如,你想把一张图片放入数据库,应该这么做:外部数据库 1.执行(“insert into 图片表( 图片名,图片 ) values (美丽的图片,?),读入文件(你要放入的图片的文件名称)其中, “图片表是你的数据库中存放图片的表的名称, “图片名和“图片是字段名称,前一字段是文本型的,后一字段是 OLE 型,也就是易语言中字节集型的
7、。“美丽的图片是在表中插入的新记录中“图片名字段所对应的值,在 SQL 语句中要用单引号括起来。 “?表示你要操作的数据,如果你操作的数据中有字节集型的,应该用“?代替,在后面的第二参数中写入真正的数据内容。如果你同时操作多个字节集型的数据,应该用多个“?,并且后面按照顺序放置相应的值。3、读数据库数据读数据的时候,首先要用查询命令,要不然是没法读数据的。建立一个变量,存放查询的结果。如:查询结果,整数型。查询结果外部数据库控件名称.查询(查询类的 SQL 语句)外部数据库控件名称.到首记录(查询结果)存放数据的变量外部数据库控件名称.读(查询结果,要读的字段名称)好了,以上是我学习数据库以来
8、的一点体会,与朋友们一同分享。朋友们也可以看一下我最近发的软件小小日记本 、 易用通讯录和例程图片导入数据库 ,里面用了SQL 语句对 ACCESS 数据库进行记录的增删、修改、查询等操作。 常用命令格式insert into 表名 (项目名,项目名 2) values (内容,内容)update 修改 update 表名 Set 姓名= ” 编辑框 1.内容 “,性别= ” 编辑框2.内容delete 删除 delete from 表名 where 条件 数组可直接 文字用select 查询 select * from 表名称“select * from 资料 where 姓名 like ”
9、 “%” 搜索内容 编辑框 “%;”“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 字段名
10、DESC”正向排序 “select * from 表名 order by 字段名 ASC”like % where 条件 and 并且 or 或者-复制表结构有句型的-跨数据库-复制结构+数据select * into 数据库名.dbo.新表名 from 数据库名.dbo.原表名-只复制结构 select * into 数据库名.dbo.新表名 from 数据库名.dbo.原表名 where 1=0select * into data.mdb.新用户 from data.mdb.用户日志 where 1=0-复制到临时表select * into #temptablename from 数据库
11、名.dbo.原表名 where 1=0drop 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、说明:
12、创建数据库CREATE DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份 sql server- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice disk, testBack, c:mssql7backupMyNwind_1.dat- 开始 备份BACKUP DATABASE pubs TO testBack4、说明:创建新表create table tabname(col1 type1 not null primary key,col2 type2 not null,)根据已有的
13、表创建新表:A:create table tab_new like tab_old (使用旧表创建新表)B:create table tab_new as select col1,col2 from tab_old definition only5、说明:删除新表drop table tabname6、说明:增加一个列Alter table tabname add column col type注:列增加后将不能删除。DB2 中列加上后数据类型也不能改变,唯一能改变的是增加varchar 类型的长度。7、说明:添加主键: Alter table tabname add primary key(
14、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 viewname10、说明:几个简单的基本的 sql 语句选择:select * from table1 where 范围插入:insert into table1
15、(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 sumva
16、lue from table1平均:select avg(field1) as avgvalue from table1最大:select max(field1) as maxvalue from table1最小:select min(field1) as minvalue from table111、说明:几个高级查询运算词A: UNION 运算符UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL) ,不消除重复行。两种情况下,派生表的每一行不是来自 TABL
17、E1 就是来自 TABLE2。B: EXCEPT 运算符EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。C: INTERSECT 运算符INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。注:使用运算词的几个查询结果行必须是一致的。12、说明:使用外连接A、left (outer) join
18、:左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.cB: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