我们知道,关系数据库通过表来管理数据,数据库中可以同时存储多张表,数据库管理的是表,那么谁来管理数据库呢?

数据库由数据库管理系统(DBMS)来操纵和管理,终端用户通过dbms访问数据库中的数据,数据库管理员也是通过dbms进行数据库的维护工作。

数据库管理系统管理数据库,包括创建数据库,修改数据库,查询数据,更改数据等等。

数据库管理员维护数据库,不是直接操作,而是通过SQL语言来操作。其中客户端通过书写SQL语句调取数据库的数据,数据库管理系统将取出的数据发送到客户端。

了解了什么是SQL之后,再来看SQL有哪些特点?

特点1:SQL不是某个特定数据库专有的语言。

也就是说,学习此语言几乎能与所有数据库打交道,无论是MY SQL,还是sql  server,还是其它数据库。

特点2:SQL语言简洁,易学易用

SQL功能极强,完成核心功能只用了9个动词,可以看到,数据定义,数据查询,数据操纵,数据控制,总共才9个描述性动词,全都是由描述性很强的英语单词组成。但是这9个动词却能完成SQL90%的功能。

特点3:可以进行非常复杂和高级的数据库操作。

SQL尽管看上去很简单,但它实际上是一种强有力的语言,灵活使用这些语言,可以进行非常复杂和高级的数据库操作。包括数据更新,子查询,复杂查询,分组统计,多表查询...

SQL语言的分类

SQL是用于访问和处理数据库的标准的计算机语言,SQL语言包含三部分:包括数据定义语言,数据操纵语言,数据控制语言。

【数据定义语言】主要用来创建数据库中各种表,视图,或者索引,它的操作对象是一张表或者一个视图,不直接对表中的数据进行操作。

【数据操作语言】主要用来实现对数据库的基本操作,包括查询,插入,修改数据,也就是我们平时说的增删改查它的操作对象是数据表中的某一行数据或者某几行数据。

【数据控制语言】是用来授权或者回收权利的,并且能控制数据库操纵发生的时间和效果,对数据库实行监视。

首先来看数据定义语言:DDL

它的操作语言包括表,视图,索引。它针对的是数据的逻辑结构,不涉及具体的数据。数据定义语言常见的关键动词是creat 创建,drop,删除,alter修改。

SQL的数据定义包括数据库定义,表的定义,索引的定义和视图的定义

这是SQL 中最重要的 DDL 语句

SQL语言还包括【数据操纵语言DML】

数据操纵语言的操作对象是表中的一行数据或者几行数据,它涉及的是具体的数字。数据操纵语言常用的关键动词有insert (插入),update(更新),delete(删除)Select(查询)。

简单来说,SQL的数据操纵语言包括增,删,改,查四项功能,

其中,增,删,改这三项都属于对数据库进行更新操作,查询和更新指令共同构成了SQL的DML部分。另外,SQL 主要是用于执行查询,或者说查询是数据操作语言最常用的功能。

数据控制语言DCL

数据控制语言的操作对象是整个数据库,它主要的功能是权限管理。数据控制语言常用的关键动词有grant  ,授权,和revoke撤回这两种。

权限是系统内定的一些“名词”(单词),比如在mysql中,大约30个权限,每个权限表示“可以做什么工作”。 

分配权限就是相当于让某个用户可以做哪些工作。这些主要权限我们简单了解一下就可以了,因为对权限的管理更多的是由数据库管理员DBA来使用。

数据控制语言 (DCL)

包括:增加权限GRANT,撤回权限REVOKE,它是针对数据库的操作。

SQL的这三类语言有哪些区别呢,我们再来总结一遍:

(1)DDL:数据定义语言

DDL主要用来定义表或者改变表结构,数据类型,表之间的链接和约束等初始化工作。常用的数据操作有CREATE,ALTER,DROP等,CREATE,可以创建数据库或者数据库中的一些对象。ALTER,修改数据定义或属性,如字段的类型,大小等等。

DROP,删除表结构及数据属性DDL的操作对象包括表,视图索引等等。DDL主要是对表的属性进行约束,或者说他针对的是表格结构的操作,不会对数据内容进行操作。

(2)DML:数据操作语言

包括增删改查(INSERT,DELETE,UPDATE,SELECT),对数据进行操作的语言。DML的操作单位是记录(RECORD)。INSERT,即插入一条或多条记录。DELETE,即删除一条或者多条记录。

UPDATE,即更新表中记录的内容。SQL 主要是用于执行查询,或者说查询是数据操作语言最常用的功能.

(3)DCL:数据控制语言

常用的有GRANT,REVOKE,DENY等,用来控制数据库用户和角色的权限的语句。

GRANT,授权;REVOKE,回收权限;

总结:简单来说,DDL(data definition language)是对数据对象和对象属性进行操作的语言,它的操作会改变表结构,表类型等等数据属性,但是不会改变数据内容。DML(data manipulation language)是对数据内容进行操作的语言,它的最小操作单位是行;DCL(data control language)数据控制语言,用于限定数据库用户的权限。

刚才我们提到,SQL的数据操纵语言可以用增,删,改,查四个字来概括,我们首先来了解下这4种操作的语法,

  1. 增指的是SQL 可在数据库中插入新的记录

比如使用insert关键词插入单行数据:它的语法是insert [into] [列名] values ,insert 在英文中是插入的意思,values在英文中是数值的意思。

例如,有一个学生表students,有3个字段,姓名,性别,出生日期,我们想在这张表中增加一行记录,这行记录的姓名是王伟华,性别是男,出生日期是1983/6/15,

Sql语句可以这样写:insert into Students (姓名,性别,出生日期) values ('王伟华','男','1983/6/15')

再比如:使用insert,select语句将现有表中的数据添加到已有的新表中。

具体语法是insert into ,select from ,这个语句可以理解为分成两部,第一步select from ,它的意思是将原表的几行数据选出来,第二步,insert into ,将选出的数据插入到新表中。比如这个案例insert into addressList ('姓名','地址','电子邮件')

select name,address,email from  Students

它所表达的意思就是将学生表Students中的姓名,地址和电子邮箱查询出来,然后插入到新表中,这个新表的表名是addressList,新表的字段有3个,分别是 (中文的 '姓名','地址','电子邮件')。

删指的是SQL 可从数据库中删除记录

例1:比如下面这个案例就是使用delete删除表中某行数据

它的语法是:delete from [where ] ,

它所表达的意思是先把符合删除条件的行找出来,然后再表中删除它。比如上面这个案例是delete from a where name=“王伟华”,它的意思是删除表a中列值为王伟华的行) 

需要大家注意的是:删除整行不是删除单个字段,包括我们所讲的增删改查,都是针对表中某一行数据或者几行数据,不是只删除半行或只删除几个字段。

所以在delete后面不能出现字段名,比如我们想删除王伟华,不能直接写delete王伟华,应该先把王伟华所在的行找出来,然后再删除它。

数据操作语言第三种:【改】:指的是SQL 可更新修改数据库中的数据

例1 我们使用的update关键词来更新修改数据 ,

具体语法是update set [where ],它所表达的意思是首先把需要更新的行或者满足更新条件的行选出来,然后重新设置它的列名。例如下面这个案例语法是update addressList set 年龄=18 where 姓名='王伟华'。它的意思是首先把姓名=王伟华的行选出来,然后修改它的年龄为18岁。

数据操作语言第四种查

【查】指的是SQL可查询数据库中的数据,我们使用的是select关键词来查询数据

具体语法是select from

例如,SELECT  city  FROM students

(它所表达的意思是查询学生表中学生所在的城市) 

需要注意的一个重要事项是:

一定记住,在windows操作系统中,SQL 对大小写不敏感!

也就是说sql对大写和小写不区分,无论是对关键字还是操作对象都不区分,执行结果是一样的,但是对引号内的字符串大小写会敏感,也就是说字符串这个不能随意转换大小写,改是大写就大写,改小写就小写。

最后,推荐一门由我和爱数圈团队共同打磨的精品课【漫画SQl】,这门课设计的通俗易懂,画风幽默,适合一些没什么学历,又不爱学习的朋友,哈哈

部分学员评价:

最后隆重介绍下:

扫码加入吧

sql update 日期减6个月_【干货】SQL基础快速入门相关推荐

  1. sql主键可以有多个_干货 | 新手请速戳!30个精选SQL面试问题Qamp;A集锦

    来源:读芯术 本文共1600字,建议阅读7分钟. 本文为面试新人或面试老手带来一些常见的SQL面试问题和回答. 图片来源: Tim Gouw/pexels.com 本文为面试新人或面试老手带来一些常见 ...

  2. sql 复合主键 联合主键_学习SQL:主键

    sql 复合主键 联合主键 If you've already worked with databases, then you could hardly miss the term – Primary ...

  3. sql中聚合函数和分组函数_学习SQL:聚合函数

    sql中聚合函数和分组函数 SQL has many cool features and aggregate functions are definitely one of these feature ...

  4. sql怎么撤回update_【干货】SQL基础快速入门

    我们知道,关系数据库通过表来管理数据,数据库中可以同时存储多张表,数据库管理的是表,那么谁来管理数据库呢? 数据库由数据库管理系统(DBMS)来操纵和管理,终端用户通过dbms访问数据库中的数据,数据 ...

  5. sql中当前日期加2个月_一文搞定Mysql日期时间函数

    总第184篇/张俊红 日期和时间函数部分也是我们日常工作中使用频率比较高的一部分.这一篇我们主要讲讲Mysql里面的日期时间相关的函数,不同数据库之间基本相同,只会有个别函数的差异.大家掌握一个数据库 ...

  6. oracle 实现sql语句日期的 年 、月 、日 加减

    介绍: 获取当前时间, 往后加一个年 .  加一月 .  加一天 .举个例子,我想把2026年加一年变成 2027年. 查询或insert添加都可以对日期加减. 1.年 select TO_CHAR( ...

  7. mysql日期减后取月_mysql加减时间-函数-时间加减

    select timediff('23:40:00', ' 18:30:00'); -- 两时间相减 SELECT substring( timediff('23:40:00', ' 18:30:00 ...

  8. mysql日期减后取月_MySql日期相减返回月数_MySQL

    bitsCN.com MySql日期相减返回月数 1.PERIOD_DIFF(P1,P2) 返回在时期P1和P2之间月数(P1和P2的格式YYMM或YYYYMM) 例:SELECT PERIOD_DI ...

  9. sql如何遍历几百万的表_关于SQL查询效率,100w数据,查询只要1秒

    1.关于SQL查询效率,100w数据,查询只要1秒,与您分享: 机器情况 p4: 2.4 内存: 1 G os: windows 2003 数据库: ms sql server 2000 目的: 查询 ...

最新文章

  1. list_for_each_safe
  2. python websocket爬虫_详解python websocket获取实时数据的几种常见链接方式
  3. pytorch中的参数初始化方法
  4. Spark基础学习笔记01:初步了解Spark
  5. JavaScript之浏览器大战
  6. 用ZEMAX设计简易LED准直镜
  7. 计算机公式英汉对照,Excel 2013中英文对照图
  8. Spark电商离线数仓·用户模块指标统计
  9. 计算机提示运行错误,每次电脑一开机就会提示脚本运行错误
  10. 一个电商网站设计方案
  11. html js 做一个钟表,html,css,js实现的一个钟表
  12. 简易平滑轮播(纯CSS)
  13. 股市投资必修课二十三--增长的导向
  14. (Tekla Structures二次开发)使用VS创建Tekla Structures插件的模板
  15. Golang的Redis简单使用及集群配置(Win10)
  16. Linux上安装MySQl超详细教程(CentOS系统)
  17. TextCnn原理及实践
  18. 小甲鱼Python学习笔记之魔法方法
  19. mysql数据库被勒索删库怎么办
  20. 路由方案之ARouter源码分析

热门文章

  1. 【LeetCode从零单排】No198.House Robber No91.Decode Ways139 word break(动态规划典型应用)
  2. “互联网+医疗健康” 行业调研报告
  3. 架构师经常参考的Netflix架构,它的全貌是怎样的?
  4. 秒杀系统的架构解决之道
  5. Java 编程的动态性,第 8 部分: 用代码生成取代反射--转载
  6. 数学建模学习笔记——相关性分析
  7. 2017年度盘点:15个最流行的GitHub机器学习项目 By 机器之心2017年12月21日 15:23 在本文中,作者列出了 2017 年 GitHub 平台上最为热门的知识库,囊括了数据科学、机
  8. 机器学习系列(8)_读《Nature》论文,看AlphaGo养成
  9. Java 8 - 05 方法引用
  10. Spring MVC-03循序渐进之Spring MVC