zoukankan      html  css  js  c++  java
  • mysql初识

    数据库是什么

    数据库:存储数据的仓库

    为什么使用数据库

    之前用excel来进行管理数据,有诸多问题:

    • 电子表格只能处理有限的数据列和数据行,对于数百万玩、数千万等巨大的数据列很难有效地处理
    • 电子表格无法提供安全、方便地权限管理和控制手段
    • 电子表格很难实现多个数据之间地关联
    • 电子表格很难实现并发控制、增量维护等管理方式

    这些问题,数据库都能解决,数据库是一种有效地管理大量的、安全的、并发的、关联的、一致的数据管理工具。

    数据库的分类

    关系型数据库

    关系数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。

    关系模型由关系数据结构、关系操作集合、关系完整性约束三部分组成。

    也就是说对于每一列的数据类型会有约束。

    典型的关系型数据库:

    • MySQL、 MariaDB
    • Oracle 甲骨文公司,收费昂贵
    • SQL Server 微软出品
    • SQLite 小型的文件数据库

    非关系型数据库

    • MemCache
    • mongoDB
    • Redis

    非关系型数据库以key-value的形式存储数据

    区别

    关系型数据库,把数据存在硬盘中
    非关系型数据库, 把数据存在内存中

    mysql的架构

    类似于socket的客户端和服务端

    流程:

    1. mysql服务端先启动,监听在一个特定的端口,默认是3306
    2. mysql客户端连接服务端
    3. mysql客户端就可以发出相关的操作命令,去操作服务端储存的数据

    MySQL的安装(Windows)

    1. 官网下载之后5.7版本的

    2. 解压到指定目录 如C:mysql-5.7.28-winx64

    3. 添加环境变量 ,在系统环境变量Path添加C:mysql-5.7.28-winx64in

    4. 初始化 mysqld --initialize-insecure # 创建data目录,用来存储数据库

    5. 启动MySQL服务

      • 可以在cmd(win10需要管理员权限)中运行mysqld --install 安装服务
      • 或者在win10服务中启动MySQL
    6. 启动MySQL客户端并连接MySQL服务

      • mysql -u root -p
    7. 修改mysql密码

      • mysqladmin -uroot -p '原密码' password '要修改的密码'

    常用的参数:

    -u   user 用户名
    -p   password 密码
    -h   host主机名或ip    mysql -h 192.168.1.1 -uroot -p
    -P   端口 默认是3306   mysql -h 192.168.1.1 -P 3306 -uroot -p
    

    忘记密码:

    先关闭mysqld服务   net stop mysql
    在cmd中执行:  mysqld --skip-grant-tables   
    再开一个cmd执行: mysql -uroot -p   此时不需要输入密码
    执行sql语句: update mysql.user set authentication_string=password('') where user='root';
    
    重启mysql服务
    

    数据库服务器、数据管理系统、数据库、表、记录的关系

    • 数据库服务器:运行数据库管理软件
    • 数据库管理软件:管理数据库,如MySQL
    • 数据库:用来组织表,相当于win系统中文件夹的概念
    • 表:即文件,用来存放多条记录

    初始MySQL

    操作数据库

    增:

    create database 数据库名称 charset utf8;  # 字符集默认时latin1
    

    数据库命名规范:

    • 可以由字母、数字、下划线、@、#、$
    • 区分大小写
    • 具有唯一性
    • 不能使用关键字如 select create
    • 不能单独使用数字
    • 最长128位

    删:

    drop database 数据库名称;
    

    改:

    数据库删除了再添加

    线上环境下,不能直接删除数据,再删除之前需要进行备份

    查:

    show database;   # 查看数据库
    use 数据库名称
    

    操作数据表

    创建表:(表是二维的,要有字段)

    mysql> create table setcreed(
        -> id int, 
        -> name varchar(20)
        -> );
    

    查看表:

    mysql> show tables;
    
    

    删除表:

    mysql> drop table setcreed;
    

    查看数据表结构:

    mysql> desc setcreed;
    
    或者
    
    mysql> show create table setcreed;
    
    

    数据相关

    数据类型

    • 常用数据类型如下:
      • 整数:int, bit
      • 小数:decimal
      • 字符串:varchar, char
      • 日期时间:date, time, datetime
      • 枚举类型(enum)
    • 特别说明的类型如下:
      • decimal表示浮点数,如decimal(5, 2)表示共存5位数、小数占2位
      • char表示固定长度的字符串,如char(3),如果填充'ab'时会补一个空格为'ab '
      • varchar表示可变长度的字符串,如varchar(3),填充'ab'时就会储存ab
      • 字符串text表示储存大文本,当字符大于4000时推荐使用
      • 对于图片、音频、视频等文件,不存储在数据库里,而是上传到服务器中,然后在表中存储这个文件的url

    单表中数据的增、删、改、查

    • insert 插入数据
    mysql> insert into setcreed(id,name) values(2, 'neo'),(3, 'cwz');
    

    insert 另一种方式插入数据:

    mysql> insert into setcreed set id=4, name='soso';
    
    
    • 查看表中数据

    select 查询方法:

    mysql> select * from setcreed;
    
    # * 表示查看所有内容
    
    

    查询后面可以跟条件:

    mysql> select * from setcreed where id<3;
    
    
    • update更新数据
    mysql> update setcreed set name='qwe' where id=3;
    
    
    • delete 删除数据
    mysql> delete from setcreed where id=4;
    
    
  • 相关阅读:
    SQL Server创建复合索引时,复合索引列顺序对查询的性能影响
    SQL 查询性能优化----解决书签查找
    从源码分析 Spring 基于注解的事务
    jQuery最佳实践(不断更新中...)
    Java 8 LongAdders:管理并发计数器的正确方式
    Java中的显示锁 ReentrantLock 和 ReentrantReadWriteLock
    在IE8等不支持placeholder属性的浏览器中模拟placeholder效果
    颠覆式前端UI开发框架:React
    Whitecoin区块链钱包高级功能使用命令
    消息队列使用的四种场景介绍
  • 原文地址:https://www.cnblogs.com/colorchild/p/14127834.html
Copyright © 2011-2022 走看看