zoukankan      html  css  js  c++  java
  • MySQL基础(二)图形窗口操作、命令脚本操作

    使用图形窗口连接

    • 下发windows的navicat
    • 点击“连接”弹出窗口,按照提示填写连接信息,如下图

    连接

    • 连接成功后,会在连接名称下面显示出当前的数据库
    • 双击选中数据库,就可以编辑此数据库
    • 下次再进入此软件时,通过双击完成连接、编辑操作

    数据库操作

    • 连接的名称上右击,选择“新建数据库”,弹出窗口,并按提示填写

    创建数据库

    • 在数据库上右击,选择“删除数据库”可以完成删除操作

    表操作

    • 当数据库显示为高亮时,表示当前操作此数据库,可以在数据中创建表
    • 一个实体对应一张表,用于存储特定结构的数据
    • 点击“新建表”,弹出窗口,按提示填写信息

    • 实体-----表     属性------字段

    创建表

    • 主键的名称一般为id,设置为int型,无符号数,自动增长,非空
    • 自动增长表示由mysql系统负责维护这个字段的值,不需要手动维护,所以不用关心这个字段的具体值
    • 字符串varchar类型需要设置长度,即最多包含多少个字符
    • 点击“添加栏位”,可以添加一个新的字段
    • 点击“保存”,为表定义名称
    • 右键然后点击“设计表”可以重新设计

    数据操作

    • 表创建成功后,可以在右侧看到,双击表打开新窗口,如下图

    数据操作

    • 在此窗口中可以增加、修改、删除数据

    逻辑删除

    • 对于重要数据,并不希望物理删除,一旦删除,数据无法找回
    • 一般对于重要数据,会设置一个isDelete的列,类型为bit,表示逻辑删除默认值为0,1表示删除
    • 大于大量增长的非重要数据,可以进行物理删除
    • 数据的重要性,要根据实际开发决定

     

    使用命令连接

    • 命令操作方式,在工作中使用的更多一些,所以要达到熟练的程度
    • 打开终端,运行命令
        • mysql -uroot -p
    
    回车后输入密码,当前设置的密码为mysql
    
    • 连接成功后如下图

    连接成功

    • 退出登录
    quit或exit
    
    • 退出成功后如下图

    退出

    • 登录成功后,输入如下命令查看效果
    查看版本:select version();
    显示当前时间:select now();
    
    • 注意:在语句结尾要使用分号;

    远程连接

    • 一般在公司开发中,可能会将数据库统一搭建在一台服务器上,所有开发人员共用一个数据库,而不是在自己的电脑中配置一个数据库
    • 运行命令
    
    
    • -h后面写要连接的主机ip地址
    • -u后面写连接的用户名
    • -p回车后写密码

    数据库操作

    • 创建数据库
    create database 数据库名 charset=utf8;
    
    • 删除数据库
    drop database 数据库名;
    
    • 切换数据库
    use 数据库名;
    
    • 查看当前选择的数据库
    select database();
    查看当前所有的数据库:
    show databases;

    表操作

    • 查看当前数据库中所有表
    show tables;
    
    • 创建表
    • auto_increment表示自动增长

      CREATE TABLE IF NOT EXISTS `tc_base`(
         `tc_base_id` INT UNSIGNED AUTO_INCREMENT,
         `tc_region_name` VARCHAR(100) NOT NULL,
         `street_name` VARCHAR(40) NOT NULL,
         PRIMARY KEY ( `tc_base_id` )
      )ENGINE=InnoDB DEFAULT CHARSET=utf8;
      

        

      • 如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
      • AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
      • PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
      • ENGINE 设置存储引擎,CHARSET 设置编码。

         

    • 修改表

    alter table 表名 add|change|drop 列名 类型;
    如:
    alter table students add birthday datetime;
    
    • 删除表(物理删除)
    drop table 表名;
    
    • 查看表结构describe
    desc 表名;
    • 更改表名称
      rename table 原表名 to 新表名;
    • 更改表中列信息
      
     ALTER TABLE testalter_tbl CHANGE 旧列名字 新列名字 BIGINT;
    • 查看表的创建语句
    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命令
    mysqldump –uroot –p 数据库名 > ~/Desktop/备份文件.sql;
    按提示输入mysql的密码
    

    数据恢复

    • 连接mysqk,创建数据库

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

    mysql -uroot –p 数据库名 < ~/Desktop/备份文件.sql
    根据提示输入mysql密码

    总结

    • 数据库解决的问题,E-R模型,三范式
    • 图形界面操作数据库、表、数据
    • 命令行操作数据库、表、数据

    数据库命令:
    创建create database 数据库名 charset=utf8;
    删除drop database 数据库名;
    查看所有数据库:show databases;
    使用数据库:use 数据库名;
    ----------------------------------------
    表命令:
    create table 表名(列...);
    唯一标识的要求:id
    类型:int unsigned
    约束1:not null
    约束2:primary key
    约束3:auto_increment
    列的格式:列的名称 类型 约束
    create table stu(
    -> id int not null primary key auto_increment,
    -> name varchar(10) not null,
    -> gender bit default 1,
    -> birthday datetime,
    -> isDelete bit default 0,
    -> );
    查看表show tables;

    查看表的创建语句:show create table 表名;


    查看表结构desc 表名;
    修改表:alter table 表名 add|modify|drop 列名 类型 约束;
    alter table stu modify column isDelete bit not null default 0;
    删除表:drop table 表名;
    ----------------------------------------
    数据命令:
    添加数据:insert into 表名(列名) values(值),(值)...;
    修改数据:update 表名 set 列1=值1,... where ...;
    删除数据:delete from 表名 where ...;
    逻辑删除:update 表名 set isDelete =1,where...;
    备份:mysqldump >
    恢复:mysql <

     

    CREATE TABLE IF NOT EXISTS `tc_base`(   `tc_base_id` INT UNSIGNED AUTO_INCREMENT,   `tc_region_name` VARCHAR(100) NOT NULL,   `street_name` VARCHAR(40) NOT NULL,   PRIMARY KEY ( `tc_base_id` ))ENGINE=InnoDB DEFAULT CHARSET=utf8;

  • 相关阅读:
    CodeForces 19D Points (线段树+set)
    FZU 2105 Digits Count
    HDU 5618 Jam's problem again(三维偏序,CDQ分治,树状数组,线段树)
    HDU 5634 Rikka with Phi (线段树)
    Java实现 蓝桥杯 算法提高 转圈游戏(暴力快速幂)
    Java实现 蓝桥杯 算法提高 转圈游戏(暴力快速幂)
    Java实现 蓝桥杯 算法提高 转圈游戏(暴力快速幂)
    Java实现 蓝桥杯 算法提高VIP Substrings(暴力)
    Java实现 蓝桥杯 算法提高VIP Substrings(暴力)
    Java实现 蓝桥杯 算法提高VIP Substrings(暴力)
  • 原文地址:https://www.cnblogs.com/StarZhai/p/9925462.html
Copyright © 2011-2022 走看看