zoukankan      html  css  js  c++  java
  • 2 数据库安装应用

    python@ubuntu:~$ mysql -uroot -pmysql
    创建数据库:create database 数据库名 charset=utf-8;
    创建表        create table 表名(字段 类型 约束);
                id int auto_increment primary key not null;
    插入数据  insert into 表名(...) value(...);
    修改数据   update 表名 set 字段名=值;
    删除数据   delete from 表名 ;
            逻辑删除: alter into 表名 add isDelete bit default 0;
                      update 表名 set isDelete=1;
    select * from 表名

    1 远程连接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,运行命令
    grant all privileges on *.* to 'root'@'%' identified by 'mysql' with grant option;
    flush privileges;
    
    #重启mysql

        

    2.添加表

     

    3.逻辑删除

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

        

    4.命令操作

    python@ubuntu:~$ mysql --help   #查看命令
    
    python@ubuntu:~$ mysql -uroot -pmysql    #连接
    #查看版本
    mysql> select version();        
    +-------------------------+
    | version()               |
    +-------------------------+
    | 5.7.20-0ubuntu0.16.04.1 |
    +-------------------------+
    1 row in set (0.00 sec)
    
    查看版本:select version();
    显示当前时间:select now();

      

    5.远程连接

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

    6.数据库操作

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

    7.表操作

    • 创建表
    auto_increment表示自动增长
    
    create table 表名(列及类型);
    mysql> create table school(
        -> id int auto_increment primary key not null,
        -> name varchar(10) not null,
        -> gender bit default 1,
        -> birthday datetime);
    • 修改表

    alter table 表名 add|change|drop 列名 类型;
    如:
    
    mysql> alter table school add idDelete bit default 0;
    删除表
    drop table 表名;
    
    查看表结构
    desc 表名;
    
    更改表名称
    rename table 原表名 to 新表名;
    
    查看表的创建语句
    show create table 表名;
    mysql> show create table school;
    -----+
    | school | CREATE TABLE `school` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(10) NOT NULL,
      `gender` bit(1) DEFAULT b'1',
      `birthday` datetime DEFAULT NULL,
      `idDelete` bit(1) DEFAULT b'0',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
    +--------+-----------------------------

    8.数据操作

    • 查询
    select * from 表名
    • 增加
    1.全列插入:insert into 表名 values(...)
    
    mysql> insert into students values(0,"腾旭",1,"1999-9-9",0);
    +----+--------+--------+---------------------+----------+
    | id | name   | gender | birthday            | isDelete |
    +----+--------+--------+---------------------+----------+
    |  1 | 腾旭   |       | 1999-09-09 00:00:00 |          |
    2.缺省插入:insert into 表名(列1,...) values(值1,...)
    
    mysql> insert into students(name) values('网易');
    mysql> insert into students(gender,name) values(1,'小米');
    3.mysql 特有的
    同时插入多条数据:insert into 表名 values(...),(...)...;
    或insert into 表名(列1,...) values(值1,...),(值1,...)...;
    mysql> insert into students(name) values('百度'),('酷狗'),('QQ');
    +----+--------+--------+---------------------+----------+
    | id | name   | gender | birthday            | isDelete |
    |  5 | 百度   |       | NULL                |          |
    |  6 | 酷狗   |       | NULL                |          |
    |  7 | QQ     |       | NULL                |          |
    +----+--------+--------+---------------------+----------+
    • 修改
    update 表名 set 列1=值1,... where 条件
    mysql> update students set birthday = '1990-2-2' where id=2;
    
    mysql> update students set gender=0,birthday='2017-2-13' where id=6;
    • 删除物理
    mysql> delete from students where id=5;
    • 逻辑删除,本质就是修改操作update
    alter table students add isdelete bit default 0;
    如果需要删除则
    update students isdelete=1 where ...;
    mysql> update students set isDelete=1 where id=6;
    
    mysql> select * from students where isDelete=0;

    9.备份与恢复

    数据备份

    #进入超级管理员
    sudo -s
    
    #进入mysql库目录
    cd /var/lib/mysql
    
    #运行mysqldump命令
    mysqldump –uroot –p 数据库名 > ~/Desktop/备份文件.sql;
    按提示输入mysql的密码
    root@ubuntu:/var/lib/mysql# mysqldump -uroot -p python3 > ~/Desktop/bak.sql
    
    python@ubuntu:~/Desktop$ vim bak.sql 
    一系列的sql语句

    数据恢复

    连接mysqk,创建数据库
    
    退出连接,执行如下命令
    
    mysql -uroot –p 数据库名 < ~/Desktop/备份文件.sql
    根据提示输入mysql密码
    mysql> create database py31 charset=utf8;
    
    python@ubuntu:~/Desktop$ mysql -uroot -p py31 < bak.sql 
  • 相关阅读:
    hao947 : Mybatis resultMap配置插入和主键自增返回 : 好947
    VelocityTracker简单介绍
    Java中StringBuilder的清空方法比較
    jquery中的动画
    数据库索引的作用和长处缺点
    很具体GC学习笔记
    深入理解 JBoss 7/WildFly Standalone 模式启动过程
    curl命令具体解释
    【免费】iPhone上最好用的短信群发软件: 高速短信4.1
    Project interpreter not specified(eclipse+pydev)
  • 原文地址:https://www.cnblogs.com/venicid/p/8035148.html
Copyright © 2011-2022 走看看