从事开发也有一段时间了,期间接触SQL也挺长时间了。许多东西也不是理解的特别深刻,所以写写随笔总结归纳一下。

如有不对的地方,欢迎指正!

一.认识SQL

(1) 什么是SQL?

  1.SQL 指结构化查询语言

  2.SQL 使我们有能力访问数据库

  3.SQL 是一种 ANSI 的标准计算机语言

  注意:ANSI,美国标准

(2) SQL能做什么?

  • SQL 面向数据库执行查询
  • SQL 可从数据库取回数据
  • SQL 可在数据库中插入新的记录
  • SQL 可更新数据库中的数据
  • SQL 可从数据库删除记录
  • SQL 可创建新数据库
  • SQL 可在数据库中创建新表
  • SQL 可在数据库中创建存储过程
  • SQL 可在数据库中创建视图
  • SQL 可以设置表、存储过程和视图的权限

(3) 数据库系统

  什么是数据库?举个例子来说明这个问题:每个人都有很多亲戚和朋友,为了保持与他们的联系,我们常常用一个笔记本将他们的姓名、地址、电话等信息都记录下来,这样要査谁的电话或地址就很方便了。这个“通讯录”就是一个最简单的“数据库”,每个人的姓名、地址、电话等信息就是这个数据库中的“数据”。我们可以在笔记本这个“数据库”中添加新朋友的个人信息,也可以由于某个朋友的电话变动而修改他的电话号码这个“数据”。不过说到底,我们使用笔记本这个“数据库”还是为了能随时査到某位亲戚或朋友的地址、邮编或电话号码这些“数据”。

  数据库(Database)是按照数据结构来组织、储存和管理数据的建立在计算机存储设备上的仓库。

  MS Access、DB2、Informix、MS SQL Server、Oracle、Sybase 以及其他数据库系统         PS:好多我也没用过。

他们都有一些相似的地方,比如(SELECT、UPDATE、DELETE、INSERT、WHERE 等等),当然大多数据库都有自己的扩张。可以了解了解。

(4) 数据库表

  一个数据库通常包含一个或多个表。每个表由一个名字标识(表名),表是相关的数据项的集合,它由列和行组成。

  1.字段。

  每个表都可以分解为更小的项。这些项被称为“字段”。字段是表里的一列,用于保持每条记录的特定信息。

  2.记录或一行数据。

  记录,也被称为一行数据,是表里的各行。在关系型数据库的表里,一行数据是指一条完整的记录。

  3.列。

  列是表里的垂直的一项,包含表里特定字段的全部信息。

  4.主键。

  主键用于区分表里的每一条数据,它通常是在表创建过程中初始化的。主键的特性确保了每一条记录都是唯一的。

  5.NULL值。

  NULL 是表示“没有值”的专用术语。如果表中某个字段的值是NULL,其表现形式就是字段为空,其值就是没有值。NULL并不等于0或空格。值为NULL的字段在表创建过程中会保持为空。

  6.索引

  为了提高访问数据库的效率,可以对数据库使用索引。当数据库较大时,为了查找指定的记录,则使用索引和不使用索引的效率有很大差别。索引实际上是一种特殊类型的表,其中含有关键字段的值(由用户定义)和指向实际记录位置的指针,这些值和指针按照特定的顺序(也由用户定义)存储,从而可以以较快的速度查找到所需要的数据记录。

二.数据库语言

SQL  DML(数据库操作语言)      DDL(数据库定义语言)      DQL(数据库查询语言)      DCL(数据库控制语言)

(1) SQL   DML

用于更新、删除和插入记录的语法。

  • UPDATE - 更新数据库表中的数据
  • DELETE - 从数据库表中删除数据
  • INSERT INTO - 向数据库表中插入数据

(2) SQL    DDL

  用于创建或删除表格,也可以定义索引(键),规定表之间的关系,以及添加表间的约束。

  • CREATE DATABASE - 创建新数据库
  • ALTER DATABASE - 修改数据库
  • CREATE TABLE - 创建新表
  • ALTER TABLE - 变更(改变)数据库表
  • DROP TABLE - 删除表
  • CREATE INDEX - 创建索引(搜索键)
  • DROP INDEX - 删除索引

(3) SQL     DQL

  用于执行查询的语法,基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块。

  SELECT <字段名>

  FROM    <表名或视图>

  WHERE  <条件>

(4)  SQL     DCL

  用于创建与用户访问相关的对象,以及控制用户的权限

  • ALTER PASSWORD
  • GRANT  <授权>
  • REVOKE
  • CREATE SYNONYM

这篇文章只是简单的介绍了有关SQL的基本知识!都是一些概念,比较容易理解。下篇文章将介绍SQL语法。

SQL学习入门(一) 概述的更多相关文章

  1. Sql Server新手学习入门

    Sql Server新手学习入门 http://www.tudou.com/home/_117459337

  2. Spark2.x学习笔记:Spark SQL快速入门

    Spark SQL快速入门 本地表 (1)准备数据 [root@node1 ~]# mkdir /tmp/data [root@node1 ~]# cat data/ml-1m/users.dat | ...

  3. TERADATA SQL学习随笔<一>

    此博客内容简介及目录 http://www.cnblogs.com/weibaar/p/6644261.html 最近在TERADATA环境学习SQL.在这里记录一下学习中查过的知识点,作为备案. 目 ...

  4. ORMLite学习入门笔记

    ORMLite学习入门笔记 使用原始的SQLiteHelper来操作维护数据库有点过于繁琐,重复工作量较大.所以会想到使用一个比较方便的ORM来维护我们本地的数据库,各位业界前辈都给我推荐了ORMLi ...

  5. Redis(一):NoSQL入门和概述

    NoSQL入门和概述目录导航: NoSQL入门概述 3V+3高 当下的NoSQL经典应用 NoSQL数据模型简介 NoSQL数据库的四大分类 在分布式数据库中CAP原理CAP+BASE NoSQL 入 ...

  6. SQL 从入门到 DBA 删库跑路

    SQL 从入门到 DBA 删库跑路 一.基础 人员信息表: ID 姓名 性别 出生 婚否 学历 工资 工会 35009449 孙xx 男 1978-2-17 未婚 中专 3000 TRUE 35000 ...

  7. Android Studio快捷键【Android学习入门】

    Studio快捷键[Android学习入门]" title="Android Studio快捷键[Android学习入门]"> 提示 Ctrl+P方法参数提示 Ct ...

  8. 每天成长一点---WEB前端学习入门笔记

    WEB前端学习入门笔记 从今天开始,本人就要学习WEB前端了. 经过老师的建议,说到他每天都会记录下来新的知识点,每天都是在围绕着这些问题来度过,很有必要每天抽出半个小时来写一个知识总结,及时对一天工 ...

  9. C# BackgroundWorker组件学习入门介绍

    C# BackgroundWorker组件学习入门介绍 一个程序中需要进行大量的运算,并且需要在运算过程中支持用户一定的交互,为了获得更好的用户体验,使用BackgroundWorker来完成这一功能 ...

随机推荐

  1. HTML5之indexedDB

    从陌生到了解,花了一下午的时间,以下的地址还是不错的参考资料,省的到处去找 HTML5本地存储——IndexedDB(一:基本使用) 官方API接口文档 官方使用示例 html5 初试 indexed ...

  2. JavaScript函数之实际参数对象(arguments) / callee属性 / caller属性 / 递归调用 / 获取函数名称的方法

    函数的作用域:调用对象 JavaScript中函数的主体是在局部作用域中执行的,该作用域不同于全局作用域.这个新的作用域是通过将调用对象添加到作用域链的头部而创建的(没怎么理解这句话,有理解的亲可以留 ...

  3. Hadoop(十一)Hadoop IO之序列化与比较功能实现详解

    前言 上一篇给大家介绍了Hadoop是怎么样保证数据的完整性的,并且使用Java程序来验证了会产生.crc的校验文件.这一篇给大家分享的是Hadoop的序列化! 一.序列化和反序列化概述 1.1.序列 ...

  4. 如何搭建ftp的yum源

                ftp的yum的搭建步骤 第一步:安装vsftpd程序包(系统已经安装) [root@station40 ~]# rpm -qa |grep vsftpd vsftpd-2.2 ...

  5. 面向接口编程实现不改代码实现Redis单机/集群之间的切换

    开发中一般使用Redis单机,线上使用Redis集群,因此需要实现单机和集群之间的灵活切换 pom配置: <!-- Redis客户端 --> <dependency> < ...

  6. wsimport 命令不是内部命令

    问题: 1. webservice在输入命令的时候wsimport的时候会出现如下错误: wsimport不是内部或者外部命令. 2. javac不是内部或者外部命令 3 java 就可以显示配置成功 ...

  7. sphinx实时索引和高亮显示

    sphinx实时索引和高亮显示 时间 2014-06-25 14:50:58  linux技术分享 -欧阳博客 原文  http://www.wantlearn.net/825 主题 Sphinx数据 ...

  8. 一个简单大方的赞后+1,踩后-1js动画效果

    js部分 <script type="text/javascript"> <!-- $(document).ready(function(e) { $('a.zh ...

  9. POJ3468(线段树 区间修改 lazy-tag)

    我的线段树真的没救了......还是多练几道吧....... You have N integers, A1, A2, ... , AN. You need to deal with two kind ...

  10. rsync 服务部署详解

    第1章 rsync 软件介绍 1.1 什么是rsync rsync 是一款开源的.快速的.多功能的.可实现全量及增量的本地或远程数据同步备份的优秀工具. http://www.samba.org/ft ...