• 第二章——操作数据库


    2. 操作数据库

    操作数据库>操作数据库中的表>操作表中的数据

    2.1 操作数据库:

    创建数据库:(MySQL不区分大小写)

    create Database if not exists westos

    删除数据库:

    drop Database if exists westos

    使用数据库: (如果表名或者字段名是一个特殊字符(比如user),需要加``,tab键上面)

    use `school`

    查看数据库:

    show Databases --查看所有的数据库
    

    2.2 数据库的数据类型

    数值

    • tinyint        十分小的数据        1个字节
    • smallint        较小的数据         2个字节
    • mediumint        中等大小的数据        3个字节
    • int        标准的整数        4个字节(常用)
    • bigint        较大的数据        8个字节
    • float        浮点数        4个字节
    • double        浮点数        8个字节(精度问题)
    • decimal        字符串形式的浮点数(常用在金融)

    字符串

    • char        固定大小        0~255
    • varchar        可变长字符串        0~65535(常用的 String)
    • tinytext        微型文本        2^8-1
    • text        文本串        2^16-1(保存大文本)

    时间日期

    • date        YYYY-MM-DD,日期
    • time        HH:mm:ss,时间 
    • datetime        YYYY-MM-DD HH:mm:ss(最常用的时间格式)
    • timestamp        时间戳        1970.1.1
    • year        年份表示

    null

    • 没有值,未知
    • 不要使用null进行运算 

     2.3 数据库的字段属性(重点)

    Unsigned:

    • 无符号整数
    • 声明了该列不能声明为负数

    zerofill:

    • 0填充
    • 不足的位数使用0填充        int(3)5------005

    自增:

    • 默认在上一条记录的基础上+1
    • 通常是惟一的主键,必须是整数
    • 可以自定义步长

    非空 null & not null:

    • 如果不填写值,会报错!

    默认:

    • 设置默认值
    • sex,默认为男,如果不指定该列的值,会设置为默认值

    每一个表都必须存在下面五个字段,表示记录存在的意义:(拓展)

    • id        主键
    • `version`        乐观锁
    • is_delete        伪删除
    • gmt_create        创建时间
    • gmt_update        修改时间

    2.4 创建数据库表(重点)

     格式:

    1. create table [if not exists] `表名`(
    2. `字段名` 列类型 [属性] [索引] [注释],
    3. `字段名` 列类型 [属性] [索引] [注释],
    4. ......
    5. `字段名` 列类型 [属性] [索引] [注释]
    6. )[表类型] [字符集设置] [注释]

    常用命令:

    1. show create datebase school -- 查看创建数据库的语句
    2. show create table student --查看student数据表的定义语句
    3. decs student --显示表的结构

    2.5 数据表的类型

    INNODB:(默认使用)

    MYSAN:(早些年使用)

    INNODBMYSAN
    事务支持支持不支持
    数据行锁定支持不支持
    外键约束支持不支持
    全文索引不支持支持
    表空间大小较大,约为后者两倍较小

    常规使用操作

    • MYSAM:节约空间,速度较快
    • INNODB:安全性高,能够处理事务,能够多表多用户操作

    MYSQL引擎在物理文件上的区别

    • INNODB在数据库表中只有一个*.frm文件,以及上级目录下的ibd 文件;
    • MYSAM对应文件
      • *.frm        --表结构定义文件
      • *.MYD        数据文件(0data)
      • *.MYI        索引文件(index)

    设置数据库表的字符集编码:

    charset=utf8
    • 如果不设置的话,是mysql的默认字符编码,会不支持中文
    • 在my.ini中配置默认的编码
    charse-set-server=utf8

    2.6 修改删除表

    修改表

    1. alter table teacher rename techer1 --修改表名
    2. alter table teacher1 add age int(11) --增加表的字段
    3. alter table teacher1 modify age varchar(11) --修改表的字段(只能修改约束)
    4. alter table teacher change age age1 int(11) --修改表的字段(重命名、修改约束)
    5. alter table teacher1 drop age1 --删除表的字段

    删除表

    创建和删除操作尽量加上判断,以免发生报错!!

    drop table if exists teacher1 --如果表存在就删除
    

    注意点:

    • 所有的字段名,尽量用``
    • 注释用--
    • sql关键字大小写不敏感,建议写小写,好识别
    • 所有的符号用英文,中文会报错
  • 相关阅读:
    ARM TrustZone白皮书部分阅读
    OPPO Reno7/Reno7pro/Reno8/Reno8Pro刷机后需要账号激活,如何解锁删除欢太账号绑定
    XTU-OJ 1187-Candy
    我用PYQT5做的第一个实用的上位机项目(六)
    常见非甾体抗炎药及作用机理
    [SpringBoot] 父子项目搭建,过滤多模块发布到私仓
    如何能在项目具体编码实现之前能尽可能早的发现问题并解决问题
    猿创征文 第二季|业务总结 #「笔耕不辍」--生命不息,写作不止#
    一款EF Core下高性能、轻量级针对分表分库读写分离的解决方案
    K_A02_005 基于单片机驱动数码管 LED 按键模块(TM1638) 流水灯 0-7 按键值显示
  • 原文地址:https://blog.csdn.net/weixin_44564247/article/details/126421566