MySQL(四)-补充
1、内查询:2种表示方法
以testdev数据库的goods表和shop表为例:
查询出goods表的name和shop表的name、level:
第1种方法:
第2种方法:
2、创建表:if not exists
create table if not exists [表名] (列名 类型)
🎨如果,创建表的表名已经存在,那么该条命令不会覆盖之前已经存在的表名,而且也不会报错。
🎨如果,创建表的表名不存在,那么就会创建一个新的表。
3、列的约束
3-1、auto_increment:自增
此时在插入的时候,可以不设置id,其中,即使在插入之前删除前10位的数据,按照自增长的方式,仍然会从11位开始。
3-2、primary key:主键
3-3、not null:不为空
上图操作,第一个错误,由于name设置的字段长度为10,插入超过10,必然报错!
上图操作,第二个错误,由于address设置不能为空,插入数据时,address为空,必然会报错!
当然关键字段:Primary key必然不可能为空。
3-4、unique:唯一性,插入的字段不能有任何的一样。
3-5、default:默认
此时,设置某一字段不能为空,通过设置default默认值,在插入的时候,可以允许为空!
4、一个表里多个字段设置多个主键的操作:
5、MySQl的时间类型
DATETIME:YYYY-MM-DD HH:MM:SS 最大值到9999 TIMESTAMP:YYYY-MM-DD HH:MM:SS 最大值到2038年 DATE:YYYY-MM-DD TIME:HH:MM:SS YEAR:YYYY
DATETIME的使用:
alter table A add birthday datatime default "2022-08-12 12:00:00"; select * from user where birthday between "1990-09-09 00:00:00" and "1999-03-28 23:59:59";
6、MySQL小数点:
FLOAT:单精度 DOUBLE:双精度 DECIMAL (M, D):M是数字的最大位数(精度),其范围为“1~65”,默认值是10;D是小数点右侧数字的数目(标度),其范围是“0~30”,但不得超过M。
salary decimal(7,2):指的是salary的值,最多是7位(包含小数点的位数),不论写的薪资是多少,只要没有超过7位,都可以,但是,都只会保留小数点后2位。