Учебное пособие Санкт-Петербург «бхв-петербург»


INSERT INTO students ( record_book, name, doc_ser, doc_num )



Download 1,88 Mb.
Pdf ko'rish
bet110/256
Sana21.02.2022
Hajmi1,88 Mb.
#24505
TuriУчебное пособие
1   ...   106   107   108   109   110   111   112   113   ...   256
Bog'liq
morgunov e p postgresql osnovy yazyka sql

INSERT INTO students ( record_book, name, doc_ser, doc_num )
VALUES ( 12300, '', 0402, 543281 );
138


Контрольные вопросы и задания
Наверное, проектируя эту таблицу, мы хотели бы все же, чтобы пустые строки
в качестве значения атрибута name не проходили в базу данных? Какое реше-
ние вы можете предложить? Видимо, нужно добавить ограничение CHECK для
столбца name. Если вы еще не изучили команду ALTER TABLE, то удалите табли-
цу students и создайте ее заново с учетом нового ограничения, а если вы уже
познакомились с командой ALTER TABLE, то сделайте так:
ALTER TABLE students ADD CHECK ( name <> '' );
Добавив ограничение, попробуйте теперь вставить в таблицу students строку
(row), в которой значение атрибута name было бы пустой строкой (string).
Давайте продолжим эксперименты и предложим в качестве значения атрибута
name строку, содержащую сначала один пробел, а потом — два пробела.
INSERT INTO students VALUES ( 12346, ' ', 0406, 112233 );
INSERT INTO students VALUES ( 12347, ' ', 0407, 112234 );
Для того чтобы «увидеть» эти пробелы в выборке, сделаем так:
SELECT *, length( name ) FROM students;
Оказывается, эти невидимые значения имеют ненулевую длину. Что делать,
чтобы не допустить таких значений-невидимок? Один из способов: возложить
проверку таких ситуаций на прикладную программу. А что можно сделать на
уровне определения таблицы students? Какое ограничение нужно предло-
жить? В разделе 9.4 документации «Строковые функции и операторы» есть
функция trim. Попробуйте воспользоваться ею. Если вы еще не изучили коман-
ду ALTER TABLE, то удалите таблицу students и создайте ее заново с учетом
нового ограничения, а если уже познакомились с ней, то сделайте так:
ALTER TABLE students ADD CHECK (...);
Есть ли подобные слабые места в таблице «Успеваемость» (progress)?
10. В таблице «Студенты» (students) атрибут «Серия документа, удостоверяюще-
го личность» (doc_ser) имеет числовой тип, однако в сериях таких документов
могут встречаться лидирующие нули, которые в числовых столбцах не сохраня-
ются. Например, при записи значения серии «0402» первый ноль не сохранится.
Модифицируйте таблицу students, заменив числовой тип данных на символь-
ный, например, character. Как вы думаете, эта операция пройдет без затруд-
нений или они все же возможны? Проверьте ваши предположения, выполнив
модификацию.
139



Download 1,88 Mb.

Do'stlaringiz bilan baham:
1   ...   106   107   108   109   110   111   112   113   ...   256




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish