MySQL建表設(shè)置默認值/取值范圍的操作代碼
MySQL建表設(shè)置默認值/取值范圍
一、設(shè)置默認值
設(shè)置默認值采用default,如代碼所示:
二、設(shè)置取值范圍
設(shè)置取值范圍采用check,如代碼所示:
create table student( id int not null primary key auto_increment, name varchar(32) not null, sex varchar(8) default('男'), #設(shè)置默認值 age int not null check (age between 10 and 50), #設(shè)置取值范圍 class_id int not null references class(id), stu_num varchar(32), constraint stu_u unique(stu_num) );
MySQL創(chuàng)建表時字符串的默認值
使用MySQL創(chuàng)建表時,char或varchar類型的變量可以設(shè)置默認值null或Empty String。
操作:
創(chuàng)建如下DDL格式的一張表:
執(zhí)行以下insert語句,觀察char和varchar類型的默認值:
insert into t_table(iddddd) values(11);
產(chǎn)生如下表數(shù)據(jù):
結(jié)論:
第一,null和Empty String是兩種不同的數(shù)據(jù),字段id3和id6中存放的是”“空字符串。
第二,如果手動在Navicat里面改變了id、id2、id4、id5中的值,那么盡管刪除所做的改變,字段的值不會恢復到之前的null,而是變成了Empty String “”。比如先將字段id的值變成aaa,后來又刪除,此時字段id的值為Empty String “”。
當然使用以下update語句可以恢復到id=null
update t_table set id=null where iddddd=11;
第三,在對非空進行查詢的時候,最好對null和Empty String “”都做判斷。例如對于Hibernate的QBC查詢可以加上兩個限制條件:
Restrictions.isNotNull("propertyName") // 判斷不為null Restrictions.ne("propertyName") // 判斷不為""
到此這篇關(guān)于MySQL建表設(shè)置默認值/取值范圍的操作代碼的文章就介紹到這了,更多相關(guān)MySQL建表設(shè)置默認值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- mysql創(chuàng)建表添加字段注釋的實現(xiàn)方法
- mysql創(chuàng)建表的sql語句詳細總結(jié)
- django連接mysql數(shù)據(jù)庫及建表操作實例詳解
- mysql中TINYINT的取值范圍
- php數(shù)據(jù)入庫前清理 注意php intval與mysql的int取值范圍不同
- MySQL表字段時間設(shè)置默認值
- 詳解Mysql數(shù)據(jù)庫date, datetime類型設(shè)置0000-00-00默認值(default)報錯問題
- mysql中datetime類型設(shè)置默認值方法
- 解析MySQL設(shè)置當前時間為默認值的方法
相關(guān)文章
SQL使用ROW_NUMBER() OVER函數(shù)生成序列號
這篇文章主要介紹了SQL使用ROW_NUMBER() OVER函數(shù)生成序列號,ROW_NUMBER()從1開始,為每一條分組記錄返回一個數(shù)字,下面文章內(nèi)容具有一定的參考價值,需要的小伙伴可以參考一下2021-12-12MySQL優(yōu)化之如何寫出高質(zhì)量sql語句
在數(shù)據(jù)庫日常維護中,最常做的事情就是SQL語句優(yōu)化,因為這個才是影響性能的最主要因素。這篇文章主要給大家介紹了關(guān)于MySQL優(yōu)化之如何寫出高質(zhì)量sql語句的相關(guān)資料,需要的朋友可以參考下2021-05-05Unity連接MySQL并讀取表格數(shù)據(jù)的實現(xiàn)代碼
本文給大家介紹Unity連接MySQL并讀取表格數(shù)據(jù)的實現(xiàn)代碼,實例化的同時調(diào)用MySqlConnection,傳入?yún)?shù),這里的傳入?yún)?shù)個人認為是CMD里面的直接輸入了,string格式直接類似手敲到cmd里面,完整代碼參考下本文2021-06-06MySQL數(shù)據(jù)庫和Redis緩存一致性的更新策略
本文主要介紹了MySQL數(shù)據(jù)庫和Redis緩存一致性的更新策略問題,文中有詳細的代碼示例,有需要的朋友可以參考一下2023-04-04