Python高级编程9:深入学习MySQL数据表

前言     

        从上一篇我们刚接触MySQL,慢慢理解了数据库是什么,以及我们该如何安装MySQL和里面创建数据库的基本操作,这一篇我们主要针对该如何去操作数据表进行深入学习,如果还不了解数据库以及如何安装的小伙伴,可以翻到上一篇的博客来学习:点击此处链接

        OK,让我们开始吧!!!


一、操作数据表的基本语法(增删改查)

操作数据表:
    0.查看表结构
        desc 表名;
        desc stu;

    1.新增字段 --> 加在最后
        alter table 表名 add 字段名 数据类型;
        alter table hero add skill varchar(25);
    
    2.新增字段 --> 加在最前面
        alter table 表名 add 字段名 数据类型 first;
        alter table hero add id int(4) first;

    3.新增字段 --> 加载指定字段后面
        alter table 表名 add 字段名 数据类型 after 字段名;
        alter table hero add country varchar(10) after name;
    
    4.修改字段
        alter table 表名 change 旧字段名 新字段名 数据类型;
        alter table hero change id num int(4);

    5.删除字段
        alter table 表名 drop column 字段名;

        alter table hero add mmd int(4);  # 先加再删
        alter table hero drop column mmd;

    6.清空表数据
        delete from 表名;
        delete from hero2;

    7.删除表
        drop table 表名;
        drop table hero2;

建议

这些是操作数据表的一些基本代码,不要只看就觉得自己会了,多敲多读,形成肌肉记忆


二、数据查询的基本语法

2.1、查看当前数据库里的所有数据表信息

        show tables;


2.2、查看表里的所有数据

    select * from 表名;
    select * from stu;

2.3、查看表里的指定字段

    select 字段名,字段名 from 表名;
    select name,weapon from hero;

更深入的还可以使用where条件判断配合逻辑符号、比较符号以及数字符号来使用

where条件判断/数据筛选 --> 查询语句后加入where判断


    比较符号:  =  !=  >  <  >=  <=
        查询年龄大于30岁的学生
        select * from stu where age >= 30;

        查询姓名等于奥特曼的学生k 
        select * from stu where name = "奥特曼";

        查询年龄小等于25岁的学生 的姓名和身高
        select name,height from stu where age <= 25;

    逻辑符号:
        and: 并且, 当有多个条件时,必须都满足才获取
        or: 或者,当有多个条件时,满足其一就可以获取
        not: 非,不是,取反. 不等于

        insert into stu values("梦山",'男',29,177.52),
                            ("梦山",'女',18,144.5);

        查询姓名等于梦山,并且性别为男的数据
        select name,age,sex from stu where name="梦山" and sex='男';

        查询姓名性别为男或者姓名叫梦山的数据
        select name,age,sex from stu where name="梦山" or sex='男';

    数字符号:
        between 在两个值之间
        not between 不在两个值之间
        in 在范围里有这个数据
        not in 在范围里没有这个数据

        查询年龄在20 - 30岁之间的学生的 姓名,年龄,性别
        select name,age,sex from stu where age between 20 and 30;

        查询年龄不在20 - 30岁之间的学生的 姓名,年龄,性别
        select name,age,sex from stu where age not between 20 and 30;

        查询年龄为18,20,25岁学生的 姓名,年龄,性别
        select name,age,sex from stu where age in(18,20,25);


三、数据更新的基本语法

3.1、修改表数据

    update 表名 set 字段名=值 where 条件;


    不加where的话,会修改所有字段 --> 改了所有人的数据!!!

    把这几位同学的性别改为男
    update stu set sex='男' where name in("蓝文祥","赵学海","绍东");

3.2、删除表数据

   delete from 表名 where 条件;

    # 删除所有名字为空的数据
    delete from stu where name is NULL; 

    如果有两个重复数据,只想删一个.那就想办法弄一个每个人特有的属性.
    

    # 删除stu表里的 id列    drop:扔掉删除  column:列  id:字段名
    alter table stu drop column id;

    # 插入一个id. 主键+自增
    alter table stu add column id int auto_increment primary key first;

    # 删除姓名为蓝文祥 id为5的数据
    delete from stu where name="蓝文祥" and id =5; 


四、约束(Constraint)

约束的作用是保证数据的合法性,避免出现不合理数据。

例如:

  • 年龄为负数
  • 名字为空
  • 主键重复

4.1 常见约束类型

约束作用
NOT NULL非空
DEFAULT默认值
UNIQUE唯一
PRIMARY KEY主键
AUTO_INCREMENT自增

4.2 使用示例

-- 非空
CREATE TABLE test1(
id INT,
name VARCHAR(10) NOT NULL,
age INT
);

-- 默认值
CREATE TABLE test2(
id INT,
name VARCHAR(10) DEFAULT '梦山',
age INT
);

-- 唯一约束
CREATE TABLE test3(
id INT UNIQUE,
name VARCHAR(10),
age INT
);

-- 主键
CREATE TABLE test4(
id INT PRIMARY KEY,
name VARCHAR(10),
age INT
);

-- 自增主键
CREATE TABLE test5(
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(10),
age INT
);

实际开发中,通常会使用 id + AUTO_INCREMENT 作为主键,这是一种通用设计方式。


总结

这篇文章主要梳理了 MySQL 入门阶段最核心的内容:

  • 表的增删改查
  • 约束的使用

如果是刚入门,建议边看边在本地敲一遍 SQL,效果会好很多。


如果这篇博客对你有帮助的话,请动动发财的小手点个小赞赞吧,谢谢各位义父!!!

每日励志文案:

心平能愈三千疾,心静可通万事理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值