|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册账号
×
花了近一周的时间学习了本站“数据库SQL知识列表”中的主要知识,通过学习提高了自己对sql语言的认识和基本掌握了从数据库中提取数据、编写自定义函数的一些基础知识,下面将自己的学习笔记总结如下,关于此类文章的学习,大概分以下三点:
一、数据库的连接
1、连接Excel文件字符串
CnStr = "rovider=Microsoft.jet.oledb.4.0;Extended Properties=Excel 8.0;Data Source=" & ThisWorkbook.Path & "\" & Db
其中:provider为数据库提供者,Extended Properties为数据库的类型,Data Source为数据库的名称
2、连接Access文件字符串
CnStr = "rovider=Microsoft.jet.oledb.4.0;Data Source=" & ThisWorkbook.Path & "\" & Db
3、连接Sql Server数据库字符串
CnStr = "rovider=Sqloledb.1;User ID=Sa;PWd=;data source=10.3.0.98;initial catalog=" & Db
这个字符串是很好记忆的,(1)要明确数据库提供者sqloledb;(2)明确Sql Server数据库的名称或者ip地址server或者data source;(3)明确数据库名称database或者initial catalog;(4)确定数据库用户名和密码;
上述字符串也可以写为:
CnStr = "Provider=Sqloledb.1;User ID=Sa;PWd=;Server=10.3.0.98;database=" & Db
二、Sql语句的编写
关于sql语句主要包括创建数据库、删除数据库、创建数据表、删除数据表、修改数据表(包括增加字段、修改字段类型、删除字段)、向数据表中插入一条记录或者批量插入记录、查询数据,下面对上述语句做一个简单的说明:
1、创建数据库与删除数据库
Create database 数据库名 '创建数据库
Drop Database 数据库名 '删除数据库
Backup Database 数据库名 to disk="备份完整路径" '备份数据库
Restore database 数据库名 from disk='数据库完整路径' '还原数据库
2、创建数据表与删除数据表
Create table 数据表名(字段1 数据类型 [not null] [primary key]) '在实际创建数据表时,注意字段的数据类型,对于比如会计期之类的字段(1-12)最好定义为tinyint,切不可定义为int,这两种数据类型前一个占用1个字节,而后一个占用4个字节,当数据量大时,数据类型定义的好坏,直接关系到数据库运行速度的快慢,对于初学者一定要养成准确定义数据类型的好习惯。
当然也可以根据已有的数据表建立一个新表:select 字段 into 新表 from 原表 where 条件
drop table 数据表名 '删除数据表
3、修改数据表
(1)向数据表中增加一列:Alter table 数据表名 add column 列名 数据类型
(2)修改字段类型: Alter table 数据表名 Alter column 列名 数据类型
(3)删除某一列: Alter table 数据表名 drop column
值得注意的是:不能修改字段名称,如果修改,可以采用变通的方法,增加一列,将正确的字段名称和字段类型写入数据库中,然后使用updata更新记录。
4、向数据表中添加记录
(1)插入一条记录
insert into 数据表(字段1,字段2,...) values(值1,值2,.....)
(2)插入多条记录
insert into 数据表(字段1,字段2,...) select 语句 (注意select语句返回的字段名称和into子句字段的名称应该保持一致。
5、查询数据
(1)Select语法
SELECT select_list 'select 字段列表 ----如果是全部字段,则可以使用*
[ INTO new_table ] 'select * into 新表名 from 表名 -------可以生成一个新表(into)
FROM table_source
[ WHERE search_condition ]
[ GROUP BY group_by_expression ] '对数据进行分组,相当于分类汇总
[ HAVING search_condition ] '对分组后的数据,设置筛选条件
[ ORDER BY order_expression [ ASC | DESC ] ] '排序
(2)where条件
Where后面的条件,限制与筛选Selet检索的数据,除了比较运算符(>,<,>=,<=,<>)、逻辑运算符(not,and,or)之外,还包括like、in,其中:in(值1,值2,值3,.....) 列出所有可能的值
在实际应用中,如果批量确认某些发票,可以利用in
like有以下几个 通配符,列出符合的条件。
** %代表由0个或者更多字符组成的字符串,例如 物品名称 like 'a%' 表示以a开头的所有字符串,包括单个a 物品名称 like '%a%' 表示包含a的所有字符串,包括单个a或者以a开头的所有字符串
** _ 代表任意单个字符 例如 物品名称 like 'a_' 表示以a开头且长度为2的所有字符串,包括必须以a开头且字符串长度必须为2
** [] 指定范围 例如 物品名称 Like '[钢,铅,毛]%'" 物品名称以钢、铅、毛开头的所有记录
** [^] 不包含该范围 例如 物品名称 Like '[^a-f] 表示a-f以外的任何单个字符
'like 'M[^c]%' 表示以M开头且第二个字符不是c的所有字符串
'like '%en%' 表示包含en的所有字符串
'like '[M-Z]inger' 表示以inger结尾,且以M-Z的任何单个字母开头的所有字符串
'like '_heny' 表示以heny结尾的所有5个字符的字符串
(3)Group by语句的详细用法,详见附件
6、修改满足条件的记录
updata 数据表名 set 字段=** where 条件
7、多表连接查询 (有待更新)
三、ADO对象RecordSet的应用(待续)
有兴趣的朋友请关注:http://www.excelba.com/BBs/Show.asp?bid=1&aid=2356 |
|