从事开发也有一段时间了,期间接触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. 搭建阿里云 centos mysql tomcat jdk

    [toc] 阿里云使用centos 登录 http://www.aliyun.com/ 点击登录 进入控制 https://home.console.aliyun.com/ 云服务器 运行中 把ip输 ...

  2. Mysql编写sql语句的小技巧

    1.查询数据(保证查询性能) SELECT * 和 SELECT t.id , t.name:后者性能其实总体优于前者. 2.在查询的时候最好给表起个 别名,方便找到表中要查询的字段.执行sql的进行 ...

  3. MySQL索引(1)

    所有MySQL列类型都可以被索引,对相关列使用索引是提高SELECT操作性能的最佳途径.根据存储引擎可以定义 每个表的最大索引数和最大索引长度,每种存储引擎(如MyISAM.InnoDB.BDB.ME ...

  4. vue数据请求

    我是vue菜鸟,第一次用vue做项目,写一些自己的理解,可能有些不正确,欢迎纠正. vue开发环境要配置本地代理服务.把config文件加下的index.js里的dev添加一些内容, dev: { e ...

  5. jquery的2.0.3版本源码系列(7):3043行-3183行,deferred延迟对象,对异步的统一管理

    目录 part1 deferred延迟对象 part2  when辅助方法 网盘源代码 链接: https://pan.baidu.com/s/1skAj8Jj 密码: izta part1 defe ...

  6. Vue源码后记-其余内置指令(1)

    把其余的内置指令也搞完吧,来一个全家桶. 案例如下: <body> <div id='app'> <div v-if="vIfIter" v-bind ...

  7. Cloud9 on Docker镜像发送

    老外有做过几个cloud9的镜像,但是都有各种各样的问题. 小弟在此做了一个docker镜像,特此分享,希望各位大佬多提宝贵意见.谢谢. Cloud9 Online IDE Coding anywhe ...

  8. 你真的懂offset与scroll吗?

    背景 身为一个前端工程师,每次在做关于滚动或者定位之类的交互时,或多或少都会用到offset.scroll之类的元素属性值来计算距离,但是每次都是现用现百度,从来没有真正系统地弄明白其中的原理及用法: ...

  9. SQL注入技术

    TalkTalk的信息泄漏事件导致约15万人的敏感信息被暴露,涉嫌造成这一事件的其中一名黑客使用的并不是很新的技术.事实上,该技术的「年纪」比这名15岁黑客还要大两岁. [译注:TalkTalk是英国 ...

  10. 2016年中国大学生程序设计竞赛(杭州)1006 Four Operations

    Four Operations Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...