基础概念和一些基础SQL语句

数据库基本概念

数据库:保存有组织的数据的容器(通常是一个文件或一组文件)。
表:某种特定类型数据的结构化清单,数据库中的表都有一个唯一的名字用来标识自己。
模式:关于数据库和表的布局及特性的信息。
列:表中的一个字段。所有表都是由一个或多个列组成,每个列都有对应的数据类型。
行:表中的一个记录。
主键:一列(或一组列),其值能够唯一区分表中每个行(每条记录)。
任意两行都不具有相同的主键值,每个行都必须具有一个主键值(主键值列不允许NULL值)。
SQL:一种专门用来与数据库通信的语言,SQL不依赖DBMS的存在而存在。

DDL—数据定义语言(Create,Alter,Drop,DECLARE) 
DML—数据操纵语言(Select,Delete,Update,Insert) 
DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 

 

根据已有的表创建新表: 
A:create table tab_new like tab_old (使用旧表创建新表) 
B:create table tab_new as select col1,col2… from tab_old definition only

 

几个简单的基本的sql语句

选择:select * from table1 where 范围 
插入:insert into table1(field1,field2) values(value1,value2) 
删除:delete from table1 where 范围 
更新:update table1 set field1=value1 where 范围 
查找:select * from table1 where field1 like '%value1%' ---like的语法很精妙,查资料! 
排序:select * from table1 order by field1,field2 [desc] 
总数:select count as totalcount from table1 
求和:select sum(field1) as sumvalue from table1 
平均:select avg(field1) as avgvalue from table1 
最大:select max(field1) as maxvalue from table1 
最小:select min(field1) as minvalue from table1 

 

几个高级查询运算词 

A: UNION 运算符 
UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生 
出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派 
生表的每一行不是来自 TABLE1 就是来自 TABLE2。 
B: EXCEPT 运算符 
EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个 
结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。 
C: INTERSECT 运算符 
INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果 
表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。 
注:使用运算词的几个查询结果行必须是一致的。 

 

使用外连接 

A、left outer join: 
左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。 
sql: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c 
B:right outer join: 
右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。 
C:full outer join: 
全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。 

 

SHOW

SHOW DATABASES;(;可用\g代替):显示当前安装的数据库
SHOW TABLES; 查看当前数据库中的可用表的列表
SHOW COLUMNS FROM tablename; 查看某个表中的内容,它对每个字段返回一行,行中包含字段名、数据类型、是否允许NULL、键信息、默认值以及其他信息
DESCRIBE tablename; 和 SHOW COLUMNS FROM tablename; 具有相同的功能,前者是后者的缩写版。
SHOW STATUS; 用来显示广泛的服务器状态信息。
SHOW CREATE DATABASE databasename; 用来显示创建特定数据库的MySQL语句。
SHOW CREATE TABLE tablename; 用来显示创建特定表的MySQL语句。
SHOW GRANTS; 用来显示授权用户(所有用户或特定用户)的安全权限。
SHOW ERRORS; 用来显示服务器错误
SHOW WARNINGS; 用来显示服务器的警告消息

 

SELECT

SELECT columnname FROM tablename; 用来检索数据表中的coulumnname列中的内容
SELECT row1,row2... FROM tablename; 用来检索数据表中的row1,row2...行的内容
SELECT * FROM tablename; *为通配符,用来检索表中的所有列
SELECT DISTINCT key FROM tablename; 用来检索表中不同值key的行
SELECT key FROM tablename LIMIT num; 返回key的前num行数据
SELECT key FROM tablename LIMIT num1,num2; 返回表中key的以num1为起点后num2行
SELECT tablename.colunname FROM tablename; 用来检索数据表中的coulumnname列中的内容,但是同时列出了表明和列名(完全限定)
SELECT coulumname FROM tablename ORDER BY key; 以key为导向排序(升序ASC,可省略)
SELECT coulumname FROM tablename ORDER BY key DESC; 以key为导向排序(降序,注:当有多个key时DESC只作用于直接位于其前面的key)
SELECT coulumname FROM tablename WHERE condition; 按照条件condition从表中检索指定列中的数据(WHERE子句在FROM子句后给出)
SELECT coulumname FROM tablename WHERE key BETWEEN c1 AND c2; 从表中检索指定列中在条件c1和c2之间的数据(c1 <= c2)
SELECT coulumname FROM tablename WHERE key IS NULL; 从表中检索key中为NULL的数据

 

操作符

用来联结或改变WHERE子句中的子句的关键字。

AND操作符:

用在WHERE子句中的关键字,用来指示检索满足 所有 给定条件的行。

OR操作符:

用在WHERE子句中的关键字,用来表示检索匹配 任一 给定条件的行。

IN操作符:

用在WHERE子句中的关键字,用来指定要匹配值的清单的关键字(取合法值的由逗号分割开的清单,全在圆括号中),功能与OR相当。

NOT操作符:

用在WHERE子句中的关键字,用来否定它之后所跟的任何条件。

BETWEEN操作符:

用在WHERE子句中的关键字,用来检查某个范围的值。

 

通配符

用来匹配值的一部分的特殊字符。为在搜索子句中使用通配符,必须使用LIKE谓词。LIKE指示MySQL后跟的搜索模式利用通配符匹配而不是直接相等匹配进行比较。

%通配符:

表示任何字符出现的任一次数。

_通配符:

下划线通配符 _ 用途与%一样,但下划线只匹配单个字符而不是多个字符。

 

posted @ 2017-04-28 15:32  calmly  阅读(6899)  评论(0编辑  收藏  举报