zoukankan      html  css  js  c++  java
  • MySQL数据库的基本使用

    数据库基本概念

    数据库是什么

    存储数据的仓库

    1. 列表,字典...等等 都是内存中的,
      • 缺点:断电丢失
      • 优点:速度快
    2. 文件储存
      • 缺点:速度慢
      • 优点:可以实现永久保存

    数据库的本质就是一套基于CS结构的 客户端和服务器程序,最终的数据存储在服务端的磁盘中

    为什么要使用数据库

    直接使用文件存储带来的问题

    1. 速度慢
    2. 我们的程序将来可能会分布在不同的机器上,

    单台机器的性能肯定有上限,如果一台机器不能够满足,你可以用多个机器共同完成任务

    分布式: 每个服务器提供不同的服务,有时候某个业务流程可能会涉及到多个服务器,降低耦合

    • 优点:耦合度低,易维护
    • 缺点:通讯繁琐,容灾性没有集群好

    集群:所有服务器提供的服务是一模一样的

    • 优点:容灾性强,易扩展,可插拔

    问题:数据如果分布在不同的机器上,如何访问?

    ​ 通过网络访问

    1. 用户权限管理
    2. 多个客户端并发访问时,数据要保证安全

    数据库的分类:

    1.关系型数据库

    • 数据之间可以存在关联关系,数据库会帮我们维护这种关系
    • 通常存储介质都是磁盘
    • 常见的关系型数据库:
      • mysql:学习的重点,是目前最流行的关系型数据库,因为其免费开源,性能也不错,目前已被oracle收购,更是适用于中小型企业
      • sqlserver:由微软推出,但是由于其只能运行在windows平台所以发展不怎么样
      • oracle(sun):目前最强大的关系型数据库,主要是在集群和用户管理上,非常适合大型企业,本身的体量也很大。
      • db2:IBM的产品,主要面向企业级用户,不差钱的用户,捆绑硬件销售

    2.非关系型数据库

    • 没有能力帮我们维护数据之间的关系
    • 通常存储介质都是内存
    • 常见的非关系型数据库
      • mongoDB
      • redis
      • memcache

    数据库重要概念

    数据(Column):文件中的某个字符串

    记录(Row):文件中的某一行

    表(Table):某个文件

    库(DataBase):文件夹

    DBMS:数据库管理系统(指的就是数据库软件)

    数据库服务器:运行DBMS的计算机

    数据库的基本使用

    登录数据库

    cmd中输入mysql -uroot -p再输入密码即可

    常见的参数:

    • -h 主机名称,如果是本机,可以忽略
    • -P 指定端口 默认是3306 可以不写
    • -u 指定用户名
    • -p 指定密码(尽量不用明文密码)

    MySQL5.6管理员密码的设置

    1.知道密码

    • 登录到mysql后执行更新语句来修改

      update mysql.user set password = password("123") where host="localhost" and user="root";

      一定要再使用

      flush privileges来进行刷新,不然不会立刻生效

    • mysqladmin小工具

      • 一个帮你管理mysql的工具
      • mysqladmin -uroot -p123 password 321

    2 不知道原始密码

    • 删除权限相关的文件(不推荐)

    • 跳过授权表

      • 手动启动mysqld,指定参数

      mysqld -skip-grant-tables

      • 这样客户端登录就可以不输入密码直接进入了,进入之后再修改密码就可以了(记得重启mysqld)

    初步使用

    数据放在文件中,也就是表,而表必须存在于库中也就是文件夹

    第一步应该创建数据库, 创建表

    库的操作

    • mysql语句需要加;执行
    # 切换数据库
    use 数据库名称 	可以不加分号
    
    # 查看所有数据库
    show databases;
    
    # 查看数据库的详细创建信息
    show create databases 数据库名称;
    
    # 查看当前所在的库
    select database();
    
    # 创建新的数据库
    create database 数据库名称;
    create database 数据库名称 charset utf8
    create database 数据库名称 character set utf8	# 不要用utf-8,因为-有特殊含义
    
    # 删除数据库
    drop database 数据库名称;
    
    # 修改数据库编码,可以进入到数据库文件夹中修改db.opt
    # 第一行是编码,第二行是校对规则
    alter database 数据库名称 character set utf8;
    
    # 修改数据库名称,可以直接去修改对应的文件夹名称(MAC进不去文件夹)
    
    

    数据库名称的命名规范:

    1. 大小写不敏感
    2. 不要使用关键字(即使可以用) 例如:create select
    3. 不能使用纯数字
    4. 可以下划线,但没必要
    5. 具有一定的意义,看得懂

    表的操作

    # 创建表
    create table 表名称(列名称 列的数据类型(int, text等),列名称2 类型2,...)
    # 指定编码
    create table 表名称(列名称 列的数据类型(int, text等),列名称2 类型2,...) charset gbk
    
    # 查看当前库下所有表
    show tables;
    
    # 查看表结构
    desc 表名称;
    # 查看表的创建语句
    show create table 表名称;
    
    # 删除表
    drop table 表名称;
    # 清空表数据(重建表)
    truncate table 表名称;
    
    # 修改表名
    rename table 旧表名 to 新表名;
    
    # 修改编码
    alter table 表名 charset 新的编码格式;
    

    字段的操作

    # 修改表结构
    # 添加字段
    alter table 表名 add 列名称 数据类型;
    # 删除字段
    alter table 表名 drop 列名称;
    # 修改数据类型
    alter table 表名 modify 列名称 新的数据类型;
    # 修改列名
    alter table 表名 change 旧的列名称 新的列名称 新的数据类型;
    
  • 相关阅读:
    spring 配置 线程池并使用 springtest 进行测试
    Mybatis使用generator自动生成的Example类使用OR条件查询
    springtest mapper注入失败问题解决 {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    异常 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 解决方案
    idea 开启 tomcat 访问日志记录
    idea ssm项目迁移到另一台机器上时出现不能正常启动项目的解决方案
    记一次 java 连接 linux ssh服务 权限验证失败的原因和解决过程
    ajax传递数组给controller的实现方法和坑
    service手动实例化(new)导致类中的spring对象无法注入的问题解决
    javaweb学习总结十一(JAXP对XML文档进行DOM解析)
  • 原文地址:https://www.cnblogs.com/lucky75/p/11167460.html
Copyright © 2011-2022 走看看