深入理解MySQL---数据库知识最全整理,这些你都知道了吗?

对于后端开发人员来说,经常会和数据打交道,今天总结下数据库相关的知识。包括MySQL,JDBC基础,JDBC进阶,MongoDB,性能优化等知识点。

MySQL

数据库的概述

  • DBMS:关系型数据库管理系统
    • 库管+N个仓库
  • 常见的数据库管理系统
    • MySQL
    • Orcale
    • DB2
    • SQL Server
    • Sybase

MySQL介绍

  • 安装后目录结构
    • mysql.exe:客户端
    • mysqld.exe:服务器
    • my.ini:总配置文件
  • 在windows下开户和关闭mysql服务器
    • net start mysql
    • net stop mysql
  • 登录和退出mysql客户端
    • mysql -u用户名 -p密码 -hIP
    • exit或quit

SQL

  • 解释:结构化查询语言
  • ISO:国际标准化组织
  • ISO定义了很多SQL标准,例如:SQL99
  • 各个数据库厂商需要遵循这个标签!但各个厂商也有自己的方言
  • SQL的分类
    • DDL:数据定义语言
    • DML:数据操作语言
    • DCL:数据控制语言
    • DQL(不在标准中):数据查询语言

DDL:数据定义语言

  • 数据库的操作
    • create database
    • show databases
    • use mydb1
    • alter database
    • drop database
  • 表的操作
    • create table
    • show tables
    • desc mytable1
    • drop table
    • alter table
      • add
      • modify
      • change
      • drop
      • rename to

DML:数据操作语言

  • 插入记录
  • 修改记录
  • 删除记录
    • delete
    • truncat

DCL:数据控制语言

  • 创建用户
  • 授权
  • 撤消权限
  • 查看权限
  • 删除用户

DQL:数据查询语言

  • 基本查询
    • 查看整张表
      • select * from 表名
    • 列控制
      • 列运算:select sal * 1.5 from emp
      • 列运算:连接字符串:select concat(‘我的名称是’, ename) from emp
      • 处理NULL值:select sal + IFNULL(comm, 0) from emp
      • select ename 姓名 from emp
      • 去除完全重复的行:select distinct comm from emp
  • 条件查询
    • 模糊查询
      • 下划线
      • 百分号
  • 排序
    • 降序:desc
    • 升序:asc
  • 聚合函数
    • 数量:count
    • 求最小值:min
    • 求最大值:max
    • 求和:sum
    • 求平均:avg
  • 分组
    • group by
    • having
    • limit

约束

  • 约束保证数据的完整性和一致性
  • 约束分为表级约束和列级约束
    • 对一个数据列建立的约束,列级约束
    • 对多个数据列建立的约束,表级约束
  • 约束类型包括:
    • NOT NULL
    • PRIMARY KEY
    • UNIQUE KEY
    • DEFAULT
    • FOREIGN KEY

中文无法插入解决办法

  • dos 下不支持直接使用utf8;
  • set names gbk,再插入即可。

连接类型

  • 内连接
    • 显示左表及右表符合连接条件的记录
  • 左外连接
    • 显示左表的全部记录及右表符合连接条件的记录
  • 右外连接
    • 显示右表的全部记录及左表符合连接条件的记录
  • 自身连接
    • 同一个数据表对其自身进行连接

排版有点烦人,今天先更这些,明天接着更JDBC与进阶,亲们先把今天更的消化消化吧~

为你推荐以下文章

务实基础篇--Java内存模型及GC原理

设计模式(二)之装饰模式 | 说好了面向对象,谁也不许赖谁~

快速搞定8大排序算法 | 原理与代码实现

原文发布于微信公众号 - 轮子工厂(Programmer-ing)

原文发表时间:2018-04-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏乐沙弥的世界

Oracle RAC 环境下的 v$log v$logfile

      通常情况下,在Oracle RAC 环境中,v$视图可查询到你所连接实例的相关信息,而gv$视图则包含所有实例的信息。然而在RAC环境中,当我们查询...

24220
来自专栏精讲JAVA

百万数据查询优化技巧三十则

对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 应尽量避免在 where 子句中对字段进行 null ...

21590
来自专栏沈唁志

谈谈在SQL语句中的优化技巧

19640
来自专栏java一日一条

数据库查询优化

1 使用SET NOCOUNT ON 选项: 缺省地,每次执行SQL语句时,一个消息会从服务端发给客户端以显示SQL语句影响的行数。这些信息对客户端来说...

55220
来自专栏Java进阶干货

MySql常用30种SQL查询语句优化方法

1、应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。

12110
来自专栏乐沙弥的世界

MySQL 状态变量(Server Status Variables)

    MySQL状态变量是当前服务器自启动后累计的一些系统状态信息,主要用于评估当前系统资源的使用情况以进一步分析系统性能而做出相应的调整决策。这些状态变量我...

14810
来自专栏程序你好

30个MySQL千万级大数据SQL查询优化技巧详解

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。

70930
来自专栏机器学习算法与Python学习

SQL Server常用命令(平时不用别忘了)

SQL Server 2008 在Microsoft的数据平台上发布,可以组织管理任何数据。可以将结构化、半结构化和非结构化文档的数据直接存储到数据库中。可以对...

31070
来自专栏蓝天

Oracle 系统表大全

数据字典dict总是属于Oracle用户sys的。   1、用户:    select username from dba_users;   改口令    al...

11120
来自专栏用户2442861的专栏

关于sql中索引的优缺点(面试常考)

   原文       http://blog.csdn.net/dinglang_2009/article/details/5951428

25310

扫码关注云+社区

领取腾讯云代金券