本科是学过这门课 却只是坐在后面和儿子一起玩,哈哈终于明白当年自己欠的帐还是要还的~
那么开始咯!
呃呃,这次是先简单的过一遍,很多细节先略过没有时间啦~~
结构化查询语言是 Structured Query Language 简称SQL(发音:/ˈes kjuː ˈel/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。 结构化查询语言是高级的非过程化编程,面向问题编程,只需要知道把大象装进冰箱就好,不需要只需要三步和需要的是哪三步~
【一些基础概念】
1.catalog/database数据库
2.table表
3.column列
4.datatype数据类型
5.record记录
6.primarykey主键
7.表关联
8.索引 index
【语句主要功能】
SQL语句具有4个主要功能:
1、 创建数据库并定义表的结构;
2、 查询需要的数据;
3、 更新或者删除、修改指定的数据;
4、 控制数据库的安全。
【三种方式执行SQL】
1. 在工具中执行
如:各个DBMS几乎都提供了工具用于执行SQL语句,比如MicrosoftSQL Server的Management Studio、DB2的命令中心、Oracle的SqlPlus或者MySQL的QueryBrowser。
2、 以编译的方式嵌入到语言中
把SQL直接写到代码中,在编译的时候由编译器来决定和数据库的交互方式。
3、 以字符串的形式嵌入到语言中。
写到代码中,由代码将其提交到DBMS,并且分析返回的结果。
【增删改查】
插入 INSERT INTO Table ()values()
删除 DELETE From Table where parameter = #
更新 UPDATE Table set parameter = #
查询 SELECT * From Table;
【数据汇总】
SQL提供了一些聚合函数完成计算统计结果集条数、某个字段的最大值、某字段的最小值、平均值以及求和等数据统计的功能。SQL标准中规定了几种聚合函数:
函数名: MAX MIN AVG SUM COUNT
(不做解释)
【高级数据过滤】四种:通配符过滤、多值检测、数据分组、HAVING语句
1、 通配符过滤:SQL中的通配符过滤使用LIKE关键字
例子:
SELECT * FROM Student
WHERE name LIKE " XXX "
1.1 单通配符过滤:使用半角下划线“_” 表示任意一个字符,如 "杨_" 姓杨名一个字的名字
1.2 多字符匹配:使用半角百分号“%”表示任意多个字符 ,如"杨%" 姓杨的所有名字
1.3 集合匹配:使用“[]”,还可以使用否定符“^”来对集合取反。如“[^bt]%”代表,匹配第一个字符不为b或者t、长度不限的字符串。
集合匹配只在MSSQLServer上提供支持,不过在其他数据库中我们可以通过变通手段来实现相同的效果。
通配符过滤是一个非常强大的功能,不过在使用通配符过滤进行检索的时候,数据库系统会对全表进行扫描,所以执行速度非常慢。
2、 多值检测
使用方法为“IN (值1,值2,值3)”
WHERE name IN(张三,李四,王五)
3、 数据分组
数据分组用啦将数据分为多个逻辑组,从而可以对每个组进行聚合运算。SQL语句中使用GROUP BY子句进行分组。
4、 HAVING语句
有的时候需要对部分分组进行过滤,HAVING语句能够使用的语法和where几乎是一样的。
【限制结果集行数】
如:MSSQLServer 2000中提供了TOP关键字用来返回结果集中的前N条记录。
【数据库分页】
在进行信息检索的时候,检索结果的数量通常会非常多,达到成百上千条。甚至更多,这么多的检索结果同时显示在同一个界面中,不仅查看起来非常麻烦,而且过多的数据显示在界面上也会造成占用过多的系统资源。解决这个问题的最常用方案就是数据库分页。
【抑制数据重复】
DISTINCT关键字是用来进行重复数据抑制的最简单的功能,而且所有的数据库系统都支持DISTINCT,DISTINCT的使用也非常简单,只要在SELECT之后增加DISTINCT即可。