美文网首页我爱编程
mysql一些基本常识(一)

mysql一些基本常识(一)

作者: Li77159 | 来源:发表于2018-03-25 19:34 被阅读0次

    安装

       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一些基本常识(一)

        本文链接:https://www.haomeiwen.com/subject/jxahgxtx.html