Изучаем sql


Глава 7. Создание, преобразование и работа с данными mysql>  DELETE FROM string_tbl



Pdf көрінісі
бет117/261
Дата28.07.2022
өлшемі1,6 Mb.
#147825
1   ...   113   114   115   116   117   118   119   120   ...   261
Байланысты:
Изучаем SQL ( PDFDrive )

132
Глава 7. Создание, преобразование и работа с данными
mysql> 
DELETE FROM string_tbl;
Query OK, 5 rows affected (0.00 sec)
mysql> 
INSERT INTO string_tbl (text_fld)
> VALUES ('This string was 29 characters');
Query OK, 1 row affected (0.01 sec)
Ранее в этой главе было описано построение слов, включающих симво
лы с диакритическими знаками, с помощью функции 
concat()
. Функ
ция 
concat()
полезна и во многих других ситуациях, например, если
требуется добавить в конец хранящейся строки дополнительные сим
волы. В следующем примере строка в столбце 
text_fld
изменяется пу
тем добавления в ее конец дополнительной фразы:
mysql> 
UPDATE string_tbl
> SET text_fld = CONCAT(text_fld, ', but now it is longer');
Query OK, 1 row affected (0.03 sec)
Rows matched: 1 Changed: 1 Warnings: 0
Теперь столбец 
text_fld
содержит следующую строку:
mysql> 
SELECT text_fld
> FROM string_tbl;
++
| text_fld |
++
| This string was 29 characters, but now it is longer |
++
1 row in set (0.00 sec)
Таким образом, как и все функции, возвращающие строку, 
concat()
можно использовать для замещения данных, хранящихся в столбце
символьного типа.
Другое традиционное применение функции 
concat()
– построение стро
ки из отдельных частей данных. Например, следующий запрос форми
рует строку примечания для каждого операциониста банка:
mysql> 
SELECT CONCAT(fname, ' ', lname, ' has been a ',
> title, ' since ', start_date) emp_narrative
> FROM employee
> WHERE title = 'Teller' OR title = 'Head Teller';
++
| emp_narrative |
++
| Helen Fleming has been a Head Teller since 20040317 |
| Chris Tucker has been a Teller since 20040915 |
| Sarah Parker has been a Teller since 20021202 |
| Jane Grossman has been a Teller since 20020503 |
| Paula Roberts has been a Head Teller since 20020727 |
| Thomas Ziegler has been a Teller since 20001023 |
| Samantha Jameson has been a Teller since 20030108 |
| John Blake has been a Head Teller since 20000511 |
| Cindy Mason has been a Teller since 20020809 |


Строковые данные
133
| Frank Portman has been a Teller since 20030401 |
| Theresa Markham has been a Head Teller since 20010315 |
| Beth Fowler has been a Teller since 20020629 |
| Rick Tulman has been a Teller since 20021212 |
++
13 rows in set (0.12 sec)
Функция 
concat()
может обрабатывать любое выражение, возвращаю
щее строку, и даже преобразует числа и даты в строковый формат,
о чем свидетельствует столбец дат (
start_date
), используемый как ар
гумент. Хотя Oracle Database включает функцию 
concat()
, она может
принимать только строковые аргументы, поэтому в Oracle предыду
щий запрос работать не будет. В этом случае придется использовать
оператор конкатенации (
||
), а не вызов функции:
SELECT fname || ' ' || lname || ' has been a ' ||
title || ' since ' || start_date emp_narrative
FROM employee
WHERE title = 'Teller' OR title = 'Head Teller';
В SQL Server нет функции 
concat()
, поэтому используется такой же
подход, что и в предыдущем примере, только с применением операто
ра конкатенации SQL Server (
+
, а не
||
).
Функция 
concat()
полезна для добавления символов в начало или конец
строки, но также позволяет ввести или заменить символы в 
середине
строки. Все три сервера БД предоставляют специальные функции для
этого, но все они разные, поэтому сначала рассмотрим функцию
MySQL, а затем перейдем к функциям двух других серверов.
MySQL включает функцию 
insert()
, которая принимает четыре аргу
мента: исходную строку, начальное положение, число символов, тре
бующих замены, и замещающую строку. В зависимости от значения
третьего аргумента функция выполняет вставку либо замену символов
строки. Если третий аргумент равен нулю, то замещающая строка
вставляется со сдвигом всех последующих символов вправо, например:
mysql> 


Достарыңызбен бөлісу:
1   ...   113   114   115   116   117   118   119   120   ...   261




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет