数据库和SQL语句

数据库分类:

关系型数据库

关系数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。标准数据查询语言SQL就是一种基于关系数据库的语言,这种语言执行对关系数据库中数据的检索和操作。 关系模型由关系数据结构、关系操作集合、关系完整性约束三部分组成。

目前主流的关系型数据库有Oracle,Mysql,SqlServer

非关系型数据库

NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。

NoSQL数据库分类

键值(Key-Value)存储数据库

这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。Key/value模型对于IT系统来说的优势在于简单、易部署。但是如果DBA只对部分值进行查询或更新的时候,Key/value就显得效率低下了。[3]  举例如:Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB.

列存储数据库。

这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。如:Cassandra, HBase, Riak.

文档型数据库

文档型数据库的灵感是来自于Lotus Notes办公软件的,而且它同第一种键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可 以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。如:CouchDB, MongoDb. 国内也有文档型数据库SequoiaDB,已经开源。

图形(Graph)数据库

图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要制定数据模型。许多NoSQL数据库都有REST式的数据接口或者查询API。[2]  如:Neo4J, InfoGrid, Infinite Graph.

NoSQL数据库的使用场景

NoSQL数据库在以下的这几种情况下比较适用:1、数据模型比较简单;2、需要灵活性更强的IT系统;3、对数据库性能要求较高;4、不需要高度的数据一致性;5、对于给定key,比较容易映射复杂值的环境。

SQL语句

SQL(structed query language) 结构化的查询语言:

DDL(Data Definition Language) 数据定义语言,命令:CREATE, DROP,ALTER 等

DML(Data Manipulation Language) 数据操纵语言,命令:INSERT、UPDATE、DELETE

DQL(Data Query Language) 数据查询语言,命令:SELECT

CRUD操作,指在做计算处理时的增加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)

DDL是针对数据库和表结构的,其它的是针对表中的数据的。

创建数据库

CREATE DATABASE [IF NOT EXISTS]  db_name

[DEFAULT]  CHARACTER SET charaset_name  指定数据库采用的字符集

[DEFAULT]  COLLATE  collation_name            指定数据库字符集的比较方式

字符集的支持分为四个层次:

服务器(server),数据库(database),数据表(table)和连接(connection):

character_set_server:这是设置服务器使用的字符集

character_set_client :这是设置客户端发送查询使用的字符集

character_set_connection :这是设置服务器需要将收到的查询串转换成的字符集

character_set_results :这是设置服务器要将结果数据转换到的字符集,转换后才发送给客户端

显示数据库语句

SHOW DATABASES

显示数据库创建语句

SHOW CREATE DATABASE db_name

修改数据库

ALTER DATABASE db_name   character  set  utf8

数据库删除语句

DROP DATABASE [IF EXITS] db_name

同时修改列名和列的数据类型的方法:通常可以写成 alter table 表名 change column 旧列名 新列名 新的列类型

创建表(基本语句)

CREATE TABLE table_name        注意:创建表前,要先使用use db语句使用库。

(

field1 datatype,

field2 datatype,

field3 datatype,

field4 datatype,

....

)character  字符集 collate 校对规则

显示所有表

SHOW TABLES

显示表的创建语句

SHOW CREATE TABLE table_name

显示表的结构

DESC table_name

删除表

DROP TABLE table_name

使用 ALTER TABLE 语句追加, 修改, 或删除列的语法.

ALTER TABLE table

ADD (column datatype [DEFAULT expr]

[ , column datatype]....);

ALTER TABLE table

MODIFY (column datatype [DEFAULT expr]

[ , column datatype]....);

ALTER TABLE table

DROP (column);

修改表的名称:Rename table 表名 to 新表名

修改表的字符集:alter table student character set utf8

C(create增加数据) Insert语句

INSERT INTO  table [(column [, column...])]

VALUES (value [, value...]);

插入的数据应与字段的数据类型相同。数据的大小应在列的规定范围内,例如:不能将一个长度为80的字符串加入到长度为40的列中。在values中列出的数据位置必须与被加入的列的排列位置相对应。字符和日期型数据应包含在单引号中。插入空值,不指定或insert into table value(null)

U(update更新数据) Update语句

UPDATE  tbl_name

SET col_name1=expr1 [, col_name2=expr2 ...]

[WHERE where_definition]

UPDATE语法可以用新值更新原有表行中的各列。SET子句指示要修改哪些列和要给予哪些值。WHERE子句指定应更新哪些行。如没有WHERE子句,则更新所有的行

D(drop删除数据) Delete语句

delete from tbl_name

[WHERE where_definition]

如果不使用where子句,将删除表中所有数据。Delete语句不能删除某一列的值(可使用update)使用delete语句仅删除记录,不删除表本身。如要删除表,使用drop table语句。同insert和update一样,从一个表中删除记录将引起其它表的参照完整性问题,在修改数据库数据时,头脑中应该始终不要忘记这个潜在的问题。

R(Retrieve查找数据) Select语句

SELECT [DISTINCT] *|{column1, column2. column3..}

FROM   table;

Select 指定查询哪些列的数据。column指定列名。*号代表查询所有列。From指定查询哪张表。DISTINCT可选,指显示结果时,是否剔除重复数据

在select语句中可使用表达式对查询的列进行运算

SELECT *|{column1|expression, column2|expression,..}

FROM  table;

在select语句中可使用as语句

SELECT column as 别名 from 表名;

使用order by 子句排序查询结果

SELECT column1, column2. column3..

FROM  table;

order by column asc|desc

Order by 指定排序的列,排序的列即可是表中的列名,也可以是select 语句后指定的列名。Asc 升序、Desc 降序ORDER BY 子句应位于SELECT语句的结尾。

使用group by 子句对列进行分组

SELECT column1, column2. column3.. FROM  table;

group by column

使用having 子句过滤

SELECT column1, column2. column3..

FROM  table;

group by column having ...

Having和where均可实现过滤,但在having可以使用合计函数,having通常跟在group by后,它 作用于组。

SQL函数:

合计函数-count

Count(列名)返回某一列,行的总数

Select count(*)|count(列名) from tablename

[WHERE where_definition]

合计函数-SUM

Sum函数返回满足where条件的行的和

Select sum(列名){,sum(列名)…} from tablename

[WHERE where_definition]

合计函数-AVG

AVG函数返回满足where条件的一列的平均值

Select sum(列名){,sum(列名)…} from tablename

[WHERE where_definition]

合计函数-MAX/MIN

Max/min函数返回满足where条件的一列的最大/最小值

Select max(列名) from tablename

[WHERE where_definition]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,569评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,499评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,271评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,087评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,474评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,670评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,911评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,636评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,397评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,607评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,093评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,418评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,074评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,092评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,865评论 0 196
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,726评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,627评论 2 270

推荐阅读更多精彩内容