虚位以待(AD)
虚位以待(AD)
首页 > 数据库 > MsSql数据库 > Summary Of SQL

Summary Of SQL
类别:MsSql数据库   作者:码皇   来源:莫利斯安的博客     点击:

SQL基础知识总结1 数据库和数据库管理系统区分:DataBase(DB),DataBase Management System(DBMS) 2 Type of DBMS : 1 层次性数据库(Hierarchical DataBase ,HDB) 2 关系型数据库(Relati

SQL基础知识总结

1.数据库和数据库管理系统区分:DataBase(DB),DataBase Management System(DBMS).
2.Type of DBMS :

1.层次性数据库(Hierarchical DataBase ,HDB)
2.关系型数据库(Relational DB,RDB)
3.面向对象数据库(Object Oriented DB,OODB)
4.XML数据库(XML DB,XMLDB)
5.键值存储系统(Key_Value Store ,KVS)
PS:主要总结的是RDBMS.常见的RDBMS有如下几个:
. Oracle 甲骨文公司
. SQL Server 微软公司
. DB2 IBM公司
. PostgreSQL 开源
. MySQL 同上

3.RDBMS 常见的系统结构:

C/S结构(Client/Server)客户端发出请求,服务器予以回应。

4.表的结构:

根据SQL语句返回的内容也必须是二维表的结构。其中行也称为记录,列也称为字段。关系型数据库以行为单位对数据进行读取。不同于EXCEL中的表格,一个单元格只能存放一个数据,同时也不存在合并单元格的操作。

5.SQL概要:

分为标准SQL和特定SQL。所谓特定来源于不同的RDBMS.

6.SQL 语句分类:

1.DDL(Data Definiton Language,数据定义语言):用来创建或者删除表和数据库包括三个指令:CREATE;DROP;ALTER.
2.DML(Data Manipulation Language,数据操纵语言):用于查询或者变更表中的记录。指令有:SELECT;INSERT;UPDATE;DELETE.
3.DCL(Data Control Language,数据控制语言):用于确认或者取消对数据库中数据的变更。指令:COMMIT;ROLLBACK;GRANT;REVOKE.
90%的语句属于DML.

7.语句书写的基本规则:

. 以分号结尾。
. 不区分关键字的大小写。
. 常数的书写方式是固定的。字符串和日期常数用单引号括起,数字可以直接书写。
. 单词需要用半角空格或者换行来分隔。

8.数据库的操作:

从文件中导入数据库指令:
i C:/<location of="" file's="" name="">.sql;
命名规则:可以使用半角英文字母,半角数字,下划线,但是只能以英文字母作为开头。
**数据类型:**1.integer,char,varchar,date.
约束设置:键值约束,如NOT NULL,PRIMARY KEY 等。
语句语法:对表和数据库的操作语句有三个。create,drop,alter.具体的可以参考文档。

9.select 语句:

select from
其中*可以表示全部列。使用AS设定列的别名,使用汉字当作别名时需要用双引号引起。

select 语句的理解:根据我目前的感觉,是一种循环查找语句。其中可以对查找加以限制和分组。循环的次数由表和限制条件决定。所以当查询常数的时候,会把常熟循环输入同等次数。

在查询的列前面加上distinct可以在结果中去除重读的行。也可以在多列前加上DISTINCT,也只能写一个。

where字句:用列名设置限制条件,记住是列名,身份对等。语句执行的顺序应该是如下的,先选择表,然后根据where的条件选择满足条件的记录集合,在此集合的基础上执行select字句。语句的书写顺序是固定的。

注释的书写方法:单行注释和多行注释。单行是用–;多行是采用/*.类似C++ 的用法。

10.算术运算符和比较运算符,逻辑运算符:

1.select字句中可以使用常熟或者表达式,表达式的定义可以参考C++,这个地方指的的是对列名进行加减运算。
2.包含NULL的计算结果肯定是NULL.
3.比较运算符用于where字句中对条件进行设置。注意不等号的书写即可.<>(这个是不等号) .其余的比较常见。
4.不要对NULL使用比较运算符。若要对NULL进行操作的话,可以使用特定的运算符,比如 IS NULL ;IS NOT NULL.
5.有AND,OR,NOT.很常见。
6.特有的三值逻辑:出来真/假,外加一个不确定,比如NULL是不确定的。所以逻辑运算中有了NULL时,要慎重。但是可以对列设置NOT NULL 约束。

11.聚合查询:

1.五个聚合函数:count,sum,max,min,avg.都很常见。count用于统计行数。sum/max/min/avg按照字面值理解即可。
行数中对NULL是否统计的说明:count(*)指令会包含NULL,但是对特定的列使用时不包括NULL行。
此外只有count函数可以使用*,其余的不能。使用此函数时可以在函数体内使用distinct(此限制是针对列名),写在外面执行的先后不同。

12.GROUP BY字句:

使用此字句可以进行分组,NULL也算一组。用于分组的列名可以称为聚合键或者分组列。主要语句组合时的执行顺序。比如select * from max where col='max' group by col; 顺序是from ,where ,group by ,select .

使用时常见的错误:1.在select字句中写了聚合键之外的列名,count(*)不算。2.在group by字句中使用了列的别名。3.在where字句中是用了聚合函数,上文已经说过,where字句的操作对象是列名,但是使用了聚合函数是一个集合。
group by 字句和 having 字句搭配使用。
order by 排序,默认asc,可以选择desc.可以指定多个排序键。order by字句是最后执行的,所以不要随便使用别名。

13.数据的插入删除:

1.insert 语句使用
2.insert ..select 实现表之间的拷贝。
3.delete from ;
4搜索型DELETE:
DELETE FROM WHERE ;
5.数据的更新:
update set =;
6.搜索型update类似delete。
7.多列更新语句。
8.事务定义:在同一个处理单元中执行的一系列更新处理集合。类似编程语言中的语句块。
语法格式:
begin transaction ;commit(rollback);
不同的RDBMS有点区别,具体可以查看文档。
事务的四个特性:ACID

14.视图:

语法:
CREATE VIEW (列1,..列n) AS

相关热词搜索: SummaryOfSQL