mysql基本操作快速复习-增删改查

本文介绍了Python学习资源及数据库基础知识,覆盖了数据库连接、表结构创建、数据增删改查等核心操作,并提供了实例演示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
学习python和数据分析推荐地方: www.lynda.com  
获取lynda官网会员的方式:http://item.taobao.com/item.htm?id=557746408785



数据库用户名: root
密码:        mysql

# """"""  -- // /*  */


char(5) 长度固定为5的字符串 ab  --> "ab   "
varchar(5) abc --> "abc" 不能够超出长度


年龄 如果使用int   在一个别墅里面装了一颗芝麻

-- 数据库的操作

    -- 链接数据库
    mysql -uroot -pmysql


    -- 退出数据库
    exit quit ctr + d

    -- 查看创建数据库
    show databases;

    -- 查看当前使用的数据库
    select database();

    -- 使用数据库 切换
    use python_info;

    -- sql语句最后需要有分号;结尾
    -- 显示数据库版本
    select version();
    -- 显示时间
    select now();
    -- 创建数据库 create 
    create database demo;
    -- 指定字符集
    create database demo charset=utf8;

    -- 查看数据库的创建语句
    show create database demo;

    -- 删除数据库
    drop database demo;

    


-- 数据表的操作

    -- 查看当前数据库中所有表
    show tables;
    -- 创建表
    -- auto_increment表示自动增长
    -- 创建一个学生的数据表(id、name、age、high、gender、cls_id)
    -- create table 数据表名字 (字段 类型 约束[, 字段 类型 约束]);
    -- 字段名 + 类型 + 约束(不分先后顺序)
    -- unsigned不能够为负数
    -- facebook 56个性别
    -- enum 表示枚举
    -- 班级id 在班级表中设置的是 int unsigned类型  学生表中需要引用班级的编号 需要保证类型是一致的
    create table students(
        id int unsigned primary key auto_increment not null,
        name varchar(10) not null,
        age tinyint unsigned default 0,
        high decimal(5,2) default 0,
        gender enum("男", "女", "中性", "保密"),
        cls_id int unsigned default 0
    );
    -- 创建students表

    -- 查看表的创建语句
    show create table classes;
    engine(引擎) = innodb (支持外键并且还是事务)  转账 a - 500-> b 500元  需要使用事务 提供了一种可以撤销的机制

    MyISAM 全文检索引擎  查询速度  更新非常慢 不支持 事务 和外键
    -- 查看表结构
    desc classes;
    +-------+------------------+------+-----+---------+----------------+
    | Field | Type             | Null | Key | Default | Extra          |
    +-------+------------------+------+-----+---------+----------------+
    | id    | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
    | name  | varchar(15)      | NO   |     | NULL    |                |
    +-------+------------------+------+-----+---------+----------------+

    
    -- 修改表结构  alter
    -- 修改表-添加字段
    -- alter table 表名 add 列名 类型/约束;
    -- 生日信息 
    alter table students add birthday datetime;

    -- 修改表-修改字段:不重命名版
    -- alter table 表名 modify 列名 类型及约束;
    alter table  students modify birthday date;

    -- 修改表-修改字段:重命名版
    -- alter table 表名 change 原列名 新列名 类型及约束;
    alter table students change birthday birth date;

    -- 删除对应的字段
    alter table students drop birth;

    -- 删除表
    drop table students;




    
-- 数据增删改查(curd)

    -- 增加 insert 
        -- 全列插入  值和表的字段的顺序一一对应
        -- 可有 可无
        -- insert [into] 表名 values(...)
        -- [] 在sql语法中表示可有可无和
        -- 和表的创建的字段的顺序 一一对应  一个都不能够少
        -- 主键字段需要通过一些特殊的值来占位(0, NULL, Default)
        -- 枚举: 枚举值从1开始(1,2,3,4) 和原始值(男)
        +--------+-------------------------------------+------+-----+---------+----------------+
        | Field  | Type                                | Null | Key | Default | Extra          |
        +--------+-------------------------------------+------+-----+---------+----------------+
        | id     | int(10) unsigned                    | NO   | PRI | NULL    | auto_increment |
        | name   | varchar(10)                         | NO   |     | NULL    |                |
        | age    | tinyint(3) unsigned                 | YES  |     | 0       |                |
        | high   | decimal(5,2)                        | YES  |     | 0.00    |                |
        | gender | enum('男','女','中性','保密')          | YES  |     | NULL    |                |
        | cls_id | int(10) unsigned                    | YES  |     | 0       |                |
        +--------+-------------------------------------+------+-----+---------+----------------+
        insert into students values (0,"小乔",40,180,1,1);
        insert into students values (NULL,"曹操",40,180,1,2);
        insert into students values (NULL,"刘备",35,180,"男",2);
        # 错误insert into students values (NULL,"张飞",35,180,"不知道",2);
        # 错误insert into students values (NULL,"张飞",35,180, 6,2);


        -- 指定列插入
        -- insert into 表名(列1,...) values(值1,...)
        -- values 也可以是 value
        insert into students (name, gender, cls_id) values ("周瑜", 1, 1);
        

        -- 多行插入  批量插入
        -- insert into 表名(列1,...) values (值1,...),(值1,...),...
        insert into students (name, gender, cls_id) values ("刘备", 1, 2), ("诸葛亮", 1, 2),("张飞", 1, 2);

    -- 修改
    -- where 可以不加 但是此时是全表更新
    -- update 表名 set 列1=值1,列2=值2... where 条件
    -- 搜易贷 P2P 500w 送加息券
    -- 易租宝跑路
    update students set gender = 1;

    update students set gender = 1 where id = 4;




    

    -- 删除
        python : if id == 4 sql 表示是否相等 通过一个 =
        -- 物理删除
        -- DELETE FROM tbname [where 条件判断]
        delete from students;  -- 整表删除 mysql 从删表到跑路  去哪儿数据库被恶意删除  前dba(数据库管理员)
        delete from students where id = 4;


        -- 诺基亚 下架 个人中心--> 我的订单 --> 订单列表-->诺基亚手机的订单--> 订单详情  -> 商品详情

        -- 逻辑删除  给每一条数据添加一个标记, 标记是否被删除  0 表示没有被删除  1 表示被删除
        1. 修改表结构  添加一个标记 字段
        alter table students add is_delete bit default 0;
        2. 更新需要逻辑删除的数据

        -- 查询有哪些学生没有被删除


    -- 查询基本使用
        -- 查询所有列
        -- select * from 表名;
        -- 查询classes 表中所有的数据
        select * from classes;

        -- 指定字段查询

        -- sql 中表示相等 使用 = 而不是 ==

        -- 指定条件查询

        -- 查询指定列

        -- 字段的顺序

        -- 可以使用as为列或表指定别名




    






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值