SQL,全称Structured Query Language,结构化查询语言。
SQL是操作关系数据库的标准语言,是所有关系数据库通用的。
SQL只是制定的一个标准,由具体的关系数据库厂商来实现,所以某些关系数据库可能不支持SQL中的少数语句。
各关系数据数据库在SQL基础上进行一些扩展,增加一些额外的功能,这些额外的功能是该种关系数据库特有的,只能在该种数据库中使用,称为xx数据库的特性。
如果想让程序跨关系数据库,尽量使用SQL,不要使用某种关系数据库特定的功能/语句。
常见的关系型数据库有Oracle、MySQL,
Oracle性能极好,但比较昂贵,大公司用得多;
MySQL开源免费,体积小,性能也不错,中小公司用得多。
数据表是存储数据的逻辑单元。
数据表中,一行称为一条记录,一列称为一个字段。
主键:唯一标识此条记录。
外键:一般使用其它的表的主键作为外键,用于关联其它数据表
SQL语句大致可分为:(待修改)
- 查询语句:select
- DML(Data Manipulation Language,数据操作)语句:操作记录,包括insert、update、delete。
- DDL(Data Definition Language,数据定义)语句:操作数据库对象(一般是表、约束、索引、视图),包括create、alter、drop、truncate。
- DCL(Data Control Language,数据控制)语句:操作数据库用户权限,包括grant、revoke。
- 事务控制语句:包括commit、rollback、savepoint。
数据库对象:
- 表table
- 数据字典:即系统表,一张特殊的表,存储数据库的相关信息,一般由DBMS维护。
- 约束constraint:执行数据校验,保证数据完整性
- 视图view:表中数据的逻辑显示,视图本身并不存储数据
- 索引index:相当于书的目录,用于提高查询性能
- 函数function:完成一次特定的计算
- 存储过程procedure:用于完成一次完整的业务处理
- 触发器trigger:相当于一个事件监听器,当数据库发生特定事件后,触发器被触发,完成相应处理
函数、存储过程、触发器属于数据库编程的内容,需要大量使用数据库特性。
数据库标识符:
- 用于定义表名、列名、变量名等
- 可包含字母、数字、三个特殊字符(#_$),必须以字母开头
- 不能使用当前数据库系统的关键字、保留字
通常使用多个单词连接而成,单词之间用下划线连接。