SQL简介

SQL语言介绍

SQL全称:Structured Query Language,是结构化查询语言,用于访问处理数据库的标准的计算机语言。

SQL的特点

  • 具有综合统一性,不同数据库的支持的SQL稍有不同。
  • 非过程化语言。
  • 语言简捷,用户容易接受。
  • 以一种语法结构提供两种使用方式。

SQL语言的组成

  • 数据定义语言(DDL)
  • 数据操纵语言(DML)
  • 数据查询语言(DQL)
  • 数据控制语言(DCL)

SQL语法特点

  • SQL对关键字的大小写不敏感
  • SQL语句可以单行或者多行书写,以分号结束。
  • SQL的注释:
    • 单行注释:#--(其中--后需要有一个空格)
    • 多行注释:/*...*/

SQL和数据库管理系统(DBMS)的关系

SQL是一种用于操作数据库的语言,SQL适用于所有关系型数据库。

MySQL简介

MySQL的介绍

MySQL是一个关系型数据库,使用的是SQL语言。

MySQL的特点

  • MySQL数据库是用C和C++语言编写的,以保证源码的可移植性
  • 支持多个操作系统例如:Windows、Linux、Mac OS等等。
  • 支持多线程,可以充分的利用CPU资源。
  • 为多种编程语言提供API,包括C语言,Java,PHP,Python语言等。
  • MySQL优化了SQL算法,有效的提高了查询速度。
  • MySQL开放源代码且无版权制约,自主性强、使用成本低。
  • MySQL历史悠久、社区及用户非常活跃,遇到问题,可以很快获取到帮助。

MySQL常用图形管理工具

如果日常的开发和维护均在类似DOS窗口中进行,对于编程初学者来说,上手就略微有点困难,增加了学习成本。因此一般使用MySQL图形管理工具来连接MySQL,然后在图形化界面上操作MySQL。

MySQL Workbench

MySQL Workbench MySQL 是官方提供的图形化管理工具,支持数据库的创建、设计、迁移、备份、导出和导入等功能,并且支持 Windows、Linux 和 mac 等主流操作系统。

MySQL下载

MySQL 8.0保姆级下载、安装及配置教程
跟着视频走一遍,可以顺畅地进行下载(不建议看视频下面的博客链接,没有视频好理解)。

注意

  1. 在安装的第一步“Choosing a Setup Type”时,可自选存储地址,不过建议直接在默认地址上改盘符,如果存储地址是已建立的文件夹,会有警告
  2. 如果是选用的是.zip压缩包安装MySQL,建议参照MySQL8.0 zip安装。如果过程中出现问题(如忘记密码或密码错误),可参照MySQL密码错误处理。

MySQL数据库基本操作

前提说明

  1. 后面语句中的中括号代表括号和括号内的内容可写可不写(仅作逻辑判断用,防止操作失败),根据实际需求决定。
    :删除数据库操作语句drop database [if exists] 数据库名;

    在需要删除的数据库存在时,
    drop database if exists 数据库名drop database 数据库名效果一样。

    在需要删除的数据库不存在时,
    drop database if exists 数据库名不会报错,而drop database 数据库名会提示操作失败。

  2. SQL语句以;结尾,因此如果是在DOS界面进行MySQL操作,
    在需要换行时直接按Enter键即可。只有出现;,系统才会判断SQL语句结束。

  3. 由于SQL语句不区分大小写,为了方便学习时的理解,因此语句都用小写形式。

DDL

DDL(Data Definition Language),数据定义语言,该语言部分包括以下内容:

  • 数据库的常用操作

    功能 SQL语句
    查看所有的数据库 show databases;
    创建数据库 create database [if not exists] 数据库名 [charset=XXX(编码格式)];
    切换到(选择要操作的)数据库 use 数据库名;
    删除数据库 drop database [if exists] 数据库名;
    修改数据库编码格式 alter database 数据库名 character set 编码格式;
  • 表结构的常用操作

    • 创建表

      • 创建表的格式
        创建表是构建一张空表,指定这个表的名字,这个表有几列,每一列叫什么名字
        以及每一列存储的数据类型

        格式规范

          create table [if not exists]表名(字段名1 类型[(宽度)] [约束条件] [comment '字段说明'],字段名2 类型[(宽度)] [约束条件] [comment '字段说明'],字段名3 类型[(宽度)] [约束条件] [comment '字段说明'])[表的一些设置][comment '表说明'];
        

        注:这里中括号中的内容建议写,因为写了后,在查看表的创建语句时可以显示出来,
        方便理解。

      • 数据类型
        数据类型是指在创建表的时候为表中字段指定数据类型,只有数据符合类型要求才能存储起来。
        使用数据类型的原则是:够用就行,尽量使用取值范围小的,而不用大的,这样可以更多的节省存储空间。

        • 数值类型

          例:
          假设有一个字段名为年龄,那么定义语句为:

          age tinyint unsigned comment ‘年龄’

          注:
          因为数值类型的实际大小是系统限定好的,因此[(宽度)]这一部分不用写
          应该注意的是[约束条件]这一部分,有SIGNEDUNSINGED之分。

        • 日期和时间类型

          例:
          假设有一个字段名为生日,那么定义语句为:

          birthday date comment ‘生日’

          注:
          对于日期和时间类型,[(宽度)][约束条件]不用写

        • 字符串类型

          例:
          假设有一个字段名为姓名(此字段不能超过10个字符),那么定义语句为:

          name varchar(10) comment ‘姓名’

          注:
          因为字符串类型的实际大小与存储的字符个数有关,因此[(宽度)]这一部分必须写,而[约束条件]不用写

          值得注意区分的是,

          char(n)表示无论字符串有多少个字符,系统都为其分配n个char的大小,多余的字符用空格表示。(性能高,内存利用稍差)

          varchar(n)表示系统最多为其分配n个char的大小,实际大小与字符串的字符个数匹配。(性能稍低,内存利用好)

    • 其他操作

      功能 SQL语句
      查看当前数据库的所有表名称 show tables;
      查看指定某个表的创建语句 show create table 表名;
      查看表结构 desc 表名;
      删除表 drop table 表名;
  • 修改表结构

    • 添加列

      语法:
      alter table 表名 add 列名 类型 [(长度)] [约束];

      例:

      #为student表添加一个新的字段为:系别 dept 类型为 varchar(20)
      alter table student add dept varchar(20);
      
    • 修改列名和类型

      语法:
      alter table 表名 change 旧列名 新列名 类型 [(长度)] [约束];

      例:

      #为student表的dept字段更换为department varchar(30)
      alter table student change dept department varchar(30);
      
    • 删除列

      语法:
      alter table 表名 drop 列名;

      例:

      #删除student表中department这列
      alter table student drop department;
      
    • 修改表名

      语法:
      rename table 表名 to 新表名;

      例:

      #将表student改名成 stu
      rename table student to stu;
      

DML

DML(Data Manipulation Language),数据操作语言,用来对数据库中表的数据记录进行更新。

关键字:

意义 关键字
插入 insert
删除 delete
更新(修改) update
  • 数据插入

    语法:

    insert into 表 (列名1,列名2,列名3...) values (值1,值2,值3...); //向表中插入某些
    insert into 表 values (值1,值2,值3...);     //向表中插入所有列
    

    例:

    insert into student(sid,name,gender,age,birth,address,score) values(1001,'男',18,'1996-12-23','北京',83.5);
    insert into student values(1001,'男',18,'1996-12-23','北京',83.5);
    
  • 数据更新(修改)

    语法:

    update 表名 set 字段名=值,字段名=值...;
    update 表名 set 字段名=值,字段名=值... where 条件;
    

    例:

    -- 将所有学生的地址修改为重庆
    update student set address = '重庆’;
    -- 讲id为1004的学生的地址修改为北京
    update student set address = '北京' where id = 1004
    -- 讲id为1005的学生的地址修改为北京,成绩修成绩修改为100
    update student set address = '广州',score=100 where id = 1005
    
  • 数据删除

    语法:

    delete from 表名 [where 条件];
    truncate table  表名 或者 truncate 表名;
    

    例:

    -- 1.删除sid为1004的学生数据
    delete from student where sid = 1004;
    -- 2.删除表所有数据
    delete from student;
    -- 3.清空表数据
    truncate table student;
    truncate student;
    

    注:
    delete和truncate的原理不同。
    delete只删除表的内容。
    而truncate类似于drop table,可以理解为是先将整个表删除,然后再重新创建该表

————————————————这是分割线————————————————————
此篇博客仅作个人安装以及学习记录,后期仍将不断更新。
学习内容以及图片、代码来自黑马程序员 MySQL数据库入门到精通
不得不说,对于新手而言,黑马程序员的B站课YYDS!(已投币)

程序员的自我修养——SQL语言及MySQL数据库相关推荐

  1. CSDN日报190813:一个野生程序员的自我修养

    CSDN日报来啦!给大家奉上当日最新鲜的技术干货! 热门项目|一个完整的计算机科学研究计划让你成为一名软件工程师 我最初创建这个作为一个简短的待办事项列表,成为一名软件工程师,但它已成长为你今天看到的 ...

  2. 《程序员的自我修养》

    <程序员的自我修养>这本书偏底层,来来回回读了有三四遍了,每一次都有新的收获,不过很快又会忘记,所以写下了这本书从17年12月份至今的全书的笔记,留作以后自己复习. 第二章:编译和链接 源 ...

  3. 《程序员的自我修养》读书总结

    http://www.jianshu.com/p/47156b4259ed 最初买<程序员的自我修养>这本书,只因为在京东买书差一些钱,不够用优惠券.买回来以后的很长一段时间,我都以为这本 ...

  4. 程序员的自我修养—链接、装载与库 笔记

    程序员的自我修养-链接.装载与库 笔记 内存管理 直接使用物理内存地址 虚拟内存-分段 虚拟内存-分页 分页和分段的主要区别 段页式 代码生成过程 预处理 编译 词法分析 语法分析 语义分析 源代码优 ...

  5. 从实践理解《程序员的自我修养》(1)

    从实践理解<程序员的自我修养>(1) 前言 这篇文档主要从实践的角度充分理解<程序员的自我修养>一书中提到的细节.书中提到的各种机制.数据结构,我都将在实际系统中找到并理解它们 ...

  6. 程序员的自我修养笔记(持续更...)

    文章目录 程序员的自我修养 1.基础知识 2.编译和链接 2.1被隐藏的过程 2.1.1预编译 2.1.2 编译 2.1.3 汇编 2.1.4 链接 2.2 编译器做了什么 2.2.1 词法分析 2. ...

  7. 程序员的自我修养——链接、装载与库 笔记(一)

    程序员的自我修养   悄咪咪的说一句,这篇文章可能需要对计算机有过系统的学习,不然看着可能一脸懵.如果有疑问的话,当然,很可能是我太菜了,写的不好,欢迎大家评论区留言指教!此笔记只是刚刚开始,后续我会 ...

  8. 【读书笔记】程序员的自我修养总结(七)

    [读书笔记]程序员的自我修养总结(七) 标签: [编程开发] 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 说明:这是程序员的自我修养一书的读书总结,随着阅 ...

  9. 腾讯朋友力荐书籍:程序员的自我修养:链接、装载与库

    后台开发需要学习底层知识,只有底层知识掌握了,学一些中间件是信手捏来,中间件也是跑在底层的操作系统上.<<程序员的自我修养:链接.装载与库>>对学习底层知识非常有帮助,腾讯的朋 ...

最新文章

  1. mysql安装提示create_MySQL5.1安装时出现Cannot create windows service for mysql.error:0
  2. es6 - foreach
  3. String字符串相等判断
  4. [转] 深入理解React 组件状态(State)
  5. iOS时间转换相关整理(附送试用期逻辑处理)
  6. node 常用的一些终端的命令的快捷键
  7. vba替换字符串中的字符_R语言 | 字符串替换
  8. 2nd scrum站立会议
  9. 管理感悟:需要什么样的技术文档
  10. c#使用正则表达式获取TR中的多个TD_Linux之正则表达式
  11. Rust 从入门到精通12-集合
  12. java 实现linux进度条,Linux实现的进度条一(基本知识学习和简单功能)
  13. 深入学习计算机组成原理,计算机浮点运算详解深入学习计算机组成原理.ppt
  14. 一些格言,希望自己铭记在心
  15. hdu 5148 Cities(树形dp)
  16. PHP7的异常处理机制,set_error_handler和set_exception_handler方法介绍
  17. 单细胞marker基因平均表达量热图
  18. pythonxy官网下载_GitHub - oxtaw/codeparkshare: Python初学者(零基础学习Python、Python入门)书籍、视频、资料、社区推荐...
  19. html微信开发样式,微信网页开发样式库
  20. 老兵威武,后来居上——老兵ETC在不断崛起

热门文章

  1. js读取excel导出json文件
  2. DNS的作用及解析流程
  3. C# 判断是否是合法的IP地址
  4. 为什么人人都需要懂一点高阶(中台)产品思维
  5. python之信用卡ATM(第五天)
  6. 位运算符+位运算的应用
  7. 用 justify-content 属性设置子元素两端对齐
  8. 层次聚类算法之single-linkage和complete-linkage(C语言实现)
  9. 前端利用docker在linux上部署nginx服务
  10. 快速查询单号物流,导出详细信息生成表格