【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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JeffHan^_^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值