кодесурса
«MySQL

Языковая структура MySQL

script1adsense2code
script1adsense3code

Языковая структура

На этой странице обсуждаются синтаксические и структурные правила написания следующих элементов операторов MySQL.

Содержание:

Литеральные значения (строка, числа и т. Д.)

Термины «литерал» относятся к фиксированному значению данных. MySQL оценивает семь типов литеральных значений: числовые, символьные строки, дату и время, шестнадцатеричные, логические, битовые поля и значения NULL.

Числовые литералы

Числовая буквенная нотация используется для указания чисел с фиксированной и плавающей точкой. Числа с плавающей точкой используют «.» в качестве десятичного разделителя. Оба типа чисел могут предшествовать '+' или '-', чтобы указать положительные или отрицательные числа. Вы можете использовать целочисленную запись в выражениях, условиях, функциях SQL и инструкциях SQL. Примеры целых чисел следующие:

Допустимые целые числа:

  • 0
  • 1254
  • -256

Допустимые числа с плавающей точкой:

  • 132,45
  • 12,00
  • -21032.6309e + 10

Строковые литералы

Строка - это последовательность байтов или символов, заключенная в одинарную кавычку («w3resource») или двойную кавычку («w3resource»). Вы можете использовать строковые литеральные обозначения в выражениях, условиях, функциях SQL и инструкциях SQL. Вот некоторые примеры :

  • MySQL Tutorial
  • «Учебник по SQL»

Примечание. Если включен режим SQL ANSI_QUOTES, нельзя использовать двойные кавычки для кавычек буквенных строк, поскольку он интерпретируется как идентификатор.

Бинарная строка - это строка байтов, у которой нет набора символов или параметров сортировки, тогда как недвоичная строка - это строка символов, в которой есть набор символов и параметры сортировки. Для обоих типов строк сравнения основаны на числовых значениях строковой единицы.

Внутри строки определенные последовательности имеют особое значение, если не включен режим SQL NO_BACKSLASH_ESCAPES (отключить использование символа обратной косой черты («/») в качестве escape-символа в строках). Каждая из этих последовательностей начинается с обратной косой черты ("/"), известной как escape-символ. MySQL распознает escape-последовательности, показанные в следующей таблице.


Специальные последовательности побега персонажа

Escape-последовательность Символ представлен последовательностью
/ 0 ASCII NUL (0x00) символ.
Символ одинарной кавычки ("'").
Символ двойной кавычки («» »).
/ б Backspace персонаж.
/ п Символ новой строки (перевода строки).
Символ возврата каретки.
/ т Символ табуляции.
/ Z ASCII 26 (Контроль + Z). Смотрите примечание после таблицы.
// Символ обратной косой черты («/»).
/% Характер. Смотрите примечание после таблицы.
/ _ Характер. Смотрите примечание после таблицы.

Вот некоторые примеры :

 MySQL> SELECT 'w3r', '' w3r '', '' w3r '', '' 'w3r' '', 'w3''resource', '/' w3r ',' / "w3r ';
+ ----- + ------- + ------- + --------- + ------------- + --- --- + ------ +
| w3r | "w3r" | 'w3r' | "" w3r "" | w3'resource | 'w3r | "w3r |
+ ----- + ------- + ------- + --------- + ------------- + --- --- + ------ +
| w3r | "w3r" | 'w3r' | "" w3r "" | w3'resource | 'w3r | "w3r |
+ ----- + ------- + ------- + --------- + ------------- + --- --- + ------ +
1 ряд в наборе (0,00 сек)
MySQL> ВЫБЕРИТЕ 'The / nQuick / nBrown / nFox';
+ --------------------- +
|
Быстрый
коричневый
Лиса |
+ --------------------- +
|
Быстрый
коричневый
Лиса |
+ --------------------- +
1 ряд в наборе (0,00 сек)

Дата Время Литералы

Вы можете указать значения даты и времени в нескольких форматах, таких как числа или строки в кавычках, в зависимости от точного типа значения и других факторов. MySQL интерпретирует «2017-08-22», «20170822» и 20170822 как дату.

MySQL распознает значения DATE в следующих форматах:

  • В виде строки в формате «ГГГГ-ММ-ДД» или «ГГ-ММ-ДД». Вы можете использовать любой знак пунктуации в качестве разделителя между частями даты. Например, «2014-10-30», «2014/10/30», «2014 ^ 10 ^ 30» и « [электронная почта защищена] @ 30» эквивалентны.
  • Как строка без разделителей в формате «ГГГГММДД» или «ГГММДД», при условии, что строка поддерживает действительный формат даты. Например, «20080623» и «080623» интерпретируются как «2008-06-23», но «071432» является недопустимым (содержит недопустимые части месяца и дня) и становится «0000-00-00».
  • Как число в формате ГГГГММДД или ГГММДД, при условии, что число имеет смысл в качестве даты. Например, 19841105 и 841105 интерпретируются как «1984-11-05».

MySQL распознает значения DATETIME и TIMESTAMP в следующих форматах:

  • В виде строки в формате «ГГГГ-ММ-ДД ЧЧ: ММ: СС» или «ГГГ-ММ-ДД ЧЧ: ММ: СС». Вы можете использовать любой знак пунктуации в качестве разделителя между частями даты. Например, «2014-12-31 11:30:45», «2014 ^ 12 ^ 31 11 + 30 + 45», «2014/12/31 11 * 30 * 45» и « [электронная почта защищена] @ 31». 11 ^ 30 ^ 45 'эквивалентны. Части даты и времени могут быть разделены T, а не пробелом. Например, '2014-11-30 11:30:45' '2014-11-30T11: 30: 45' эквивалентны.
  • В виде строки без разделителей в формате «ГГГГММДДЧЧММСС» или «ГГММДДЧЧММСС» при условии, что строка поддерживает действительный формат даты. Например, «20080623091528» интерпретируется как «2008-06-23 09:15:28», но «071122129015» является недопустимым (недопустимая минутная часть) и становится «0000-00-00 00:00:00». ».
  • Как число в формате ГГГГММДДЧЧММСС или ГГММДДЧЧММСС при условии, что число сохраняется в качестве действительной даты. Например, 19860805132800 и 860805132800 интерпретируются как «1986-08-05 13:28:00».

MySQL распознает значения TIME в следующих форматах:

  • В виде строки в формате «D HH: MM: SS». Вы также можете использовать один из следующих «смягченных» синтаксисов: «ЧЧ: ММ: СС», «ЧЧ: ММ», «Д ЧЧ: ММ», «Д ЧЧ» или «СС». Здесь D представляет дни и может иметь значение от 0 до 34.
  • Как строка без разделителей в формате «ЧЧММСС», при условии, что она имеет смысл одновременно. Например, «101112» понимается как «10: 11: 12», но «109712» является недопустимым (имеет недопустимую минутную часть) и становится «00: 00: 00».
  • Как число в формате ЧЧММСС при условии, что оно имеет смысл одновременно. Например, 101112 понимается как «10: 11: 12». Также понятны следующие альтернативные форматы: SS, MMSS или HHMMSS.

Шестнадцатеричные литералы

MySQL поддерживает шестнадцатеричные значения, записанные в формате X'val ', x'val' или 0xval, где val содержит шестнадцатеричные цифры (0..9, A..F). Буква из цифр не имеет значения. Вот некоторые примеры :

 MySQL> SELECT X'773372736F75726365 ';
+ ----------------------- +
| X'773372736F75726365 '|
+ ----------------------- +
| w3rsource |
+ ----------------------- +
1 ряд в наборе (0,01 с)
MySQL> SELECT 0xC8 + 0;
+ -------- +
| 0xC8 + 0 |
+ -------- +
| 200 |
+ -------- +
1 ряд в наборе (0,05 сек)
MySQL> SELECT 0x555341;
+ ---------- +
| 0x555341 |
+ ---------- +
| США |
+ ---------- +
1 ряд в наборе (0,00 сек)

Логические литералы

Константы TRUE и FALSE оцениваются в 1 и 0 соответственно. Имена констант могут быть написаны как прописными, так и строчными буквами. Смотрите следующие примеры:

 MySQL> SELECT TRUE, true;
+ ------ + ------ +
| ИСТИНА | ИСТИНА |
+ ------ + ------ +
| 1 | 1 |
+ ------ + ------ +
1 ряд в наборе (0,00 сек)
MySQL> SELECT FALSE, false;
+ ------- + ------- +
| ЛОЖЬ | ЛОЖЬ |
+ ------- + ------- +
| 0 | 0 |
+ ------- + ------- +
1 ряд в наборе (0,00 сек)

Литералы битового поля

Значения битовых полей могут быть записаны с использованием нотации b'value или 0bvalue. значение - это двоичное значение, записанное с использованием нулей и единиц.

Значения NULL

Значение NULL означает «нет данных». NULL может быть записано в любом регистре.

Имена объектов схемы

Схема - это набор логических структур данных или объектов схемы. Схема принадлежит пользователю базы данных. В MySQL некоторые объекты, включая базу данных, таблицу, столбец, псевдоним, представление, хранимую процедуру, раздел, табличное пространство и другие имена объектов, называются идентификаторами. Идентификатор может быть в кавычках или без кавычек. Если идентификатор содержит специальные символы или является зарезервированным словом, вы должны заключать его в кавычки при каждом обращении к нему.
Идентификаторы конвертируются в Unicode внутри. Они могут содержать следующие символы:

  • В идентификаторах без кавычек допускаются следующие символы:
    • ASCII: [0-9, az, AZ $ _] (основные латинские буквы, цифры 0-9, доллар, подчеркивание)
    • Расширенный: U + 0080 .. U + FFFF
  • Следующие символы допускаются в указанных в кавычках идентификаторах, включая полную базовую многоязычную плоскость Unicode (BMP), кроме U + 0000:
    • ASCII: U + 0001 .. U + 007F
    • Расширенный: U + 0080 .. U + FFFF
  • ASCII NUL (U + 0000) и дополнительные символы (U + 10000 и выше) не допускаются в кавычках или без кавычек.
  • Идентификаторы могут начинаться с цифры, но если они не указаны, они могут состоять не только из цифр.
  • Имена базы данных, таблицы и столбца не могут заканчиваться пробелами.

В следующей таблице показана максимальная длина для каждого типа идентификатора

Идентификатор Максимальная длина
(персонажи)
База данных 64
Таблица 64
колонка 64
Индекс 64
скованность 64
Хранимая процедура или функция 64
Спусковой крючок 64
Посмотреть 64
Событие 64
Табличное 64
сервер 64
Группа файлов журнала 64
кличка 256 ( см. Исключение )
Составная ведомость 16

Квалификаторы идентификаторов

MySQL допускает имена, которые состоят из одного идентификатора или нескольких идентификаторов. Компоненты имени, состоящего из нескольких частей, должны быть разделены символами точки ("."). Начальные части имени, состоящего из нескольких частей, действуют как квалификаторы, которые влияют на контекст, в котором интерпретируется окончательный идентификатор.

В MySQL вы можете ссылаться на столбец таблицы, используя любую из следующих форм.

Ссылка на столбец Имея в виду col_name Столбец col_name из любой таблицы, используемой в операторе, содержит столбец с таким именем. tbl_name.col_name Столбец col_name из таблицы tbl_name базы данных по умолчанию. db_name.tbl_name.col_name Столбец col_name из таблицы tbl_name базы данных db_name .

Символ-спецификатор является отдельным токеном и не должен быть смежным со связанными идентификаторами. Например, tbl_name.col_name и tbl_name. col_name эквивалентны.

Идентификатор регистра чувствительности

В базе данных MySQL имена таблиц и триггеров не чувствительны к регистру в Windows, но чувствительны к регистру в большинстве разновидностей Unix. В Mac OS X, которая основана на Unix, но использует тип файловой системы по умолчанию (HFS +), который не учитывает регистр. Имена столбцов, индексов, хранимых подпрограмм и событий не чувствительны к регистру на любой платформе, а также псевдонимы столбцов, но группы файлов журнала учитывают регистр. Это отличается от стандартного SQL. По умолчанию псевдонимы таблиц чувствительны к регистру в Unix, но не в Windows или Mac OS X.

Отображение идентификаторов на имена файлов

Существует соответствие между базой данных и идентификаторами таблиц и именами в файловой системе. MySQL представляет каждую базу данных как каталог в каталоге данных, а каждую таблицу - одним или несколькими файлами в соответствующем каталоге базы данных. Для файлов формата таблицы (.FRM) данные всегда хранятся в этой структуре и расположении.

Для файлов данных и индексов точное представление на диске зависит от механизма хранения. Эти файлы могут храниться в том же месте, что и файлы FRM, или информация может храниться в отдельном файле. Данные InnoDB хранятся в файлах данных InnoDB. Если вы используете табличные пространства с InnoDB, то вместо них используются созданные вами файлы табличных пространств.

Любой символ является допустимым в идентификаторах базы данных или таблицы, кроме ASCII NUL (0x00). MySQL кодирует любые символы, которые являются проблемными в соответствующих объектах файловой системы, когда он создает каталоги базы данных или файлы таблиц:

  • Основные латинские буквы (a..zA..Z), цифры (0..9) и подчеркивание (_) кодируются как есть. Следовательно, их чувствительность к регистру напрямую зависит от особенностей файловой системы.
  • Все другие национальные буквы из алфавитов, которые имеют прописные / строчные буквы, кодируются, как показано в следующей таблице. Значения в столбце «Диапазон кода» являются значениями UCS-2.

Отображение идентификаторов на имена файлов

MySQL 5.6 поддерживает встроенные (собственные) функции, пользовательские функции (UDF) и хранимые функции.

Разбор имени встроенной функции:

Парсер использует правила по умолчанию для разбора имен встроенных функций. Эти правила можно изменить, включив режим SQL IGNORE_SPACE. Когда синтаксический анализатор встречает слово, являющееся именем встроенной функции, он должен определить, означает ли имя вызов функции или вместо этого ссылку на невыражение на идентификатор, такой как имя таблицы или столбца.

Разрешение имен функций: следующие правила описывают, как сервер разрешает ссылки на имена функций для создания и вызова функций:

  • Встроенные функции и пользовательские функции. При попытке создать UDF с тем же именем, что и у встроенной функции, возникает ошибка.
  • Встроенные функции и хранимые функции. Можно создать хранимую функцию с тем же именем, что и у встроенной функции, но для вызова хранимой функции необходимо присвоить ей имя схемы.
  • Пользовательские функции и хранимые функции имеют одно и то же пространство имен, поэтому вы не можете создать UDF и хранимую функцию с одним и тем же именем.

MySQL: пользовательские переменные

В MySQL вы можете хранить значение в пользовательской переменной в одном операторе, а позже вы можете ссылаться в другом. Это позволяет передавать значения из одного оператора в другой. Определяемые пользователем переменные зависят от сеанса, поэтому эти переменные являются частными для конкретного пользователя, и другой пользователь не может их видеть или использовать. Все переменные для данного сеанса клиента автоматически освобождаются при выходе из этого клиента.

Синтаксис: @var_name
var_name состоит из буквенно-цифровых символов, ".", "_" и "$". Имя пользовательской переменной может содержать другие символы, если вы заключите его в строку или идентификатор (например, @ 'my-var', @ "my-var" или @ `my-var`).
Примечание. Имена пользовательских переменных не чувствительны к регистру в MySQL 5.0 и выше.

Один из способов установить пользовательскую переменную - выполнить инструкцию SET:

 SET @var_name = expr [, @var_name = expr] ... 

Пример :

 MySQL> SET @x = 10; @y = 20; @z: = 30;
Запрос в порядке, затронуто 0 строк (0,07 сек)
MySQL> SELECT @x, @y, @z;
+ ------ + ------ + ------ +
| @x | @y | @z |
+ ------ + ------ + ------ +
| 10 | 20 | 30 |
+ ------ + ------ + ------ +
1 ряд в наборе (0,00 сек) 

Для более подробной информации читайте переменные в хранимых программах .

MySQL: синтаксис выражения

Следующие правила определяют синтаксис выражения в MySQL. Показанная здесь грамматика основана на том, что приведено в файле sql / sql_yacc.yy исходных текстов MySQL.

expr:

  • expr ИЛИ expr
  • expr || выраж
  • expr XOR expr
  • expr и expr
  • expr && expr
  • НЕ expr
  • ! выраж
  • boolean_primary IS [NOT] {TRUE | ЛОЖЬ | НЕИЗВЕСТНЫЙ}
  • boolean_primary

boolean_primary:

  • boolean_primary IS [NOT] NULL
  • логический предикат <=>
  • логический предикат сравнения_оператор
  • логический_применный оператор сравнения {ВСЕ | ЛЮБОЙ} (подзапрос)
  • сказуемое

Оператор сравнения:

= | > = | > | <= | <| <> | знак равно

предикат:

  • bit_expr [NOT] IN (подзапрос)
  • bit_expr [NOT] IN (expr [, expr] ...)
  • bit_expr [NOT] МЕЖДУ bit_expr AND предикатом
  • bit_expr SOUNDS LIKE bit_expr
  • bit_expr [NOT] LIKE simple_expr [ESCAPE simple_expr]
  • bit_expr [NOT] REGEXP bit_expr
  • bit_expr

gbit_expr:

  • bit_expr | bit_expr
  • bit_expr & bit_expr
  • bit_expr << bit_expr
  • bit_expr >> bit_expr
  • bit_expr + bit_expr
  • bit_expr - bit_expr
  • bit_expr * bit_expr
  • bit_expr / bit_expr
  • bit_expr DIV bit_expr
  • bit_expr MOD bit_expr
  • bit_expr% bit_expr
  • bit_expr ^ bit_expr
  • bit_expr + interval_expr
  • bit_expr - interval_expr
  • simple_expr

simple_expr:

  • буквальный
  • идентификатор
  • function_call
  • simple_expr COLLATE collation_name
  • param_marker
  • переменная
  • simple_expr || simple_expr
  • + simple_expr
  • - simple_expr
  • ~ simple_expr
  • ! simple_expr
  • BINARY simple_expr
  • (expr [, expr] ...)
  • ROW (expr, expr [, expr] ...)
  • (Подзапрос)
  • EXISTS (подзапрос)
  • {идентификатор expr}
  • match_expr
  • case_expr
  • interval_expr

Синтаксис комментариев MySQL

MySQL поддерживает три стиля комментариев:

  • Символ «#» до конца строки.
  • «-» последовательность до конца строки.
  • / * Текст здесь * / последовательность, как в языке программирования C

Смотрите следующие примеры:

 MySQL> SELECT 1 + 1; # Однострочный комментарий
MySQL> SELECT 1 + 1; - Однострочный комментарий
MySQL> SELECT 1 / * Встроенный комментарий * / + 1;
MySQL> SELECT 1+ 
     / *
     это 
     многострочный комментарий
     * /
     1;

MySQL зарезервированные слова

Некоторые слова, такие как SELECT, DELETE или BIGINT, зарезервированы и требуют особой обработки для использования в качестве идентификаторов, таких как имена таблиц и столбцов. В следующей таблице перечислены зарезервированные слова MySQL.

Зарезервированные слова в MySQL 5.6

ДОСТУПНОЕ ДОБАВЛЯТЬ ВСЕ
ALTER ПРОАНАЛИЗИРУЙТЕ А ТАКЖЕ
КАК ASC ASENSITIVE
ДО МЕЖДУ BIGINT
BINARY большой двоичный объект И ТО И ДРУГОЕ
ОТ ВЫЗОВ CASCADE
ДЕЛО МЕНЯТЬ CHAR
ПЕРСОНАЖ ПРОВЕРЯТЬ СОРТИРОВКА
КОЛОНКА СОСТОЯНИЕ CONSTRAINT
ПРОДОЛЖИТЬ ПЕРЕРАБАТЫВАТЬ СОЗДАЙТЕ
ПЕРЕСЕКАТЬ ТЕКУЩАЯ ДАТА ТЕКУЩЕЕ ВРЕМЯ
CURRENT_TIMESTAMP ТЕКУЩИЙ ПОЛЬЗОВАТЕЛЬ КУРСОР
БАЗА ДАННЫХ БАЗ DAY_HOUR
DAY_MICROSECOND DAY_MINUTE DAY_SECOND
декабрь ДЕСЯТИЧНЫЙ DECLARE
ДЕФОЛТ ЗАДЕРЖИВАЕТСЯ УДАЛЯТЬ
DESC ОПИСАНИЯ DETERMINISTIC
DISTINCT DISTINCTROW DIV
DOUBLE DROP DUAL
КАЖДЫЙ ELSE ELSEIF
ENCLOSED ESCAPED СУЩЕСТВУЕТ
ВЫХОД EXPLAIN ЛОЖНЫЙ
FETCH FLOAT float4
float8 ЗА FORCE
ИНОСТРАННЫЕ ОТ ПОЛНЫЙ ТЕКСТ
ГЕНЕРАЛЬНЫЙ ПОЛУЧИТЬ ГРАНТ
GROUP HAVING ВЫСОКИЙ ПРИОРИТЕТ
HOUR_MICROSECOND HOUR_MINUTE HOUR_SECOND
ЕСЛИ ИГНОРИРУЙТЕ IGNORE_SERVER_IDS
В ИНДЕКС INFILE
ВНУТРЕННИЙ INOUT INSENSITIVE
ВСТАВИТЬ INT INT1
INT2 INT3 INT4
INT8 INTEGER ИНТЕРВАЛ
В IO_AFTER_GTIDS IO_BEFORE_GTIDS
ЯВЛЯЕТСЯ ITERATE ПРИСОЕДИНИТЬСЯ
KEY КЛЮЧИ УБИЙСТВО
ВЕДУЩИЙ ПОКИДАТЬ ОСТАВИЛ
ЛАЙК ПРЕДЕЛ ЛИНЕЙНАЯ
ЛИНИИ НАГРУЗКИ МЕСТНОЕ ВРЕМЯ
LOCALTIMESTAMP ЗАМОК ДОЛГО
LONGBLOB LONGTEXT LOOP
НИЗКИЙ ПРИОРИТЕТ MASTER_BIND MASTER_HEARTBEAT_PERIOD
MASTER_SSL_VERIFY_SERVER_CERT МАТЧ MAXVALUE
MEDIUMBLOB MEDIUMINT MEDIUMTEXT
MIDDLEINT MINUTE_MICROSECOND MINUTE_SECOND
MOD модифицирует ПРИРОДНЫЙ
НЕ NO_WRITE_TO_BINLOG НОЛЬ
NUMERIC НА ОДИН ВЫСТРЕЛ
ОПТИМИЗАЦИЯ ВАРИАНТ ПО ВЫБОРУ
ИЛИ ЖЕ ПОРЯДОК ИЗ
ВНЕШНИЙ OUTFILE PARTITION
ТОЧНОСТЬ ПЕРВИЧНЫЙ ПРОЦЕДУРА
ПРОДУВКА СПЕКТР ЧИТАТЬ
ЧИТАЕТ ЧИТАЙ ПИШИ РЕАЛЬНЫЙ
РЕКОМЕНДАЦИИ REGEXP РЕЛИЗ
ПЕРЕИМЕНОВАТЬ ПОВТОРЕНИЕ ЗАМЕНА
ТРЕБУЕТСЯ RESIGNAL RESTRICT
ВЕРНУТЬ КЕУОКЕ ПРАВО
RLIKE SCHEMA SCHEMAS
SECOND_MICROSECOND ВЫБРАТЬ Чувствительная
РАЗДЕЛИТЕЛЬ ЗАДАВАТЬ ШОУ
СИГНАЛ МЕДЛЕННЫЙ SMALLINT
ПРОСТРАНСТВЕННО КОНКРЕТНЫЙ SQL
SqlException SQLSTATE SQLWARNING
SQL_AFTER_GTIDS SQL_BEFORE_GTIDS SQL_BIG_RESULT
SQL_CALC_FOUND_ROWS SQL_SMALL_RESULT SSL
ЗАПУСК STRAIGHT_JOIN ТАБЛИЦА
ОТМЕНЯЛОСЬ ЗАТЕМ TINYBLOB
TINYINT TINYTEXT К
TRAILING СПУСКОВОЙ КРЮЧОК ПРАВДА
UNDO UNION УНИКАЛЬНАЯ
ОТКРЫТЬ UNSIGNED ОБНОВИТЬ
ИСПОЛЬЗОВАНИЕ ИСПОЛЬЗОВАНИЕ С ПОМОЩЬЮ
UTC_DATE UTC_TIME UTC_TIMESTAMP
ЦЕННОСТИ VARBINARY VARCHAR
VARCHARACTER VARYING КОГДА
ГДЕ В ТО ВРЕМЯ КАК С
ЗАПИСЫВАТЬ XOR ГОД МЕСЯЦ
ZEROFILL

Предыдущая: Двигатели хранения MySQL (типы таблиц)
Далее: типы данных MySQL

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code