mysql一些基本常识(一)

安装

   sudo apt-get install mysql-server mysql-client

管理服务

  • 启动

    service mysql start
    
  • 停止

    service mysql stop
    
  • 重启

    service mysql restart
    

允许远程连接

  • 找到mysql配置文件并修改

     sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
    
      将 bind-address=127.0.0.1 注释掉
    
  • 登录mysql,运行命令

      mysql -hlocalhost -uroot -p
    
  • 会提示输入密码

  • 执行数据库语句

    第一句话:grant all privileges on *.* to 'root'@'%' identified by 'mysql' with grant option;
    
    第二句话:flush privileges;
    
    mysql>   grant all privileges on . to ‘root’@’%’ identified by ‘密码’;
    
    mysql>   flush privileges;
    
  • 登陆之后 quit或者exit退出mysql

  • 重启虚拟机

数据库完整性

  • 一个数据库就是一个完整的业务单元,可以包含多张表,数据被存储在表中
  • 在表中为了更加准确的存储数据,保证数据的正确有效,可以在创建表的时候,为表添加一些强制性的验证,包括数据字段的类型、约束

字段类型

  • 在mysql中包含的数据类型很多,这里主要列出来常用的几种

  • 数字:tinyint,int,decimal

      类型名称              说明                       存储需求
      TINYINT            很小的整数                 1个字节
      INT(INTEGER)       普通大小的整数             4个字节
      DECIMAL(M,D)       压缩的“严格”定点数         如果M>D为M+2个字节,否则为D+2
    
  • 字符串:char,varchar,text

      类型名称               说明                      存储需求
      CHAR(M)            固定长度非二进制字符串      M字节,1<=M<=255
      VARCHAR(L)         变长非二进制字符串          L+1字节
      TEXT               小的非二进制字符串          L+2字节,在此L<2^16
    
  • 注意

    • 1:VARCHAR(10)列能保存的最大长度为10个字符的一个字符串,实际的存储需要时字符串的长度L,加上1个字节以记录字符串的长度,对于字符’abcd’,L是4而存储要求是5个字节。
    • 2:CHAR(M)为固定长度字符串,在定义时指定字符串列长。当保存时在右边填充空格以达到指定长度。M表示指定长度,M的取值范围是0~255个字符。例如,CHAR(4)定义了一个固定长度的字符串列。其包含的字符串个数最大为4.当检索到CHAR值时,尾部的空格将被删除掉。
  • 日期:datetime

  • 布尔:bit

Bit称为位数据类型,其数据有两种取值:0和1,长度为1位。在输入0以外的其他值时,系统均把它们当1看待。这种数据类型常作为逻辑变量使用,用来表示真、假或是、否等二值选择。

约束

  • 主键primary key

主键,又称主码,是表中一列或多列的组合。主键约束要求主键列的数据唯一,并且不允许为空。主键能够唯一地标识表中的一条记录,可以结合外键来定义不同数据表之间的关系,并且可以加快数据库查询的速度,并且可以加快数据库查询的速度。主键和记录之间的关系如同身份证和人之间的关系,他们是一一对应的。主键分为两种类型:单字段主键和多字段联合主键。

  • 非空not null

非空约束指字段的值不能为空。对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统会报错。

  • 惟一unique

唯一性约束要求该列唯一,允许为空,但只能出现一个空值。唯一约束可以确保一列或者几列不出现重复值。

  • 默认default

默认约束指定某列的默认值。如男性同学较多,性别就可以默认为‘男’。如果插入一条新的记录时没有为这个字段赋值,那么系统会自动为这个字段赋值为‘男’

  • 外键foreign key

在数据库应用中,经常希望在每次插入新记录时,系统会自动生成字段的主键值。可以通过为表主添加auto_increment 关键字来实现。默认的,在MySQL中auto_increment的初始值是1,每新增加一条记录,字段自动加1.一个表只能有一个字段使用auto_increment约束,且该字段必须为主键的一部分。auto_increment约束的字段可以是任何整数类型(TINYINT,SMALLIN,INT,BIGINT等)

使用命令连接

  • 命令操作方式,在工作中使用的更多一些,所以要达到熟练的程度

  • 打开终端,运行命令

    mysql -uroot -p
    

回车后输入密码,当前设置的密码为mysql

  • 退出登录

    quit或exit
    
  • 登录成功后,输入如下命令查看效果

     查看版本:select version();
    
     显示当前时间:select now();
    
      注意:在语句结尾要使用分号;
    

远程连接

  • 一般在公司开发中,可能会将数据库统一搭建在一台服务器上,所有开发人员共用一个数据库,而不是在自己的电脑中配置一个数据库

  • 运行命令

    mysql -hip地址 -uroot -p
    
  • -h后面写要连接的主机ip地址

  • -u后面写连接的用户名

  • -p回车后写密码

数据库操作

  • 创建数据库

    create database 数据库名 charset=utf8;
    
  • 删除数据库

    drop database 数据库名;
    
  • 切换数据库

    use 数据库名;
    
  • 查看当前选择的数据库

    select database();
    

表操作

  • 查看当前数据库中所有表

    show tables;
    
  • 创建表

     auto_incremeaa表示自动增长
    
  • 修改表

     alter table 表名 add|change|drop 列名 类型;
    
        eg: alter table students add birthday datetime;
    
  • 删除表

    drop table 表名;
    
  • 查看表结构

    desc 表名;
    
  • 更改表名称

    rename table 原表名 to 新表名;
    
  • 查看表的创建语句

    show create table '表名';
    

数据操作

  • 查询

    select * from 表名
    
  • 增加

    全列插入:insert into 表名 values(...)
    
    缺省插入:insert into 表名(列1,...) values(值1,...)
    
    同时插入多条数据:insert into 表名 values(...),(...)...;
    
                   或insert into 表名(列1,...) values(值1,...),(值1,...)...;
    
  • 主键列是自动增长,但是在全列插入时需要占位,通常使用0,插入成功后以实际数据为准

  • 修改

    update 表名 set 列1=值1,... where 条件
    
  • 删除

    delete from 表名 where 条件
    
  • 逻辑删除,本质就是修改操作update

    alter table students add isdelete bit default 0;
    
  • 如果需要删除则

      update students isdelete=1 where ...;
    

备份与恢复

数据备份

  • 进入超级管理员

    sudo -s
    
  • 进入mysql库目录

    cd /var/lib/mysql
    
  • 运行mysqldump命令

    Mysql dump –uroot –p 数据库名 > ~/Desktop/备份文件.sql;
    

按提示输入mysql的密码

数据恢复

  • 连接mysql,创建数据库

  • 退出连接,执行如下命令

    mysql -uroot –p 数据库名 < ~/Desktop/备份文件.sql
    

根据提示输入mysql密码


结束语

如果您对这篇文章有什么意见或者建议,请评论与我讨论.
如果您觉得还不错的话~可以点个喜欢鼓励我哦.
如果您想和我一起学习,请毫不吝啬的私信我吧~

你可能感兴趣的:(mysql一些基本常识(一))