這篇隨筆用來記錄資料庫的學習,隨時更新補充,主要寫一些比較少關注的內容
persisted:
說明物理儲存計算列的值(書本上的解釋,什麼鬼意思...)
現實操作中,check、foreign key 和 not null 約束要求計算列是持久化(persisted)的。
大概它的作用就是這個吧?
as convert (as是計算列關鍵字,convert將字串從乙個字符集轉化為另乙個字符集):
create table test.測試
(字串 char(10) primary key
新字串 as convert(tinyint,substring(字串,3,2)) persisted not null --從字串第三位開始(包括第三位),擷取兩個字元
check
裡面使用or
和
in
create table test.學生(
學號 char(10) primary key,
姓別 char(2) check(姓別='男'or姓別='女'),
狀態 char(4) check(狀態in('正常','留級','休學','退學'))
)聯合關鍵字?
(1)學號和課程編號兩列構成主關鍵字(需要表級完整性約束)
(2)學號參照學生表的學號(約束選課的學生必須存在)
(3)課程編號參照課程表的課程編號(約束被選的課程必須存在)
create table test.選課
(學號 char(10) foreign key references student.學生,
課程編號 char(6) foreign key references student.課程,
考試成績 tinyint check(考試成績 between 0 and 100) default null
primary key(學號,課程編號)
)如果某列定義了外部關鍵字約束,則需要先刪除相關的約束,才能刪除此列。
create table test.課程(
責任教師 char(6)constraintduty_teacher
foreign key references student.教師(編號),
)第一步:alter table test.課程 drop duty_teacher
第二步:alter table test.課程 drop column 責任教師
on delete set null--當刪除時,該列置為空值
on update cascade--級聯更新
資料庫學習隨筆
sql structured query language 是一種規則,定義了如何操作所有關係型資料庫 如 oracle,mysql db2 sql 通用語法 單行多行書寫,分號結尾 不區分大小寫,但關鍵字建議大寫 注釋單行 這是一段注釋 或 這是一段注釋 多行 這是一段注釋 sql 分類 ddl ...
資料庫隨筆
目前軟體開發行業中,無論是移動端開發還是後端開發,基本上都會碰到資料庫的開發,這裡就談談筆者對於資料庫的感想 在移動端亦或是後端開發中,很多時候,我們會感覺到無論是 orm 還是其他方案,都會存在著一些缺點,其實這 於資料庫本身和開發語言本身的衝突,現代化的語言基本上都是物件導向開發,物件導向是從軟...
PG資料庫學習隨筆 1
啟動過程中遇到這個報錯 root db01 createdb mydb createdb could not connect to database template1 fatal role root does not exist我的是centos7系統.使用的yum裝的pg,從網上找了好久,沒有找...