博客
关于我
MySQL基础总结
阅读量:467 次
发布时间:2019-03-06

本文共 3544 字,大约阅读时间需要 11 分钟。

数据库与MySQL入门学习

为什么要学习数据库

数据库是现代应用开发中不可或缺的核心技术。以下是学习数据库的主要原因:

  • 数据持久化

    数据库可以将数据持久化存储,避免了在程序终止时丢失数据。

  • 便捷数据检索

    数据库通过索引和查询语言(如SQL),可以快速检索特定数据,满足复杂查询需求。

  • 存储海量数据

    数据库能够高效管理和存储大量结构化数据,支持企业的快速扩展。

  • 数据共享与安全

    数据库提供了数据共享的便利性,同时支持权限控制,确保数据安全。

  • 数据分析与可视化

    数据库支持复杂查询和分析,能够通过数据处理生成新的信息和见解。


  • 数据库的基本概念

    1. DBMS、DB、SQL

    • DBMS:数据库管理系统(Database Management System),用于管理和维护数据库。
    • DB:数据库(Database),是存储有组织数据的容器。
    • SQL:结构化查询语言(Structured Query Language),程序员用它与数据库交互。

    2. 数据库存储数据的特点

    • 数据先放在中,表再放在中。
    • 每个库可以包含多张表,每张表都有唯一的名称。
    • 数据表的设计类似于Java中的“类”设计。
    • 表中的字段设计类似于属性设计。
    • 表中的记录类似于一个对象,表中的所有记录类似于对象的集合。
    • ORM(对象关系映射):用于将应用程序中的对象与数据库表之间建立映射关系。

    MySQL概述

    1. MySQL产品介绍

    MySQL最初由瑞典公司开发,2008年被Sun Microsystems收购,2009年被Oracle收购。

    特点

    • 体积小、安装便捷。
    • 开源且免费。
    • 性能强劲、稳定性高。
    • 兼容性好,支持多种操作系统和编程语言。

    2. MySQL安装

    MySQL基于C/S架构,需要安装服务端和客户端。

    • 服务端:运行数据库引擎。
    • 客户端:用于与数据库交互的工具或库。
    • 官方下载地址:www.oracle.com
    • 常用版本:MySQL 5.5及以上。

    3. MySQL服务管理

    • 启动服务

      • 图形化方式:右键点击“计算机管理” -> “服务” -> “MySQL服务”。
      • 命令行方式:使用管理员身份运行CMD,输入 net start 服务名
    • 停止服务

      • 命令行方式:输入 net stop 服务名

    4. MySQL登录与退出

    • 命令行登录

      mysql -h 主机名 -P 端口号 -u 用户名 -p 密码
      • 如果是本机,-h 可以省略。
      • 如果默认端口是3306,-P 可以省略。
    • 图形化客户端

      使用工具如SQLyog,直接输入用户名和密码即可登录。

    5. MySQL基本命令与语法规范

    常见命令

    • show databases:列出当前连接下所有数据库。
    • show tables:列出当前数据库中的所有表。
    • show columns from 表名:列出表中所有字段信息。
    • use 库名:切换到指定数据库。

    语法规范

    • 不区分大小写:SQL语句对大小写不敏感。
    • 命令结尾建议使用分号
      select ... from 表名;
    • 注释
      • 单行注释:# 单行注释
      • 多行注释:-- 单行注释/ * 多行注释 * /

    SQL语言入门

    1. DQL基础查询

    语法

    select 查询列表 from 表名;

    特点

    • 查询结果是一个虚拟表。
    • 查询列表可以是单个字段、多个字段、常量、表达式、函数或组合。

    常用功能

  • 起别名

    select 字段名 as "别名" from 表名;
  • 加法运算

    select 字段名 + 常量 from 表名;
    • 支持数值型和非数值型的相加。
    • null 与任何值相加结果为 null
  • 去重

    select distinct 字段名 from 表名;
  • 补充函数

    select version(); -- 获取数据库版本  select concat("字符串1", "字符串2"); -- 拼接字符串  select length("字符串"); -- 获取字符串长度
  • 2. 条件查询

    语法

    select 查询列表 from 表名 where 条件表达式;

    条件表达式

    • 关系运算符>, <, >=, <=, >, <
    • 逻辑运算符and, or, not
    • 模糊查询likebetweenin 等。

    示例

    -- 判断员工薪资是否大于10万select salary from employees where salary > 1000000;-- 判断员工工作地点在北京或上海select department_id from employees where department_id in (1, 2) or department_id in (7, 8);-- 判断员工姓名中包含“李”或“张”select name from employees where name like "%李%" or name like "%张%";

    3. 排序查询

    语法

    select 查询列表 from 表名 where 条件表达式 order by 排序列表;

    排序特点

    • 排序列表可以是单个字段、多个字段、函数、表达式或别名。
    • 升序(asc)或降序(desc)。

    示例

    -- 按部门编号排序select department_id from employees order by department_id asc;-- 按员工姓名降序排序select name from employees order by name desc;

    DML语言学习

    1. 插入语句

    insert into 表名 (字段名1, 字段名2, ...) values (值1, 值2, ...);

    示例

    -- 插入一条新记录insert into employees (first_name, last_name) values ('张三', '李四');-- 插入多个记录insert into employees (first_name, last_name) values  ('王五', '赵六'),  ('李七', '赵八');

    2. 修改语句

    update 表名 set 字段名 = 值 where 条件表达式;

    示例

    -- 更新员工姓名update employees set first_name = '张三' where employee_id = 1;-- 更新部门编号update departments set department_name = '技术部' where department_id = 5;

    3. 删除语句

    delete from 表名 where 条件表达式;

    示例

    -- 删除一条员工记录delete from employees where employee_id = 1;-- 删除部门delete from departments where department_id = 10;

    DDL语言学习

    1. 库和表管理

    创建数据库

    create database 库名;

    删除数据库

    drop database 库名;

    创建表

    create table 表名 (  字段名1 字段类型1,  字段名2 字段类型2,  ...);

    删除表

    drop table 表名;

    2. 数据类型介绍

    • 数值类型int, float, double, binary, varbinary 等。
    • 字符串类型varchar, nvarchar, text
    • 日期时间类型date, time, datetime, timestamp
    • 布尔类型boolean, enum

    3. 约束

    • 主键primary key
    • 外键foreign key
    • 唯一性约束unique
    • 默认值default
    • 检查约束check

    事务处理(TCL)

    1. 事务基础

    • 事务:是一组数据库操作,必须全部成功或全部失败。
    • ** rollback**:事务失败时,数据恢复到原状。
    • ** commit**:事务成功时,数据持久化保存。

    示例

    -- 开始事务begin;-- 更新订单数量update orders set quantity = 5 where order_id = 1;-- 失败 rollbackrollback;-- 成功 commitcommit;

    2. 读取未提交的事务

    -- 只读事务,不会修改数据read uncommitted;

    3. 隐式事务

    • 默认使用隐式事务模式,所有操作自动提交。
    • 可以通过设置 autocommit = 0 进行显式事务。

    转载地址:http://ubdbz.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现字符串模式匹配算法(附完整源码)
    查看>>
    Objective-C实现字符串的排列permutation算法(附完整源码)
    查看>>
    Objective-C实现字符串翻转(附完整源码)
    查看>>
    Objective-C实现字符串衡量两个样本相似性的统计数据算法(附完整源码)
    查看>>
    Objective-C实现守护进程(附完整源码)
    查看>>
    Objective-C实现完整的ComplexNumber复数类(附完整源码)
    查看>>
    Objective-C实现完整的matrix矩阵类(附完整源码)
    查看>>
    Objective-C实现定时器(附完整源码)
    查看>>
    Objective-C实现定积分评估的SimpsonIntegration复合辛普森规则算法 (附完整源码)
    查看>>
    Objective-C实现实现rabin karp算法(附完整源码)
    查看>>
    Objective-C实现对图像进行色调处理算法(附完整源码)
    查看>>
    Objective-C实现对数ln2(附完整源码)
    查看>>
    Objective-C实现对称矩阵压缩存储(附完整源码)
    查看>>
    Objective-C实现寻找Find Lcm最小公倍数算法(附完整源码)
    查看>>
    Objective-C实现寻找HCF算法(附完整源码)
    查看>>
    Objective-C实现寻找无向图的关节点Articulation Points算法(附完整源码)
    查看>>
    Objective-C实现寻找欧拉路径/回路(附完整源码)
    查看>>
    Objective-C实现导弹跟踪算法(附完整源码)
    查看>>
    Objective-C实现将 b 除以模 n 的有效算法(附完整源码)
    查看>>
    Objective-C实现将 base64 字符串转换为字节数组算法(附完整源码)
    查看>>