• python数据库-MySQL数据库的增删改查基本操作(49)


    一、数据库基础

      • 表 table:数据是保存在表内,保存在一个表内的数据,应该具有相同的数据格式
      • 行:行用于记录数据
      • 记录:行内的数据
      • 列:列用于规定数据格式
      • 字段:数据的某个列
      • 主键:唯一地标识表中的某一条记录,不能空,不能重复

    二、数据库的数据类型

    1、数字类型

    整数: tinyint、smallint、mediumint、int、bigint
    浮点数: float、double、real、decimal
    日期和时间: date、time、datetime、timestamp、year

    2、字符串类型

    字符串: char、varchar
    文本: tinytext、text、mediumtext、longtext

    3、二进制

      (可用来存储图片、音乐等): tinyblob、blob、mediumblob、longblob

    4、列的约束: 

      

    三、数据库连接

      在关于数据库的第一篇文章中就给大家讲了使用Navicat连接数据库的方法,那么这里再给大家讲解一下使用命令连接数据库的方式。

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

    mysql -h ip地址 -u root -p
    • -h后面写要连接的主机ip地址
    • -u后面写连接的用户名
    • -p回车后写密码

    四、数据库操作

    1、创建数据库

    create database 数据库名 charset=utf8;

    2、删除数据库

    drop database 数据库名;

    3、切换数据库

    use 数据库名;

    4、查看当前选择的数据库

    select database();

    5、查看目前所有的数据库

    show databases;

    五、表操作

    1、查看当前数据库中所有表

    show tables; 

    2、创建表

    create table 表名(列及类型);
    • 列名:id
    • 类型:int unsigned
    • 约束1:not null
    • 约束2:primary key
    • 约束3:auto_increment

      列的格式:列的名称 类型 约束

    例如:

    create table hero(h_id int auto_increment primary key,h_name varchar(10) not null);

    3、修改表

    语法:

    alter table 表名 add(添加)|modify(修改)|drop(删除) 列名 类型;

    添加列:h_skill 为字符类型

    alter table hero add h_skill varchar(10);

    修改列:h_skill修改本属性不能为空

    alter table hero modify h_skill varchar(10) not null;

    4、删除表

    drop table 表名;

    5、查看表结构

    desc 表名;

    例如:

    mysql> desc hero;
    +---------+-------------+------+-----+---------+----------------+
    | Field   | Type        | Null | Key | Default | Extra          |
    +---------+-------------+------+-----+---------+----------------+
    | h_id    | int(11)     | NO   | PRI | NULL    | auto_increment |
    | h_name  | varchar(10) | NO   |     | NULL    |                |
    | h_skill | varchar(10) | NO   |     | NULL    |                |
    +---------+-------------+------+-----+---------+----------------+
    3 rows in set (0.00 sec)

    6、更改表名称

    rename table 原表名 to 新表名;

     7、查看边的创建语句

    show create table 表名

    例如:

    mysql> show create table hero;
    +-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | Table | Create Table                                                                                                                                                                                   |
    +-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | hero  | CREATE TABLE `hero` (
      `h_id` int(11) NOT NULL AUTO_INCREMENT,
      `h_name` varchar(10) NOT NULL,
      `h_skill` varchar(10) NOT NULL,
      PRIMARY KEY (`h_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
    +-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    1 row in set (0.00 sec)

    六、数据操作

    1、增加数据

    insert into 表名(列1,...) values(值1,...);

    例如:

    insert into hero(h_id,h_name,h_skill) values(1,'韩信','裂天爆斩');

      主键列是自动增长,但是在全列插入时需要占位,通常使用0,插入成功后以实际数据为准

    2、简单查询数据

    select * from 表名

    例如:

    mysql> select * from hero;
    +------+--------+--------------+
    | h_id | h_name | h_skill      |
    +------+--------+--------------+
    |    1 | 韩信   | 裂天爆斩     |
    +------+--------+--------------+
    1 row in set (0.00 sec)

    3、修改数据

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

    例如:

    update hero set h_skill='真裂天爆斩' where h_id=1;
    mysql> select * from hero;
    +------+--------+-----------------+
    | h_id | h_name | h_skill         |
    +------+--------+-----------------+
    |    1 | 韩信   | 真裂天爆斩      |
    +------+--------+-----------------+
    1 row in set (0.00 sec)

    4、物理删除数据

    delete from 表名 where 条件

    例如:

    mysql> delete from hero where h_id=1;
    Query OK, 1 row affected (0.01 sec)
    
    mysql> select * from hero;
    Empty set (0.00 sec)

    5、逻辑删除,

      本质就是修改操作update ,并没有删除,只有用isdelete去和其他没有删除的数据区别,所以叫做逻辑删除,方便回复误删数据

    alter table hero add isdelete bit default 0;
    在需要做逻辑删除的时候写上
    update hero set isdelete=1 where h_id=5;
  • 相关阅读:
    FP-growth算法思想和其python实现
    HDInsight Command
    OpsMgr Connector 20070
    Exchange: How to get Mailbox size in Exchange Shell?
    Get members for ‘Dynamic Distribution Group’
    Hadoop 学习之路-开篇
    Office365 配置完成ADFS之后修改密码之后需要删除登陆信息
    添加只读访问权限到邮箱里的所有文件夹
    使用 Windows PowerShell 连接到 Lync Online
    windows 7无法打补丁
  • 原文地址:https://www.cnblogs.com/Se7eN-HOU/p/11161472.html
Copyright © 2020-2023  润新知