ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 11686|回复: 34

[分享] 初识SQL——Access2003篇

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-11-23 22:42 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
目录
一、SQL语句基本命令        2

二、SQL特定查询        2
1.建立数据表        2
2.修改数据表        2

3.删除数据表        3
三、SQL查询        3

1.简单查询(投影查询)        3
2.查询满足条件的数据        3
--1.查询性别为“男”(sex=1)的低保人员的身份证号、成员姓名和性别        3

--2.查询身份证号前三位为“413”的低保人员信息        4
--3.查询姓名为“张华”、“傅林”、“熊永元”和“李登会”的低保人员信息        4
--4.查询出生日期在1960-1-1和1980-1-1之间的低保人员的语句        4
3.分组和排序结果数据        4
--1.查询1970-1-1以后出生的低保人员,并按姓名排序        4

--2.查询低保人员的姓名,并按单位进行分组        4
4.使用库函数        5
--1.查询出生日期在1970-1-1以前的低保人员数量        5
--2.查询年龄最大低保人员(日期最小)        5

5.连接查询:        5
--1.条件法(WHERE子句)        5

--2.连接法(INNER JOIN)        5
四、SQL更新数据        5
--1.修改数据(更新语句)        6

--2.插入数据        6
--3.删除数据        6
五、参考文献        6
数据库:

[ 本帖最后由 zhaozyuan 于 2009-12-6 00:50 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-11-23 22:43 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
一、SQL语句基本命令
SQLStructure Query Language)主要包括查询、操纵、定义和控制四种功能。其语法简单,类似于人类语言,主要涉及以下8个命令:
1SELECT:检索数据,使用最多
2INSERT:用于增加数据列到数据库
3UPDATE:用于从数据库中修改数据(记录)
4DELETE:删除数据
5CREATE:创建用户和数据库等
6DROP:删除表及索引
7GRANT:用于对用户进行授权
8REVOKE:用于收回用户的授权

[ 本帖最后由 zhaozyuan 于 2009-11-23 22:45 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-11-23 22:44 | 显示全部楼层
二、SQL特定查询
1.建立数据表语法
CREATE TABLE 表名
(列名1,数据类型1 [NOT NULL],……)
[IN 数据库名]

CREATE TABLE student2
(学号 integer,姓名 text(10),性别 text(2),出生日期 date,班级 text(5));
2.修改数据表
语法:
ALTER TABLE 表名 [ADD 新列名]

[DROP
列名]

[MODIFY
列名 数据类型]

ALTER TABLE student2
ADD 地址 text(20);

ALTER TABLE student2
DROP 出生日期;
3.删除数据表语法:
DROP TABLE 表名

DROP TABLE student2;

[ 本帖最后由 zhaozyuan 于 2009-12-6 00:38 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-11-23 22:47 | 显示全部楼层
下面就低保人员信息数据库在ACCESS中的操作予以简单介绍
三、SQL查询
SQL语言的核心是数据库查询语句,格式如下:
SELECT [predicte] {*|table.*|[table.]field1 [AS aliasa1] [,[table.]field2 [AS aliasa1] [,……]]}
FROM tableexpression [,……] [IN externaldatabase]
[WHERE……]
[GROUP BY……]
[HAVING ……]
[ORDER BY……]
[WITH OWNERACCESS OPTION]
该语句的功能是:根据WHERE子句中的条件表达式,从FROM后给出的表或视图中检索出满足条件的记录;按SELECT子句中的字段,选出记录中的字段形成的结果表;GROUP子句将结果按指定列进行分组;ORDER BY子句对结果进行排序。

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-11-23 22:49 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
1.简单查询(投影查询)

语法:
SLELECT [DISTINCT] 列名 [AS 别名]
FROM
表名

SELECT *
FROM T_Member;
SELECT DISTINCT sex AS 性别
FROM T_Member;
注:*代表所有列
注:AS子句仅当表设计时未指定标题时有效

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-11-23 22:50 | 显示全部楼层
2.查询满足条件的数据
--1.查询性别为“男”(sex=1)的低保人员的身份证号、成员姓名和性别
SELECT x.Identifcard_id,x.member_name,x.sex
FROM t_member as x
WHERE (((x.sex)="1"));

--2.查询身份证号前三位为“413的低保人员信息

SELECT *
FROM t_member as x
WHERE x.Identifcard_id LIKE '413*';
SQLSELECT关系运算符

运算符
含义
=<>>>=<<=

BETWEEN……AND……
在……之间
IN
在一组值的范围内
LIKE
与一个字符图式匹配
注:字符图式中,“?”表示任何单一字符;“*”表示零个或多个字符;通用符“#”表示任何一个数字。
--3.查询姓名为“张华”、“傅林”、“熊永元”和“李登会”的低保人员信息
SELECT *
FROM t_member as x
WHERE x.member_name in ('张华','傅林','熊永元','李登会');
--4.查询出生日期在1960-1-11980-1-1之间的低保人员的语句
SELECT *
From T_Member as x
Where x.birthday BETWEEN #1960-1-1# AND #1980-1-1#;



[ 本帖最后由 zhaozyuan 于 2009-12-6 00:41 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-11-23 22:52 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
3.分组和排序结果数据
--1.查询1970-1-1以后出生的低保人员,并按姓名排序
SELECT *
FROM T_Member AS X
WHERE X.Birthday>#1970-1-1#
ORDER BY X.Member_Name DESC;
--2.查询低保人员的姓名,并按单位进行分组
SELECT Member_Name,count(*)
FROM T_Member
GROUP BY unit_id,Member_Name;
4.使用库函数
--COUNT:对一列中的值计算个数,用法: COUNT(*)——统计满足条件的记录数
--SUM:求某一列值得总和(列必须为数值型)
--AVG:求一列的平均值
--MAX:最大值
--MIN:最小值
--1.查询出生日期在1970-1-1以前的低保人员数量
SELECT Count(*) AS 低保人员数
FROM T_Member
WHERE (((T_Member.Birthday)<#1/1/1970#));
--2.查询年龄最大低保人员(日期最小)
SELECT Min([T_Member].[Birthday]) AS 最早出生日期
FROM T_Member;

[ 本帖最后由 zhaozyuan 于 2009-12-6 16:58 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-11-23 22:56 | 显示全部楼层
5.连接查询:

当查询涉及两个或两个以上的表时,就称为连接查询

查询低保人员的身份证号、成员姓名和单位名称的信息
--1.条件法(WHERE子句)
SELECT a.Identifcard_id, a.Member_Name,b.unit_name
FROM T_Member AS a, T_UnitInfo AS b
WHERE a.unit_id=b.unit_id;
--2.连接法(INNER JOIN
SELECT T_Member.Identifcard_id, T_Member.Member_Name, T_UnitInfo.unit_name
FROM T_Member INNER JOIN T_UnitInfo ON T_Member.unit_id = T_UnitInfo.Unit_id;

[ 本帖最后由 zhaozyuan 于 2009-12-6 00:44 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-11-23 22:58 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
四、SQL更新数据
SQL语言的数据更新功能保证了数据库用户可以对已经建好的数据库进行维护,主要包括修改、删除和插入三类语句:
--1.修改数据(更新语句)

格式:
UPDATE table
SET newvalue
WHERE criteria(条件);

——修改指定身份证号为"413021430615019"的低保人员的出生日期为1943-8-15
UPDATE T_Member AS a, T_UnitInfo AS b
SET a.Birthday = #8/15/1943#
WHERE (((a.Identifcard_id)="413021430615019"));
--2.插入数据

格式:
INSERT INTO target [(field1[,field2[,……]])]
VALUES (value[,value2[,……]])

INSERT INTO T_Member ( Identifcard_id, Birthday, Member_Name, Sex, unit_id )
VALUES ("413021700707019",#7/7/1970#,"吴杰","1","4117080102");
注:SQL server中“双引号”改为“单引号”
--3.删除数据

格式:
DELETE [table.*]
FROM table
WHERE criteria;

DELETE *
FROM T_Member AS x
WHERE x.Member_Name="吴杰";


[ 本帖最后由 zhaozyuan 于 2009-12-6 16:40 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-11-23 23:03 | 显示全部楼层
五、参考文献
[1] 伍云辉等,Excel VBA办公应用开发详解.—北京:电子工业出版社,2008
[2] 李春葆等编著,Access 2003程序设计教程(第2版).—北京:清华大学出版社,2007
低保数据库:
DiBaoDB.rar (26.06 KB, 下载次数: 310)

[ 本帖最后由 zhaozyuan 于 2009-12-6 16:41 编辑 ]

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-16 13:32 , Processed in 0.049231 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表