������� ������������ / ������ "���� ������, SQL" (����� | ��� ������)

���������� ��������������� ����������� �����������

����� �.�.�������

������� ����

������ ����� SQL

������� �.�.

fedoruk@wwwcdl.bmstu.ru
263-65-26

���������

������ ������� ������� ������������� ��� �������� ����� ����� SQL - ������������ ����� ��������������� ������� � ����, ����������� ����������� ������ ������. ����������� ��������� �������� ����������� ���������� ����� SQL, ���������� �������. ����������� ������ ����������� � ������������� ������ ��������� ���� ������.
������� ���� ������ ����������� � ����� ���� mySQL, �������� ������� � ��� �������� � ������� �������.

����������

������� �������� �� ������
������ ���������� ����� SQL
������� ���� ������
���� ������ ����� SQL
��������������� ��������� ���������� ����� � �������
������� ������ �� ������ ��������������� �������� ������ ����������
����������

������� �������� �� ������

���� SQL (Structured Query Language - ����������������� ���� ��������) ������������ ����� ����������� ��������������� ���� �������� ������ � ��������������� ��� � �������� ���������� ������ ������ (����), ����������� �� ������ ����������� ������ ������ [1].

���� SQL ��� ���������� ������ IBM � ����� 70-� �����. ������ ������������� �������� ����� ��� ������ ������������� ����������������� ������������ ISO � 1989 �. [2], � ����� (����� ������) - � 1992 �. [3]. � ��������� ����� ��� ������������� ����������� ���� ������������ � ��������� �������� ������������ �������� SQL92.

������������ ���������� ������������� ������ (��� ����������, ��� � ���������) � ����������� ���� ������ (��) �������� ��������� �������. ����� ������� ����� ��������������� ��� ���� �� ���� ������������� ���������-�������������� ������� ��������� (relation), ������ �������� ������ ������ - ?�����������?.
� ����������� ������ ������ ������� �������� ���������� ��������� ����������:

  1. ���������������� ���������� ������;
  2. ����� �������� (��� �������, ����������) ��������� ���������� ��������;
  3. ����� �������� (��������, �������) ����� �����;
  4. ������� ������� ���������������� ������ ����������� ������� � ��������;
  5. ���������� ���� ����� ������� ����������� ������ ���� ������ (�.�. ������� ���������), ���������� ������ ������� �� ����� ���� �������;
  6. ������ ������� �� ����� �����-���� ��������������� � ���������������� ������ ����� ���������� (�.�. ������� ?����� ������? �� ����������);
  7. � ����� ������ ������ ������� ����� ���������� ?�������? (�.�. �� ��������� ������-���� ��������), ����� �� ��������� ������������ ��� NULL.
����������. ���������� ����� � ����, ��� ������� ������������� ���� ���������� ����������� ������ (� ����� ������ � ������� ����������� ������) ����� ����� ����� ��������������� � �� ���������� ������������ � ������ ���.

�� ���������� ������ ��������� ����������� ����������� � ����:

  1. ���������� ������������ ����������� ������ ������ ������-���� ������� �/��� ������������ ����� � ������, ����������� � ���������� ��������;
  2. ������� ��� ������-���� ������� (��������) ����� ?������? (NULL) ������.
����������� � ���� ���������� ������������ ����� ������� � �������� ����� �������. ������ ������� ���������� ������� ��� ���������� ��������, ���������� ����� ��������(��) ������������ ��� ������� ������� (?��������? ����������� ��������������) � ������� �������. ��������� ����� ��������� (�� ����� ���� ������ ������������ ��� ������ �������) � ���������. ��������� ���� �������� � ���������� �������������� ������ �������. ������� ������, ������������ � �������� ���������� �����, �� ����� ��������� ?������? (NULL) �������� � �����-���� ����� ������. ��������� ���� ���������� ��������������, � ����� ������, �� ����� ������ �������, � ���������� ?��������? (� ����� ������ ������� ������ � ���, ���� �� � ����� ������� ��� ���� ���������).
����� ������������ ����������� ����������� ���� ��� ����������� ������ �� ������ � ������� ������ (�����, ��������, �� ����������� ������������ �� ��������� ������ ��� ���������� ��������� ������ ������).

��������� ���������� ��� ��������� �������� ���������.

  1. �������� - ���������� ����� ������� �� �������� ����� ��������� � ��� ��������� �������� �������� �������.
  2. ����������� - ���������� ����� ������� �� �������� ����� ��������� � ��� ��� ����� �������� �������, ������� �������� ���������� �������� � ���� ����������� ������� (�����������).
  3. ����������� - ���������� ����� ������� �� 2-�� ��� ����� �������� ����� ��������� � ��� ���� ����� �������� ������ (��� �������, �������, ��� ��� �������).
  4. ��������� ������������ - ���������� ����� ������� �� 2-�� ��� ����� �������� ����� ��������� � ��� �����, ������������ ����� ���������� ���������� ������������ (�������) ����� �������� ������. ���������� ����� ����� ������� ������������ ��� ������������ ��������� ����� ���� �������� ������.
������������ ���� 4 �������� ������� �����, �� ������ �������� ����� ���� ��������� ����������� (�� �� ���) ����������� �������� �������� �� ���������� ���������� �� ����������� ��.
����������. ����� �������� ����� ������, ���� ��������� ��� ���������� ����������� � ���������. ������ � ������ ������� ���������� ���� �������� � ����� SQL �� ���������������.

����� ������������� ���� � ����� SQL ����������� �������� ����������� ����������� ����� ������� � ���������� ������� ������ �������� (��� ������������ ����� ��������������� ��� �������� �����������), � ����� �������� ���������� ���������.
������������� ���� �������� ��� ��������� ����������� �� ������� �������������� ��������, ������ ����������� �� �������� � ����� ?������? ������������ ����, ��� �������, ������ ������������ (� ������ ������� ��� ��������� � ���������� �������� ����������� � ����������� ������������). ������������ �������� ����������� ���� ��������� �� ������������ ������� � ?����������? ��� ��������� �������������� ������ (� ������ �������, ��������� �������) ��� ���������� ���� ��������. ����� ��������, �������� ��������� � ����� SQL, ��������� ������������� ���������� �������� � ����������� ����  �������� ������������� ������ ��������.

�������� ���������� ������� �� ������������ ��������������� ����������� ���������, �������������� ������ (��� ?�����?-������) ����� ������� � ������� �������, ����������� ��������� ���������������� �������� ���� ����� ������� ��� ����������� ���������� ���������� �������� ������. ������� ������� ������� (������� �� ������������) ������������� ��������� ��� ���� ������ �������.

 ï¿½ ��������� ����� ���������� ��������������� �������� ����������� SQL ���� ���� �����:

  1. ������ ������� ������������ ����, ��������������� �� �������� �������� ������� ���������� (�� ��������);
  2. ��������� ���������� �������� ���������������� (� ��� ����� � � �������� �����) ����, ������������� ������� ��������� � ��� �� ������� ����� ���� � ������� ��������.
�������� ���������� ���� ������ ������ ��������: � �������� ���������� ���� ������ ������ ���������: � ������ ������� ������� ������������ ����������, ������� ����� ��������� ����������� ����� �������� ����� ����� SQL, ����������� ���������� ���� mySQL.

��� ������������� ���� ���� ��������� �� �������� ?������-������?, ��� ��� �������� �� ������� ����.

SQL-������ ��������� ���������� �������� ������ � ��������������� ���. �� ��������� ������� �� ����� SQL �� ����� ��������, ��������� �� � ���������� ���������� (���� ����� � ���� ����� ����������� ������) ��������. ��� ������� � ��������� ������������ ����������� �������� (��� �������, ������������� � ���� ��������� ����������� ������ ����� ������� ���������� TCP/IP).
���������� ����� ���� ���������� ������� ���� �������� �����. ������ WWW-������ ���� mySQL ������������ � ������� ������� ��� ���������� ������������ ����������.
 

������ ���������� ����� SQL

?���������? �� ����� SQL ������������ ����� ������� �������� ������������������ ���������� ����� SQL. ���� SQL � ����� ?������? ���� ���������� ���������� �������� ���������� �������� � �� (���� ������, ���������, ���������) �� �����.
��������� ����� SQL �������� � �����������: ��� �������� �����, ����� ������� �, ��� �������, ����� ������ � �������� �������������� 7-��������� ��������� ��������� ASCII (����� ������ - ���������� �������).
� ����� SQL �� �������� �������� ����� ���������� (��������) � ��������� (����������) �������, �.�., ��������, ������ ?SELECT?, ?Select?, ?select? ������������ ����� ���� � �� �� �������� �����.
��� ��������������� ���� ������ � �� �������� ��������� ������������ �����, ����� � ���� ?_? (�������������), �� ������ �������� ����� ����������� ������ ���� �����.
��������� ������������� �������� ���� � ���� ������� � �������� ��������������� ������ � ���� ��������. ������ ������ �������� ���� � ���� ������� (� �� ������ �������) ����� ����� � ������������ �� ���������� ����.
�������� ���������� � ��������� �����-������� (��������, ?CREATE? - �������, ?UPDATE? - ��������, ?SELECT? - ������� � �.�.) � ������������� ������ ?;? (����� � �������). �������� ������������ � ��������� ������� � ����� �������� ��������� �����. ����������� ������������� ����������� ������ � ��������� ��������: ��� �������� ���������� ����� SQL � ������� ������� ������������ ��������� ����������. � ���������, ������������ �������� ���� ����������� ���������� � ������������ ���������� ����� SQL � ����� ������������. ������� ����������� ��� ������������� � ��������� ���� � ������� ?��������? �� ����� SQL ����� ���������� ���������� ���������:  

������� ���� ������

� �������� ������� � ������� ������� ��������������� ��, ���������� ����������, ������������ ��� ������� ��������� (�������) ������ ������� ����������-���������������� ��������� ������������� ������� ������� �������� ��������� [4].

����� �������� ��������� (���) - ������������� ����� ������� ������� ����� (������ ���������������� ��������� � ������� ����������� � �������� ���������), � ������� ��������� � ������ ������� (�������������) ����������-���������������� ��������� ������� ������������ ��������. ����� �� �������� ������ ������ �������� ���� ��������� ?����? ������������� ������� �� ������������ �������, ���������� ��������� ���������� (��). ��� ������� �������� ���� ����� ����� �� ������������ ����� ������������. ������ �������� ������� (���� ������) ������ �������� ��������� ����������� ����.

 
� ���������� ��� ������������ ���������� ��������� �������� ������� ���������� , ��������������� ��������� ������� (� ����� ������ ���������� ���� ��� � ����������), � �������� ����� �������������, ���������� ������ (nodes).

��� ������������� ����� � �� �� �������� �������� (������� �� ������������ ���� 1...). ������ ������� ��������� ���������� (� ��� ����� �����������) ������� �� �� �������� ���������� � �������������, ������� � �������� ������������ �������� �������, ����������� ���, ����������, ��� �������, ��������� �������������� �������� �������� ����������� ������� ������ ��. ������ ��������������� ����� �������� (�������������/�������/��������������) ����� �� ��������� � �������� ��������� ������� ������ �� ������������, �������������� ������������� �������������� ������ � �������� ���������� �����������.

���������, ��������, ����� ����� ����������� �� ��� ����� ������ ������������ � �������������� (��� ������ �� �������� ����������� �������). ��� ���������� �������������� ������ ���������� ����� ����������� �������� ��������������� ������ ��� ������� ��.

� ������� ������������ ��������� ������������ �������� ��� ������������ ������� �������� � ������ �� ������ ����� ������� ���������, ������������ ��, � ������ �������� ������, ��������, ��������� (density) �����, ������ ���� (elastic module), ����������� �������� (Poisson's coefficient), ��������� (strength) � ��.

������� ��� �������� ������������ ��������� �������� (� ����� ������� ������������) ��� ��������� ��������� �������� (������������ ������� �����), � ������ ������� ������:

��������� ���� ���������� �������� ��������� �������� � ��������������� � ������� ��, ������������ � ������ �������. ������ �� ���������� ������ �������:
  1. ������� ?nodes?, ���������� ���������� �� ����� ��-����� (�������������, x- � y-����������);
  2. ������� ?elements?, ���������� ���������� ��� ���� ��, ������������ ����� (����� ��, �������������� ���� ������, ������������ ���������);
  3. ������� ?materials?, ���������� ���������� � ��������� ��������� ��������������� ���������� (������������, ���������, ������ ����, ����������� ��������, ���������);
  4. ������� ?loadings?, ���������� ���������� � ��������� �������� �������� ������ (��� �������, ��� ?�����������?, ����� ���� ����������, �������� ��������).

���� ������ ����� SQL

���� ������, ������������ � ����� SQL ��� �������� ���������� � �������� ������ ��, ������ ������������. � ���������, ������������� ���������� ����������� ����  ������� ����� ������ ?��������? ��������� ����� ������, ���������������� ����������,  �������� ���� ����������� ������ � ����������.
������� �������� ������� � �������� �������  ������������ ������� ��������� ���� ������: ���������� ��������� (���� CHAR � VARCHAR) ������������ ��� ������������������ ��������, ����������� � ��������� ���������, �������� ?brass? (������).
���������� ��������� (���� FLOAT) ����� ������������ � ?�������? ������� ��� ������������������ ��������� ���������: ��������, ���������� ����� -0,123 ����� ���� �������� ��� -12.3�-2.

������� ����� ������ CHAR � VARCHAR ����������� � ���, ��� ��� �������� � ������� ����� �������� ���� CHAR ������������ ����� size ���� (���� ���������� �������� ����� ����� ���� ����������� ������), � �� ����� ��� ��� ����� ���� VARCHAR ��������� ��������� ����� (?������?) ����� � ������� �� ��������.
����������, ��� �������� len � dec (� ������� �� size) �� ������ �� ������ �������� ������ � �������, � ������ ����������� ����� ������ �� �������.

����������. ��� ������ BLOB �������������� ��������������� �� ����� ����, ������ ������ �� ��� ���������� ��� ������ (��������, BINARY ��� IMAGE).

������������. ������������ ��������� ���������� (������������ �� ������ � ����� ��������� ����), ���������� ��� ������������� �������� ������������� �������������� ������������ � �������� ����� ������.
 

��������������� ���������

��� ��������, ��������� � �������� ������ � SQL �� ������������ ��������� CREATE TABLE, ALTER TABLE � DROP TABLE.

�������� �������

�������� ������� � �� ����������� ���������� CREATE TABLE, ������� ��������� ���������
CREATE TABLE ���_���� (�_������������, ...);
��� �_������������ ����� ������������� ���������. ����� �� ��������������� �������� ����� ������������ �� �����.
  1. �������� ������� �������
  2. ���_������� ���_������ [NULL]
    ��� ���_������� -  ��� ������� �������, � ���_������ - ������������ ������ �� ����� ������, ������������� � ������� ?���� ������ ����� SQL?. �������������� �������� ����� NULL ��������, ��� ������� ������� ������� ��������� ���� ������� (�.�. �� ��������� ������-���� ��������).
     
  3. �������� ������� �������
  4. ���_������� ���_������ NOT NULL [DEFAULT ��_�����] [PRIMARY KEY]
    ��� ����������� NOT NULL ��������� ����� � ������� ������ ������ � ������ �������. ����������� PRIMARY KEY ���������, ��� ���������� ������� ����� ������ ���� ���������� ����� ��� ����������� �������. ����������� DEFAULT ��_����� �������������� ��������� ��� �������� ������� ���� ������ �������� ?�� ���������? (��������, 0 ��� �������� �����), ������������ ��� ���������� � ������� ���������� INSERT INTO �����, �� ���������� �������� � ���� �������.
     
  5. �������� ���������� �����
  6. PRIMARY KEY ���_����� (���_�������, ...)
    ��� ������������ ��������� ������ ��������� ���� ��� ������� � ���� ���������� ����������� ���������� ��������.
     
  7. �������� ���������� �����
  8. KEY ���_����� (���_�������, ...)

�������

���� ���������� ������� ������������� ��������� CREATE TABLE ��� �������� ������� ������ ������� ��.
CREATE TABLE nodes (
    id SMALLINT NOT NULL PRIMARY KEY,    # ����� ����
    x FLOAT NOT NULL,                    # x-����������
    y FLOAT NOT NULL);                   # y-����������
 
CREATE TABLE elements (
    id SMALLINT NOT NULL PRIMARY KEY,    # ����� ��
    n1 SMALLINT NOT NULL,                # ����� ������ �������
    n2 SMALLINT NOT NULL,                # ����� ������ �������
    n3 SMALLINT NOT NULL,                # ����� ������� �������
    props CHAR(12) NOT NULL DEFAULT 'steel');
������� props ������� elements ������������ ��� �������� �������� ��������� �� � �� ����� ��������� ?������? �����, ��� ��������� ?�� ���������? �������� ������ �������� ?steel? (�����).
CREATE TABLE materials (
    name CHAR(12) NOT NULL PRIMARY KEY,   # �������� ���������
    density FLOAT NOT NULL,               # ���������
    elastics FLOAT NOT NULL,              # ������ ����
    poisson FLOAT NOT NULL,               # �-� ��������
    strength FLOAT NOT NULL);             # ���������
 
CREATE TABLE loadings (
    type CHAR(1) NOT NULL,                # ��� ���������� �������
    direction CHAR(1),                    # ����������� ��������
    node SMALLINT NOT NULL,               # ����� ���� ����������
    value FLOAT,                          # �������� ��������
    KEY key_node (node) );                # ��������� ����
� ������� ��������� ������� loadings ���� �������� direction � value ����� ���� ������� (����� �������� NULL), ��������� �� ��� ���� �������� ����� ����������� �������� �/��� ��������.
����� ���� node ���������� ���������� ������� ������������ ��� ���� ������ � �������, �.�. �������� ������ �� ����� � ������� loadings - ��� ������ �� ����������� ��������� ������� ��� ����������� ����. ������ ���� ���� �� ����� ���� ���������, ��������� � ������ ���� ��������� ���������� ���������� ��������� ������� (��������, ������ ������� ��� � �������).
������� ��������, ��� � ���� ������� ��������� ���� ����� ���� �������������� ������ ��������� �� �������� type, direction � node.
 

����������� �������

����������� ������������ ������� � �� ����������� ���������� ALTER TABLE, ������� ��������� ���������
ALTER TABLE ���_���� �_���������� [,�_������������ ...]
��� �_������������ ����� ��������� �����. ���� �������������� �������� ����� ������������.
  1. ���������� ������ �������
  2. ADD COLUMN �_������������
    ��� �_������������ - �������� ������������ ������� � ��� ����, ��� ��� ������������  ��� �������� ������� ���������� CREATE TABLE.
     
  3. �������� ���������� ����� ��� �������
  4. DROP PRIMARY KEY
  5. ���������/�������� �������� ?�� ���������?
  6. ALTER COLUMN ���_������� SET ��_�����
    ���
    ALTER COLUMN ���_������� DROP DEFAULT
������
����������� � ����� ������ ������������� ��������� �������� ������������� ������� �������� ������������� ������ ������������� �������� �������. ��� �����, � ���������, ���������� ����� �������� � ��������������� ���������� ��������� ������� (������������ � ����������������). ��������� �������������� �������� � ������� materials ������� �� ���������� ����� ������ ���������, ��� ����� ����������� ����� ���������� ����� SQL:
ALTER TABLE materials
    ADD COLUMN capacity FLOAT NOT NULL,        # ������������
    ADD COLUMN conductivity FLOAT NOT NULL;    # ����������������

�������� �������

�������� ����� ��� ����� ���������� ������ �� �� ����������� ���������� DROP TABLE, ������� ��������� ������� ���������
DROP TABLE ���_����, ...
����������, ��� �������� DROP TABLE ������� �� ������ ��� ���������� �������, �� � ���� �������� ������� �� ��. ���� ��������� ������� ������ ���������� �������, �� ���������� ������������ �������� DELETE FROM.

���������� ����� � �������

��� ���������� ����� � ������� SQL ���� ������ ������������ �������� INSERT INTO. �������� ��� �������������� ����� ����������� ����.
  1. ���������� ������ ������������� �������� ���� �� �����
  2. INSERT INTO ���_���� VALUES (����, ...);
    ��� ���� - ����������� �������� ������ ������. �������� ����� � ������ ������ ��������������� ������� ������������ ������������ �������� ������� � ��������� CREATE TABLE. ��������� � �������� ���� ��������� �������� ����� NULL, ��� �������� ���������� �������� ��� ��������������� ������ ������.
    ����� ����������� ����� ������ � ������� ���� ��������� ������������ ������������� ��������, ��������� �������� �������� ������� �� ��������� CREATE TABLE.
     
  3. ���������� ������ � �������������� ������ ���� ��������
  4. INSERT INTO ���_���� (���_�������, ...) VALUES (����, ...);
    ����� ������ ���� �������� � �������� ����� ����������� ������ ������ ���� �����������, ���� ��� ������� ���������� � �� �������. ��������� �������� � ������� ���������� � ��������� ������� ������, ��� ����  
  5. ���������� ����� �� ����������� ������� � ��
  6. INSERT INTO ���_���� [(���_�������, ...)] SELECT ...
    ����� �������� ���� ����������� �������� � ������� 0, 1 ��� ����� ��������� ����� �����, ���������� � ���������� ������� � ���� ������, ������������ ���������� SELECT.
������
���������� ���������� � ����� ���� ��-����� � ������� nodes:
INSERT INTO nodes VALUES (25, 6.3, 1.8);
�������, ��� ���������� ����� ������ ����� ������� ������ � ��� ������, ���� ���� � ����� �� ��������������� � ������� nodes ��� ��� - ���� � ���, ��� ������� id ���� ������� �������� ��������� ������ �, ��������������, �������� ���� ��� ����� ������ ���� ���������.

������
���������� ���������� � ����� �� � ������� elements:

INSERT INTO elements
    (n1, n2, n3, id) VALUES
    (14, 25, 18, 46);
� ���������� � ������� elements �������� ����� ������, ���������� � ���� props �������� ?steel?, ��� ������������� ��������, ������������ ��� �������� �������.

������
��������� � ������� materials �������� � ����� ���������:

INSERT INTO materials VALUES (
    'wood', 0.6, 2.0, 0.12, 50);
������
���������� � ������� ��������� ������� loadings ���������� �� ��������������� ������������� ?�����? � ���� 2:
INSERT INTO loadings VALUES (
    'r', 'x', 2, NULL);

������� ������ �� ������

��� ���������� ������, ������������ � �������� SQL ��, ������������ �������� SELECT, ������� � ����� ������ ������� � ��������������� ���������. � ������ ������� ������� ��������������� ������ ��������� � �������� ����� ������������ ������� ����������� ��������� SELECT.
��������� �������� SELECT �������� ��������� �������:
SELECT [ALL | DISTINCT] �_���������, ...
    FROM ���_���� [���_����], ...
    [WHERE �����_�������]
    [GROUP BY ����_���_�������|���_�������, ...]
    [ORDER BY ����_���_�������|���_������� [ASC|DESC], ...]
    [HAVING �����_�������];
����������� ������ ��������� �������� ��������� �� ����������� ����� (����� �������) ����� ����������� �������, ��� ������� ��� �������� ���������� ��������� SELECT ������������ ��������� �����������: 1. ����������� (� ����� ������������) ����� �_��������� �������� ������ ?*?, ������� ����� ?��� ������� ������ �� ������ FROM?.
������
����� ����� ����������� ������� materials.
SELECT * FROM materials;
+--------------+---------+----------+---------+----------+
| name         | density | elastics | poisson | strength |
+--------------+---------+----------+---------+----------+
| steel        |    7.80 |   200.00 |    0.25 |  1000.00 |
| aluminium    |    2.70 |    65.00 |    0.34 |   600.00 |
| concrete     |    5.60 |    25.00 |    0.12 |   300.00 |
| duraluminium |    2.80 |    70.00 |    0.31 |   700.00 |
| titanium     |    4.50 |   116.00 |    0.32 |   950.00 |
| brass        |    8.50 |    93.00 |    0.37 |   300.00 |
+--------------+---------+----------+---------+----------+
2. ������� (� ����� ����� ������������) ������� �_��������� �������� ������ ��� ������� ����� �� ������ ������ FROM.
������
����� ���������� ���������� �������������� ���� ����� ��-�����, � ������� ��������� �����-���� ��������� �������, ��� ���� ���������� ����� ��� ������������ �������. ��� ������ ����� ���� ������ � ������� ���������� ���������:
SELECT node, type FROM loadings;
+------+------+
| node | type |
+------+------+
|    1 | r    |
|    2 | r    |
|    3 | r    |
|   14 | h    |
|   27 | f    |
|   27 | f    |
+------+------+
���������� �������������� ������� �������� ����������� ������ ��� ���� 27. �������� ����� �����, ������� � �������� �������� ����� DISTINCT, ����������� ��������� � �������� ������� ���������� �����.
SELECT DISTINCT node, type FROM loadings;
+------+------+
| node | type |
+------+------+
|    1 | r    |
|    2 | r    |
|    3 | r    |
|   14 | h    |
|   27 | f    |
+------+------+
3. � ����� ������ �_��������� ����� ������������ ����� ������� ��������� ��������� ��� ���������� �������� �������, ������������ ��������������, ���������, ���������� �������� � �������. �������� ����� ������������ ������� ������� ���� � �������� 1, 2, 3.
������
������������ ���� ������� ������� ���������� materials �������� � ����� �������� density � elastics �������� ������� �����, ����������, ��������������, ��������� � ������ ���� ������� ���������. ��� ��������� �������� �������� ���� ������� � ������� ������ ��������� �� (��/�3 � ��) ���������� ��������� �� �� ���������� ������������, ��� ����������� ��������� ����������
SELECT name, density*1000, elastics*1e+9 FROM materials;
+--------------+--------------+-----------------+
| name         | density*1000 | elastics*1e+9   |
+--------------+--------------+-----------------+
| steel        |      7800.00 | 200000000000.00 |
| aluminium    |      2700.00 |  65000000000.00 |
| concrete     |      5600.00 |  25000000000.00 |
| duraluminium |      2800.00 |  70000000000.00 |
| titanium     |      4500.00 | 116000000000.00 |
| brass        |      8500.00 |  93000000000.00 |
+--------------+--------------+-----------------+
������� 1. �������������� �������
 
���������  ������������ ��������
ABS(x) ���������� �������� x
SQRT(x) ���������� ������ �� x
MAX(x, y, ...) �������� ����������� �������� �� ������ x, y, ...
MIN(x,y, ...) �������� ����������� �������� �� ������ x, y, ...
 ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½. x, y - ����� ��� ���������, ������� �������� ���������.
 ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ 2. ��������� �������
 
��������� ������������ ��������
LEFT(s,n) ������ n �������� ������ s
RIGHT(s.n) ��������� n �������� ������ s
SUBSTRING(s, m, n) ������, ���������� ������������ n �������� �� ������ s, ������� � m-��� ������� ������
LCASE(s) ������, ���������� �� s ��������������� ���� ���� � ��������
UCASE(s) ������, ���������� �� s ��������������� ���� ���� � ���������
CONCAT(s1, s2, ...) ������, ���������� ������������� (��������) ����� s1, s2, ...
LENGTH(s) ����� ������ s
����������. s, s1,s2 - ������ ��� ���������, ������� ��������� � ���� ������. n, m - ����� ��� ���������, ������� �������� ���������.
 ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ 3. ��������� � �������, ������������ ���������� �������� (1 - ?������?, 0 - ?����?)
 
��������� ������������ ��������
x = y 
x ?? y 
x ? y 
x ? y 
x ?= y 
x ?= y
1 (?������?) ��� 0 (?����?) � ����������� �� ���������� �������� ��������� (��������������, ?�����?, ?�� �����?, ?������?, ?������?, ?�� ������?, ?�� ������?)
NOT l 1, ���� l=
0, ���� l=1
l1 AND l2 ��������� ���������� �������� ?�? ��� l1 � l2
l1 OR l2 ��������� ���������� �������� ?���? ��� l1 � l2
BETWEEN (x, y z) ��������� ���������� ����������� ��������� (x?=y AND x?=z)
ISNULL (v) 1, ���� v ����� �������� ?�����? (NULL) 
0, � ��������� ������
IFNULL (v1, v2) v1, ���� v1 �� ?�����? 
v2, � ��������� ������
s LIKE ������� 1, ��� ������� ������������� ������ s � �������  
0, � ��������� ������
s NOT LIKE ������� 0, ��� ������� ������������� ������ s � �������  
1, � ��������� ������
����������. x, y, z - ����� ��� ���������, ������� �������� ���������. l, l1, l2 - ���������� ��������� (1 ��� 0) ��� ���������� ���������. s - ������ ��� ���������, ������� ��������� � ���� ������. v, v1, v2 - ���������� ��� ���������.
������� - ��������� � ���� ������ ��������, ��������, ���������� ����������� ?%? � ?_?. � ������� ���������� ?_? ���������� � ����� ��������� �������� ������ s, ���������� ?%? - � ����� �������� �������� ����� ( � ��� ����� �������) �����.

������
����� ���������� ��� ������ ���������� � ��������� ���������� �� ������� materials ���������������� ���������, ������� � ����� ������� �������� (����������, ������� � ����� �������� ���������� �� ��������). ��� ������ ����� ���� ������ � ������� ���������� ���������.

SELECT name, name LIKE '%alu%', density FROM materials;
+--------------+-------------------+---------+
| name         | name LIKE '%alu%' | density |
+--------------+-------------------+---------+
| steel        |                 0 |    7.80 |
| aluminium    |                 1 |    2.70 |
| concrete     |                 0 |    5.60 |
| duraluminium |                 1 |    2.80 |
| titanium     |                 0 |    4.50 |
| brass        |                 0 |    8.50 |
+--------------+-------------------+---------+
������
����� ���������� ��� ������� ���������  �������� ���������� ���������� �������� �������� ��������������� �����, ���������� ��������� ����� ��������� ��������. ������ ������ ����� ���� ������ ��������� ����������
SELECT id, n1, n2, n3, MAX(ABS(n1-n2),ABS(n1-n3),ABS(n2-n3))
    FROM elements;
+----+----+----+----+---------------------------------------+
| id | n1 | n2 | n3 | MAX(ABS(n1-n2),ABS(n1-n3),ABS(n2-n3)) |
+----+----+----+----+---------------------------------------+
| 29 | 24 | 26 | 25 |                                     2 |
| 30 | 24 | 25 | 23 |                                     2 |
| 31 | 22 | 26 | 24 |                                     4 |
|  1 |  2 |  3 |  5 |                                   &nbs
p; 3 |
|  2 |  1 |  2 |  4 |                                   &nbs
p; 3 |
|  3 |  2 |  5 |  4 |                                   &nbs
p; 3 |
|  4 |  4 |  5 |  6 |                                   &nbs
p; 2 |
| 25 | 24 | 23 | 21 |                                     3 |
| 20 | 20 | 19 | 17 |                                     3 |
| 21 | 21 | 19 | 20 |                                     2 |
| 22 | 21 | 23 | 19 |                                     4 |
| 12 | 12 | 14 | 13 |                                     2 |
| 13 | 12 | 15 | 14 |                                     3 |
| 14 | 13 | 14 | 18 |                                     5 |
| 26 | 28 | 27 | 22 |                                     6 |
|  7 |  7 |  8 |  9 |                                   &nbs
p; 2 |
|  8 |  8 | 10 |  9 |                                     2 
|
|  9 |  9 | 10 | 11 |                                     2 |
| 10 | 10 | 12 | 11 |                                     2 |
| 11 | 11 | 12 | 13 |                                     2 |
| 16 | 16 | 17 | 14 |                                     3 |
| 17 | 18 | 17 | 14 |                                     4 |
| 18 | 16 | 20 | 17 |                                     4 |
| 19 | 19 | 18 | 17 |                                     2 |
| 15 | 15 | 16 | 14 |                                     2 |
| 27 | 27 | 29 | 26 |                                     3 |
| 28 | 22 | 27 | 26 |                                     5 |
|  5 |  5 |  7 |  6 |                                   &nbs
p; 2 |
|  6 |  5 |  8 |  7 |                                   &nbs
p; 3 |
| 23 | 20 | 22 | 21 |                                     2 |
| 24 | 24 | 21 | 22 |                                     3 |
+----+----+----+----+---------------------------------------+
4. � ����� ������ �_��������� ��������� ������������� ������������ (���������� ����� ����������) �������, ����������� � �������� ������ ������������� ��������� �������� ���� ����� ���������� ������� �������������� �������. �������� ����� ������� ������������ � ������� 4. ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ 4. ������������ �������
 
��������� ������������ ��������
SUM(x) ����� �������� ������� x �������������� �������
MAX(x) ���������� �������� �� ���� �������� ����� �������
MIN(x) ���������� �������� �� ���� �������� ����� ������� x
AVG(x) ������� �������� ��� ���� �������� ����� ������� x
COUNT(x) ����� ���������� ����� � ������� x
 ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½. ������� MAX(...) � MIN(...) � ����� ���������� �������� ������������� ���������, ��� �� � ����� � ����� ����������� - ������� ������� (��. ������� 1).

������
��� ��������� ����������� �������� ������ ���� ��� ����������, ��������� � ������� materials, ����� ������������ ��������� ��������

SELECT MAX(elastics) FROM materials;
+---------------+
| MAX(elastics) |
+---------------+
|        200.00 |
+---------------+
������
��������� �������� SELECT ��������� ���������� ����� ���������� �������� ��������� � ��-����� �� ������ �������.
SELECT COUNT(*) FROM elements;
+----------+
| COUNT(*) |
+----------+
|       31 |
+----------+

�������� �������� ������� ����������� ����� �������������� �������

� �������� �������� ������ ���������� �� ������ ������ FROM ��������� SELECT ��������� �����_�������, ������������ ����� ��������� ����� WHERE � ������� ��������� ���:
�����_�������
���
�����_������� AND �����_�������
���
�����_������� OR �����_�������
��������� ���������� �����_������� �������� ���������. ��� ��������������� �����_������� ��������� �������������  ������� ������ ��� ���������� �������� ���������� �������.

����������. �������� ��������, ��� ��������� �����_������� ����������� ?������? ���������� �_���������. ���� � ���, ��� �����_������� ������������ (� ��� ����� � �� ���������� ������ ����������� ��) �� ����� ������� �� �������� (��������, ����� �������) ������� (������) ����������� ����� � ��������������. ��� ���������� ������� ������� ������� � ������� ������ ��� (�������) ���������� ������� � ���������. �������� ������ �� ������������� ������ � �������� ����� ���� ��������� ������ ��� �������, ��� ������� �� ����� � �������� ���������� � �������� �������� ������ ������ �������� ����� �������� � ?������? ����, � �� � ���� �� ���������� � ������� ���������.
����������� �� �_��������� �����������, �� ���� ����, � ��������� �������� ��� �������������� �������, ������� ��������� �_��������� �� ������������� ���������� ������� ����������� �������� ������� �� ���������.

������
��� ����������� ��������� �������������� ���� 11 ����� �������������� ��������� ��������:

SELECT * FROM nodes WHERE id = 11;
+----+--------+--------+
| id | x      | y      |
+----+--------+--------+
| 11 | -35.00 | -10.00 |
+----+--------+--------+
������
����� ���������� ���������� �������������� ���� �������� ���������, ������� � �������� ����� �� ����� ������ ���� 20. ��� ������ ����� ���� ������ ��������� ���������� SELECT
 SELECT id FROM elements
    WHERE n1 = 20 OR n2 = 20 OR n3 = 20;
+----+
| id |
+----+
| 20 |
| 21 |
| 18 |
| 23 |
+----+
������
��� ����������� ��������������� ����� ��-�����, ������������� � ������ ��������� ������� ��������� ����� ������������ ��������� ��������
SELECT * FROM nodes
    WHERE x ?= 0 AND y ?= 0;
+----+-------+-------+
| id | x     | y     |
+----+-------+-------+
| 14 |  0.00 |  0.00 |
| 15 |  5.00 | 20.00 |
| 16 | 20.00 |  8.00 |
+----+-------+-------+
������
��������� �������� SELECT ����� ���� ����������� ���  ����������� ��������� �������, ������� � �������� ����� �� ����� ������������� ��������� �������� ��������
SELECT * FROM loadings WHERE value IS NOT NULL;
+------+-----------+------+--------+
| type | direction | node | value  |
+------+-----------+------+--------+
| f    | y         |   27 | -50.00 |
| f    | x         |   27 | -10.00 |
+------+-----------+------+--------+

�������������� � ������������� ����� �������������� �������

��� ����������� ������������������� � ������������ ����� �������������� ������� � ��������� SELECT ������������ ����������� GROUP BY � ORDER BY.


������:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
�������:

�������� �� �����
���������� �� ���������
Created 1996-2026 by Maxim Chirkov
��������, ����������, ����������