• 【Mysql】mysql学习之旅02-DDL数据库定义语言


    mysql学习之旅02-DDL数据库定义语言

    操作数据库:

    • 创建:create database 数据库名称;
    • 删除:drop database 数据库名称 ;
    • 查看所有的数据库:show databases;
    • 切换或进入数据库:use 数据库名称;

    操作表:

    • 创建表:create table 表名(字段描述1,字段描述2:字段名称 字段类型[约束]);
    • 查询创建表:利用现有表中查询的数据创建一个新的表
      create table 新表 as select 字段1,字段2,字段3 from 原表

    修改表:alter table 表名…

    • 修改表名:alter table 旧表名 rename 新表名;
    • 添加字段:alter table 表名 add [column] 字段描述 [after 字段名];
    • 修改字段名:alter table 表名 change 原字段名 新字段名 字段描述;
    • 修改字段描述:alter table 表名 modify 字段名称 字段类型[约束];
    • 删除字段:alter table 表名 drop 字段名称

    注意:

    1. 若表中有数据,可能无法更改表数据结构
    2. 使用change修改字段会覆盖所有字段描述

    删除表:

    1. drop table 表名;

    其他常用命令:

    1. 查看表结构:desc 表名;
    2. 查看建表语句:show create table 表名;

    java与mysql的数据类型对应:

    javamysql备注
    bytetinyint
    shortsmallint
    intint
    longbigint
    char/Stringvarchar/charvarchar可变长度,mysql的方言,char固定长度
    booleantinyint/int没有此类型,使用int类型代替(1真0假)
    float/doublefloat/double注意:double(5,2)代表长度为5,小数点占其中的两位,999.99
    decimal(10,2)表示总长度为10,小数位2位,不存在精度丢失,适用于账目计算
    java.sql.Datedate日期
    java.sql.Timetime时间
    datetime日期 + 时间
    java.sql.Timestamptimestamp时间戳,若给定值为null,会把当前系统时间存入数据库
    java.sql.Clobtext长文本
    java.sql.Blobblob二进制
    备注:
    1. float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位)
    2. double:双精度实型,含字节数为8,64bit数值范围-1.7E308~1.7E308(15个有效位)
    3. decimal:数字型,128bit, 不存在精度丢失,常用于银行账目计算(28个有效位)

    约束:

    作用:为了保证数据的有效性和完整性

    常用的约束:

    • 默认约束:default 用于设置默认值
    • 唯一约束:unique
      对null值不起作用,可以有多个null值,但是空字符串只能有一个
    • 非空约束:not null
    • 主键约束:primary Key(实体完整性)
    注意:唯一非空,一张表只能有一个主键,这个主键可以包含多个字段(联合主键),一般使用与业务逻辑无关的字段
    1. 方式1:建表的同时添加约束格式:字段名称,字段类型primary key
    2. 方式2:建表的同时在约束区域(所有字段之后)添加约束格式:primary key(字段1, 字段2)
    3. 方式3:建表之后,通过修改表结构添加约束格式:alter table 表名 add [constraint] primary key(字段1, 字段2…)
    • 外键约束:foreign key(引用完整性)
    注意:1, 添加完外键约束后,主表中不能删除从表中已引用的数据, 2, 从表中不能引用主表中不存在的数据, 3, 外键类型一般与主键类型保持一致, 4, mysql中外键有四种模式:限制,无操作,级联,设置为null
    • 自动编号:auto_increment
    要求:
    1. 被修饰的字段类型支持自增,一般是int
    2. 被修饰的字段必须是一个key,一般是primary key
    • 检查约束:check(mysql不支持)

    age int check(age>18 and age<60)

  • 相关阅读:
    Spring Security配置个过滤器也这么卷
    Vue Express结合MySQL项目
    我的写作心得
    Go 文件读写
    《进化优化》第4章 遗传算法的数学模型
    JAVA毕设项目芮城县十全十美火锅店点餐系统(java+VUE+Mybatis+Maven+Mysql)
    大数据之Hadoop
    算法ppt练习题(给黄成个大逼兜)
    C++ STL的vector深入理解
    Cookie、Session和Token三者区别以及各自应用场景
  • 原文地址:https://blog.csdn.net/Jeffhan_java/article/details/126157874