分类: Mysql/postgreSQL
2012-09-27 10:49:12
SQL是结构化查询语言,是一种计算机语言,存储,处理和检索存储在关系数据库中的数据。
SQL是关系型数据库系统的标准语言。所有关系数据库管理系统,如MySQL,MS-ACCESS,Oracle,SYBASE,Informix,Postgres和SQL服务器使用SQL标准的数据库语言。
此外,他们使用的是不同的方言,如:
MS-SQL 服务T-SQL,
Oracle 使用PL/SQL,
MS Access 的SQL是被JET SQL (native format )调用
允许用户访问关系数据库管理系统中的数据。
允许用户对数据进行描述。
允许用户定义数据库中的数据和操作这些数据。
允许嵌入其他语言中,使用SQL模块,库和预编译器。
允许用户创建和删除数据库和表。
允许用户创建视图,存储过程,在数据库中的功能。
允许用户设置权限表,过程和视图
RDBMS代表关系数据库管理系统。 RDBMS是SQL基础,并为所有现代数据库系统如MS SQL Server,IBM DB2,甲骨文,MySQL的,和Microsoft Access。
一个关系数据库管理系统(RDBMS)是一个数据库管理系统(DBMS)的基础上推出由EF Codd的关系模型。
表是什么 ?在RDBMS的数据存储在被称为表的数据库对象。该表是相关的数据项的集合,它由列和行组成。
请记住,表中的数据存储在关系数据库中,是最常见的和最简单的形式。
字段是什么?每个表被分解成更小的实体称为字段。 CUSTOMERS表中的字段包括ID,姓名,年龄,地址和薪水(SALARY)。
字段是表中的列,目的是维护表中的每一条记录的具体信息。
记录或行是什么?记录也称为行数据,是每一个单独的项目中存在一个表中。例如,在上面的CUSTOMERS表中有7条记录。
表中的记录是水平的实体。
列是什么?列是垂直的实体在一个表,包含所有相关的信息与特定的表中的字段。
NULL值是什么?一个NULL在表中的值是空白的,这意味着一个NULL值的字段的字段没有值的字段中的值。
这是非常重要的是要了解的是一个NULL值是不同的,不是一个零值或字段中包含空格。一个NULL值的字段是空白的记录创建过程中。
SQL约束:约束是执行规则的数据表中的列。这些是用来限制可以去到一个表中的数据的类型。这确保了在数据库中的数据的准确性和可靠性。
约束上可能是列级或表级。仅适用于表级约束被应用到整个表的一列列级约束。
SQL语法:SQL后面是唯一的一组称为语法规则和准则。本教程为您提供了一个快速启动SQL列出的所有基本的SQL语法:
所有的SQL语句从关键字开始,如SELECT,INSERT,UPDATE,DELETE,ALTER,DROP,CREATE,USE,SHOW,所有的陈述结束用分号(;)。
重要的一点要注意的是,SQL是不区分大小写的,这意味着选择在SQL语句中,选择具有相同的意义,但MySQL的表名不同。所以如果你使用MySQL,那么需要给它们存在于数据库中的表名称。
SQL SELECT 语句:SELECT column1, column2....columnN FROM table_name; SQL DISTINCT 子句:SELECT DISTINCT column1, column2....columnN FROM table_name; SQL WHERE 子句:SELECT column1, column2....columnN FROM table_name WHERE CONDITION; SQL AND/OR 子句:SELECT column1, column2....columnN FROM table_name WHERE CONDITION-1 {AND|OR} CONDITION-2; SQL IN 子句:SELECT column1, column2....columnN FROM table_name WHERE column_name IN (val-1, val-2,...val-N); SQL BETWEEN 子句:SELECT column1, column2....columnN FROM table_name WHERE column_name BETWEEN val-1 AND val-2; SQL Like 子句:SELECT column1, column2....columnN FROM table_name WHERE column_name LIKE { PATTERN }; SQL ORDER BY Clause:SELECT column1, column2....columnN FROM table_name WHERE CONDITION ORDER BY column_name {ASC|DESC}; SQL GROUP BY 子句:SELECT SUM(column_name) FROM table_name WHERE CONDITION GROUP BY column_name; SQL COUNT 子句:SELECT COUNT(column_name) FROM table_name WHERE CONDITION; SQL HAVING 子句:SELECT SUM(column_name) FROM table_name WHERE CONDITION GROUP BY column_name HAVING (arithematic function condition); SQL CREATE TABLE 语句:CREATE TABLE table_name( column1 datatype, column2 datatype, column3 datatype, ..... columnN datatype, PRIMARY KEY( one or more columns ) ); SQL DROP TABLE 语句:DROP TABLE table_name; SQL CREATE INDEX 语句 :CREATE UNIQUE INDEX index_name ON table_name ( column1, column2,...columnN); SQL DROP INDEX 语句 :ALTER TABLE table_name DROP INDEX index_name; SQL DESC 语句:DESC table_name; SQL TRUNCATE TABLE 语句:TRUNCATE TABLE table_name; SQL ALTER TABLE 语句:ALTER TABLE table_name {ADD|DROP|MODIFY} column_name {data_ype}; SQL ALTER TABLE 语句 (重命名) :ALTER TABLE table_name RENAME TO new_table_name; SQL INSERT INTO 语句:INSERT INTO table_name( column1, column2....columnN) VALUES ( value1, value2....valueN); SQL UPDATE 语句:UPDATE table_name SET column1 = value1, column2 = value2....columnN=valueN [ WHERE CONDITION ]; SQL DELETE 语句:DELETE FROM table_name WHERE {CONDITION}; SQL CREATE DATABASE 语句:CREATE DATABASE database_name; SQL DROP DATABASE 语句:DROP DATABASE database_name; SQL USE 语句:USE DATABASE database_name; SQL COMMIT 语句:COMMIT; SQL ROLLBACK 语句:ROLLBACK; SQL - 操作符:SQL 算术运算符:假设变量的值为10,变量b的值为20:
运算符 | 描述 | 例子 |
---|---|---|
+ | 加法 -添加任一侧上的操作符的值 | a + b 得到 30 |
- | 减法 - 从左边减去右边操作数的操作 | a - b 得到 -10 |
* | 乘法 - 操作符两侧的值相乘 | a * b 得到 200 |
/ | 除 - 将左边除右边的操作数(取模) | b / a 得到 2 |
% | 模量 - 将左边用右手操作,并返回操作数的余数 | b % a 得到 0 |
假设变量的值为10,变量b的值为20:
操作符 | 描述 | Example |
---|---|---|
= | 检查如果两个操作数的值是相等或不相等,如果是的话,条件为真。 | (a = b) is not true. |
!= | 检查如果两个操作数的值是否相等,如果值不相等,则条件为真。 | (a != b) is true. |
<> | 检查如果两个操作数的值是否相等,如果值不相等,则条件为真。 | (a <> b) is true. |
> | 检查值,如果左操作数大于右操作数的值,如果是的话,条件为真。 | (a > b) is not true. |
< | 检查如果左操作数的值小于右操作数的值,如果是的话,条件为真。 | (a < b) is true. |
>= | 检查如果左操作数的值大于或等于右操作数的值,如果是的话,条件为真。 | (a >= b) is not true. |
<= | 检查如果左操作数的值小于或等于右操作数的值,如果是的话,条件为真。 | (a <= b) is true. |
!< | 检查如果左操作数的值不小于右操作数的值,如果是的话,条件为真。 | (a !< b) is false. |
!> | 检查如果左操作数的值是不大于右操作数的值,如果是的话,条件为真。 | (a !> b) is true. |
这是在SQL所有的逻辑运算符的列表。
操作符 | 描述 |
---|---|
ALL | 所有运算符用于比较的值到另一个值组中的所有值。 |
AND | AND运算符允许多个条件的存在,在一个SQL语句中的WHERE子句。 |
ANY | ANY运算符用于比较的值在列表中根据任何适用的条件。 |
BETWEEN | BETWEEN运算符用于搜索一组值的范围内的值,给定的最小值和最大值。 |
EXISTS | 存在指定的表中符合特定条件的运算符用于搜索存在的一行记录。 |
IN | IN操作符用来比较的文字值已指定一个值的列表。 |
LIKE | LIKE运算符用于比较相似的值,使用通配符的值。 |
NOT | NOT运算符的含义相反的逻辑运算符,它被使用如 NOT EXISTS, NOT BETWEEN, NOT IN 等,这是一个相反的运算符。 |
OR | 使用OR运算符结合SQL语句的WHERE子句中的多个条件。 |
IS NULL | NULL操作符用来比较NULL的值。 |
UNIQUE | 独特的操作符搜索指定的表中的每一行的唯一性(不重复)。 |
SQL有许多内置的函数,字符串或数字数据进行处理。以下是所有有用的SQL内置函数的列表:
- SQL COUNT集合函数用于在数据库表中的行数计算。
- SQL MAX聚合函数允许我们选择某列的最高(最大)值。
- SQL MIN聚合函数允许我们选择某列的最低(最小)值。
- SQL AVG聚合函数选择一定的表列的平均值。
- SQL SUM聚合函数可以选择的总数字列。
- 这是用来生成一个给定的数目的平方根。
- 这是用来产生一个随机数,使用SQL命令。
- 这是用来连接任何字符串内的任何SQL命令。