码迷,mamicode.com
首页 > 数据库 > 详细

MySQL(一)

时间:2019-09-24 21:03:29      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:update   启动   fill   http   hang   pow   设置   rop   主机名   

数据库

数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合,可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。

技术图片

数据库分类

  • 关系型数据库

    关系型数据库和常见的表格比较相似,数据表与数据表之间是有很多复杂的关联关系的

    大多数的关系型数据库都遵循SQL(结构化查询语言,Structured Query Language)

    常见的关系型数据库有:MySQL,SQLserver

  • 非关系型数据库

    出于简化数据库结构、避免冗余、影响性能的表连接、摒弃复杂分布式的目的被设计。

    指的是分布式的、非关系型的、不保证遵循ACID(数据库事务正确执行的四个基本要素的缩写)原则的数据存储系统。

    通常以数据集的方式,大量的数据集中存储在一起,类似于键值对、图结构或者文档。

    常见的非关系型数据库有:Redis、MongoDB

MySQL数据库的安装与卸载

  • 安装

    个人推荐使用安装包安装的形式安装MySQL数据库。省时省力,但是希望你们别遇到像我一样的数据库编码问题(my.ini配置了没用)。如果你们也遇到了数据库编码问题的话,解压包形式的数据库应该能够解决你们的问题。

    1. 解压免安装版本(没有初始密码)
    2. 配置环境变量:配置数据库绝对路径下的bin目录到环境变量中
    3. 配置服务:启动管理员终端(win+x打开Windows PowerShell(管理员))输入命令:mysqld --install
  • 卸载

    如果是安装版的话会比较麻烦:

    1. 先按照正常软件一样卸载MySQL
    2. 删除C:\Program Files\MySQL与C:\ProgramData\MySQL文件夹(ProgramData默认是隐藏的)
    3. 将注册表中的关于MySQL的项全部删除

连接数据库

  • 在cmd中使用mysql命令连接数据库,单纯使用mysql是以游客模式登陆,没有大部分功能。

  • mysql -u root -p免安装版初始没有密码,直接回车。

  • 使用-h 指定远程MySQL ip地址,使用-P指定端口号(MySQL默认使用3306端口)

    mysql -h 127.0.0.1 -P 2206 -u root -p

  • 退出数据库使用 exit 或 quit

用户

  • 使用 select user(); 来查看当前登陆用户

  • 所有的用户信息都在 mysql 数据库的user数据表中,使用select * from mysql.user查看所有用户信息

  • 创建用户

     grant 权限 on 数据库.数据表 to 用户名@'主机名' identified by '密码';
     # 如果账户不存在则创建该账户
  • 撤销权限

    revoke 权限 on 数据库.数据表 from 用户名@'主机名';
  • 删除用户

    drop user 用户名@'主机名';

修改密码

  • 登陆状态下:

    update mysql.user set password = password(新密码) where user != '';
  • cmd命令:

    mysqladmin -u root -p旧密码 -h域名 password 新密码

数据库编码

修改数据库编码是我的一大痛处

这个可以去看看别人的数据库编码怎么修改,没有什么成功的经验,这几次都是运气修改掉了。气

数据库基本操作

  • 查看已存在数据库

    show databases;
  • 创建数据库

    create databases 数据库名 charset=编码;
    # 如果不设置数据库编码就使用默认编码
  • 查看数据库的详细信息

    show create database 数据库名;
  • 选择数据库

    use 数据库名;
  • 查看数据库中的所有数据表

    show tables;
  • 创建数据表

    create table 表名(
      字段1 数据类型 约束
        ...
        字段n 数据类型 约束
    )charset = 编码 engine = innoDB;
    # 一般引擎默认是innoDB
  • 查看数据表详细信息

    show create table 数据表名;
  • 查看数据表结构

    desc 数据表;
  • 查看数据

    select * from 表名;
    # * 代表显示所有字段信息
    # 可以将 * 替换成字段,指定字段信息显示
  • 插入数据

    insert into 表名(字段1,...字段n) values(字段值1,...字段值n);
    insert into 表名 values(按照字段顺序填写);
  • 更新数据

    update 表名 set 字段 = 字段值 where 字段 = 字段值;
    # 如果没有where后的语句会修改整个表的数据
  • 删除数据

    delete from 表名 where 字段 = 字段值;
    # 如果没有where后的语句会删除整个表的数据
  • 删除数据表

    drop table 表名;
  • 删除数据库(谨慎)

    drop database 数据库名;

数据库表的修改

  • 修改数据库编码

    alter database 数据库名 charset=编码;
  • 修改数据表名字

    alter table 旧表名 rename 新表名;
  • 修改数据表字段名

    alter table 表名 change 旧字段 新字段 数据类型;
  • 修改数据表字段数据类型

    alter table 表名 modify 字段 新类型;

MySQL支持的数据类型

  • 整型

    1. tinyint 1字节 -127~127
    2. smallint 2字节 -32768~32767
    3. mediumit 3字节
    4. int 4字节 -2147483648~2147483647
    5. bigint 8字节
  • 浮点型

    1. float(M, D):4字节,3.4E–38~3.4E+38
    2. double(M, D):8字节,1.7E–308~1.7E+308
    3. decimal(M, D):所在字节M,D大值基础上+2,其实就是M值+2就是decimal字段所占字节数

    (M, D) => M为位数,D为小数位,M要大于等于D
    float(255, 30):精度最低,最常用
    double(255, 30):精度高,占位多
    decimal(65, 30):字符串存,全精度

  • 字符串型

    char:定长,永远采用设置的长度存储数据
    varchar:不定长,在设置的长度范围内,变长的存储数据

  • 时间

    year:yyyy(1901/2155)
    date:yyyy-MM-dd(1000-01-01/9999-12-31)
    time:HH:mm:ss
    datetime:yyyy-MM-dd HH:mm:ss(1000-01-01 00:00:00/9999-12-31 23:59:59)
    timestamp:yyyy-MM-dd HH:mm:ss(1970-01-01 00:00:00/2038-01-19)

  • 枚举与集合

    为某一个字段提供选项的 - 枚举只能单选(1个),集合可以多选(0-n个)

约束

primary key:主键,唯一标识,表都会拥有,不设置为默认找第一个 不空,唯一 字段,未标识则创建隐藏字段
foreign key:外键
unique:唯一性数据, 该条字段的值需要保证唯一,不能重复

auto_increment:自增,只能加给key的int类型字段,作为辅助修饰,一个表中只能设置一个自增字段

not null:设置字段不为空 - 针对一些字段
default:默认值 - 对有默认值意外的字段进行赋值时,有默认值的字段会被赋默认值

unsigned:无符号 - 存储的数字从0开始对整型使用
zerofill:0填充 - 存整数时数据长度小于取值范围长度,会在数字左方用0填充

MySQL(一)

标签:update   启动   fill   http   hang   pow   设置   rop   主机名   

原文地址:https://www.cnblogs.com/Gredae/p/11580755.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!