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密码


结束语

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,525评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,203评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,862评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,728评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,743评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,590评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,330评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,244评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,693评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,885评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,001评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,723评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,343评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,919评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,042评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,191评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,955评论 2 355

推荐阅读更多精彩内容