Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Старожил


Сообщения: 252
Благодарности: 11

Профиль | Отправить PM | Цитировать


Вот пример, который нужно было запустить.
Скрытый текст
Код: Выделить весь код
create database sale2;     # создание базы данных - продажи
use sale2;                 # указываем базу данных , для добавления в нее данных и изменения 

# создаем таблицу платежей
/*первое поле `num` - это порядковый номер платежа, оно должно быть уникальным, не должно быть пустым;
   `2`-е поле paydate - дата продажи, не должна быть пустой, обязательна к заполению,
по умолчанию подставляется текущая дата и время, которое берется из системных значений
компьютера, на котором работает данная база данных;
поле receiver - получатель платежа, не должно иметь пустого значения;
поле amount - здесь вводится сумма платежа, поле не должно быть пустым, оно имеет в сумме
`10` разрядов,из них:
`2`-разряда после запятой,
`8`-разрядов цифр перед запятой разрядов"*/

create table payments(num  INT not null, 
                      paydate datetime not null default current_timestamp,
                      receiver int not null, 
                      amount decimal(10,2) not null,
                      primary key(num),
                      unique(num) );  
# смотрим описание таблицы
desc payments;

# наполняем таблицу


insert into payments (num,paydate,receiver,amount)
               values(1,'2016-10-30 15:00:00',1,35000.5),
                     (2,'2017-11-30 15:25:00',2,25000.5),
                     (3,'2015-11-30 10:25:00',2,15000.5),
                     (4,'2014-11-30 11:25:00',3,10000.5),
                     (5,'2014-11-30 11:25:00',3,10000.5);

# используем, при заполнении таблицы, значение по умолчанию для поля paydate
# поэтому это поле и значения для него опустим из параметров

insert into payments (num,receiver,amount)
               values(6,4,1000.5),
                     (7,2,500.5),
                     (8,3,17000.5),
                     (9,1,100.5),
                     (10,4,15000.5);

# производим выборку всех данных из таблицы payments
select * from payments;

# создаем таблицу получателей 
/*первое поле num - это порядковый номер получателя, оно должно быть уникальным, не должно быть пустым;
  `name` - так как это слово зарезервировано, обозначим его обратными кавычками,
обозначим максимальный размер хранимой строки, Указание правильного размера поля таблицы, 
может значительно сэкономить занимаемую ею память.
`VARCHAR` - это тип данных - строковые данные переменной длины,сделаем данное поле индексируемым и уникальным
и назначим данному полю первичный ключ;
  
*/

create table receivers( num INT not null,
                       `name` Varchar(255) not null,
                       PRIMARY KEY(`name`), INDEX (`name`), UNIQUE (name));

# смотрим описание таблицы
desc receivers;
  
# наполняем таблицу receivers

     insert into receivers (num,`name`)
               values(1,'ВЭБ'),
                     (2,'АБСОЛЮТ'),
                     (3,'ФОНД СОРЕСА'),
                     (4,'ВАЛЮТНЫЙ РЕЗЕРВНЫЙ ФОНД');
               

# производим выборку всех данных из таблицы receivers
select * from receivers;


А вот результат

Скрытый текст
Код: Выделить весь код
mysql> source d:\DB\tmp\create_db.sql
Query OK, 1 row affected (0.01 sec)

Database changed
Query OK, 0 rows affected (0.06 sec)

+----------+---------------+------+-----+------------------
| Field    | Type          | Null | Key | Default
+----------+---------------+------+-----+------------------
| num      | int(11)       | NO   | PRI | NULL
| paydate  | datetime      | NO   |     | CURRENT_TIMESTAMP
| receiver | int(11)       | NO   |     | NULL
| amount   | decimal(10,2) | NO   |     | NULL
+----------+---------------+------+-----+------------------
4 rows in set (0.00 sec)

Query OK, 5 rows affected (0.02 sec)
Records: 5  Duplicates: 0  Warnings: 0

Query OK, 5 rows affected (0.01 sec)
Records: 5  Duplicates: 0  Warnings: 0

+-----+---------------------+----------+----------+
| num | paydate             | receiver | amount   |
+-----+---------------------+----------+----------+
|   1 | 2016-10-30 15:00:00 |        1 | 35000.50 |
|   2 | 2017-11-30 15:25:00 |        2 | 25000.50 |
|   3 | 2015-11-30 10:25:00 |        2 | 15000.50 |
|   4 | 2014-11-30 11:25:00 |        3 | 10000.50 |
|   5 | 2014-11-30 11:25:00 |        3 | 10000.50 |
|   6 | 2017-09-27 17:55:37 |        4 |  1000.50 |
|   7 | 2017-09-27 17:55:37 |        2 |   500.50 |
|   8 | 2017-09-27 17:55:37 |        3 | 17000.50 |
|   9 | 2017-09-27 17:55:37 |        1 |   100.50 |
|  10 | 2017-09-27 17:55:37 |        4 | 15000.50 |
+-----+---------------------+----------+----------+
10 rows in set (0.00 sec)

Query OK, 0 rows affected (0.06 sec)

+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| num   | int(11)      | NO   |     | NULL    |       |
| name  | varchar(255) | NO   | PRI | NULL    |       |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

Query OK, 4 rows affected (0.00 sec)
Records: 4  Duplicates: 0  Warnings: 0

+-----+----------------------------------------------+
| num | name                                         |
+-----+----------------------------------------------+
|   2 | АБСОЛЮТ                                      |
|   4 | ВАЛЮТНЫЙ РЕЗЕРВНЫЙ ФОНД                      |
|   1 | ВЭБ                                          |
|   3 | ФОНД СОРЕСА                                  |
+-----+----------------------------------------------+
4 rows in set (0.00 sec)

mysql>


Спасибо. Все работает.

Я так понимаю, если в скрипте хоть одна ошибка, тогда в консоль будет выведено только сообщение

Failed to open file '"d:\t.txt"', error: 22,

то есть так синтаксис (при запуске через скрипт) не может контролироваться и остается только догадываться в чем ошибка???

Отправлено: 17:59, 27-09-2017 | #3