163.88K
Категория: Базы данныхБазы данных

Маълумотлар манипуляция қилиш. Оддий сўровлар яратиш (10 - маъруза)

1.

10-маъруза. Маълумотлар
манипуляция қилиш. Оддий
сўровлар яратиш.
Рахимбоев Х.Ж.
Курс-2

2.

Режа:
CREATE
TABLE
жадвалларни яратиш
Оператор
ALTER TABLE.
Жадвал
структурасини
ўзгартириш
Маълумотларни
янгилаш.
оператор UPDATE
Маълумот
киритиш.
оператор INSERT
INTO
Мисоллар

3.

CREATE TABLE жадвалларни яратиш оператори
• Таърифи: MySQL тизимидаги CREATE TABLE
оператори жадваллар яратиш ва аниқлаш учун
хизмат қилади.
• Синтаксиси: CREATE TABLE оператори
синтаксисининг оддий кўриниши:
• CREATE TABLE table_name
(
column1 datatype [ NULL | NOT NULL ],
column2 datatype [ NULL | NOT NULL ],

);

4.

CREATE TABLE жадвалларни яратиш оператори
• CREATE TABLE операторининг тўлиқ синтаксиси:
• CREATE [ TEMPORARY ] TABLE [IF NOT EXISTS]
table_name
(
column1 datatype [ NULL | NOT NULL ]
[ DEFAULT default_value ]
[ AUTO_INCREMENT ]
[ UNIQUE KEY | PRIMARY KEY ]
[ COMMENT ‘string’ ],
• column2 datatype [ NULL | NOT NULL ]
[ DEFAULT default_value ]
[ AUTO_INCREMENT ]
[ UNIQUE KEY | PRIMARY KEY ]
[ COMMENT ‘string’ ],

• | [CONSTRAINT [constraint_name]] PRIMARY KEY [
USING BTREE | HASH ] (index_col_name, …)
| [INDEX | KEY] index_name [ USING BTREE | HASH ]
(index_col_name, …)
| [CONSTRAINT [constraint_name]] UNIQUE [ INDEX |
KEY ]
[ index_name ] [ USING BTREE | HASH ]
(index_col_name, …)
• | {FULLTEXT | SPATIAL} [ INDEX | KEY] index_name
(index_col_name, …)
• | [CONSTRAINT [constraint_name]]
FOREIGN KEY index_name (index_col_name, …)
REFERENCES another_table_name (index_col_name, …)
[ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ]
[ ON DELETE { RESTRICT | CASCADE | SET NULL | NO
ACTION } ]
[ ON UPDATE { RESTRICT | CASCADE | SET NULL | NO
ACTION } ]
• | CHECK (expression)
• {ENGINE | TYPE} = engine_name
| AUTO_INCREMENT = value
| AVG_ROW_LENGTH = value
| [DEFAULT] CHARACTER SET = charset_name
| CHECKSUM = {0 | 1}
| [DEFAULT] COLLATE = collation_name
| COMMENT = ‘string’
| DATA DIRECTORY = ‘absolute path’
| DELAY_KEY_WRITE = { 0 | 1 }
| INDEX DIRECTORY = ‘absolute path’
| INSERT_METHOD = { NO | FIRST | LAST }
| MAX_ROWS = value
| MIN_ROWS = value
| PACK_KEYS = {0 | 1 | DEFAULT}
| PASSWORD = ‘string’
| RAID_TYPE = { 1 | STRIPED | RAIDO }
RAID_CHUNKS = value
RAID_CHUNKSIZE = value
| ROW_FORMAT = {DEFAULT | DYNAMIC | FIXED |
COMPRESSED}
| UNION = (table1, … )
);

5.

CREATE TABLE жадвалларни яратиш оператори
• Синтаксисдаги параметрлар ва аргументлар
• TEMPORARY — шарт бўлмаган. Жадвал
вақтинчалик эканлигини билдиради.
• IF NOT EXISTS — шарт бўлмаган. Агар аввалдан
мавжуд жадвал яратишга харакат қилинса
хатолик юз бермайди.
• table_name — яратилаётган жадвал номи.
column1, column2 — жадвалнинг устунлари.
datatype — устундаги маълумот типи.

6.

CREATE TABLE жадвалларни яратиш оператори
• CREATE TABLE contacts
( contact_id INT(11) NOT NULL ,
last_name VARCHAR(30) NOT NULL,
first_name VARCHAR(25),
birthday DATE,
CONSTRAINT contacts_pk PRIMARY KEY (contact_id)
);

7.

CREATE TABLE жадвалларни яратиш оператори
Бошқа жадвал структураси асосида янги жадвал
яратиш
• CREATE TABLE new_table_name AS
SELECT column1, column2,...
FROM existing_table_name
WHERE ....;
Мисол:
CREATE TABLE TestTable AS
SELECT customername, contactname
FROM customers;

8.

CREATE TABLE жадвалларни яратиш оператори
• CREATE TABLE Persons (
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);

9.

CREATE TABLE жадвалларни яратиш
оператори. DDL чекловлар
SQL одатда қуйидаги чекланишлар мавжуд:
• DEFAULT <val> – агар қиймат киритишда устун учун қиймат
кўрсатилмаган бўлса жимликка кўра қабул қилинадиган
қийматни ўрнатиш;
• NOT NULL – қиймат мавжудмаслигини ақиқлаш, устун NULL
қиймат қабул қилишини тақиқлаш
• UNIQUE – такрорланишларни тақиқлаш, устундаги қийматлар
турлича бўлишини таъминлайди
• PRIMARY KEY – бирламчи калит (not null + unique), NOT
NULL ва UNIQUE комбинацияси. Жадвалдаги ҳар бир сатр
уникаллигини таъминлайди
• FOREIGN KEY references <table> (<PK attribute>) <mode> –
ташқи калит (хавола), сатр / бошқа жадвалдаги ёзувни бир
қийматли идентификациялайди
• CHECK <condition> – устундаги барча қийматлар белгиланган
шартни қаноатлантиришини таъминлайди

10.

CREATE TABLE жадвалларни яратиш оператори. Default
чеклови – химликка кўра қиймат
Default <val> – жимликка кўра қиймат қабул қилиш;
• Мисол. Масалан, навбатдаги SQL код янги CUSTOMERS
номли жадвални яратади ва унда 5 та устун яратади. Унда
SALARY устуни учун жимликка кўра 5000.00 қиймати
ўрнатилган. Шу сабабли, агар INSERT INTO операторида
ушбу устун учун қиймат кўрсатилмаса устун жимликка
кўра 5000.00 қийматини қабул қилади.
1 CREATE TABLE CUSTOMERS(
2 ID INT
NOT NULL,
3 NAME VARCHAR (20) NOT NULL,
4 AGE INT
NOT NULL,
5 ADDRESS CHAR (25) ,
6 SALARY DECIMAL (18, 2) DEFAULT 5000.00,
7 PRIMARY KEY (ID)
8 );

11.

TABLE жадвалларни яратиш оператори. Default
чеклови – жимликка кўра қиймат
Агар CUSTOMERS жадвали аввал яратилган бўлса юқоридаги
SALARY устунига DEFAULT чекловни қўшиш учун қуйидаги
сўров киритилади.
CUSTOMERS жадвалини ўзгартириш
ALTER TABLE customers
MODIFY SALARY DECIMAL (18, 2) DEFAULT 5000.00;
Default чекловнин ўчириш.
1 ALTER TABLE CUSTOMERS
2 ALTER COLUMN SALARY DROP DEFAULT;

12.

TABLE жадвалларни яратиш оператори. Ограничения
NOT NULL чеклови – бўш бўлмаган қиймат
• Жимликка кўра устун NULL қиймати қабул қилиши
мумкин. NOT NULL чеклови устун бўш қиймат қабул
қилмаслигини таъминлайди. Агар устун бундай хусусиятга
эга бўлса, янги қиймат киритишда ёки ўзгартиришда бу
устунни бўш қолдириш мумкин бўлмади.
Навбатдаги мисолда “ID”, "LastName“ ва “FirstName"
устунларига бўш қиймат (NULL) киритиш имкони бўлмайди
Мисол: CUSTOMERS жадвалини ўзгартириш
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255) NOT NULL,
Age int
);

13.

TABLE жадвалларни яратиш оператори. Ограничения
NOT NULL чеклови – бўш бўлмаган қиймат
• Мавжуд жадвалга NOT NULL чеклови ALTER TABLE
ёрдамида киритилади .
ALTER TABLE Persons
MODIFY Age int NOT NULL;

14.

CREATE TABLE жадвалларни яратиш оператори.
Уникаллик чеклови - UNIQUE
• Навбатдаги оператор Persons жадвалида "ID" устунини уникал устун
сифатида яратади:
• CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
UNIQUE (ID) );
• Бир нечта устунлар учун уникалликни ўрнатиш учун қуйидаги SQL синтаксис
ишлатилади:
• CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
CONSTRAINT UC_Person UNIQUE (ID,LastName) );

15.

CREATE TABLE жадвалларни яратиш оператори.
Уникаллик чеклови - UNIQUE
• Жадвални ўзгартириш орқали уникалликни ўрнатиш:
• ALTER TABLE Persons ADD UNIQUE (ID);
Бир нечта устунлар учун уникалликни ўрнатиш учун қуйидаги
синтаксисидан фойдаланилади:
ALTER TABLE Persons
ADD CONSTRAINT UC_Person UNIQUE (ID,LastName);

16.

CREATE TABLE жадвалларни яратиш оператори..
PRIMARY KEY – бирламчи калит чекловини ўрнатиш
Навбатдаги мисолда "ID" устуни бирламчи калит сифатида яратилади
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
PRIMARY KEY (ID)
);
Чтобы разрешить именование ограничения первичного ключа, а также для
определения ограничения первичного ключа для нескольких столбцов, используйте
следующий синтаксис SQL:
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
CONSTRAINT PK_Person PRIMARY KEY (ID,LastName)
);

17.

Оператор ALTER TABLE. Жадвал
структурасини ўзгартириш
• ALTER TABLE оператори мавжуд жадвалга
устун қўшиш, ўзгартириш ёки ўчириш учун
ишлатилади. Шунингдек ALTER TABLE
жадвал номини ўзгартириш учун ҳам
ишлатилади.

18.

Оператор ALTER TABLE. Жадвал
структурасини ўзгартириш
• 1. Жадвалга устун қўшиш.
ALTER TABLE оператори ёрдамида жадвалга устун қўшиш синтаксиси:
ALTER TABLE table_name
ADD new_column_name column_definition
[ FIRST | AFTER column_name ];
table_name — ўзгартириладиган жадвал номи.
new_column_name — жадвалга янги қўшиладиган янги устун номи.
column_definition — маълумотлар типи ва устун тафсилотлари (NULL ёкиNOT NULL ва х.к.).
FIRST | AFTER column_name — шарт бўлмаган. Бу параметр устун жадвалда қайси ўринда
яратилишини аниқлайди, агар бу параметр кўрсатилмаса устун жадвал охирида яратилади..
• Мисол:
ALTER TABLE contacts
ADD last_name varchar(40) NOT NULL
AFTER contact_id;
Ушбу ALTER TABLE мисолида contacts жадвалига last_name номли янги устун қўшади. У NOT
NULL хусусиятга эга бўлади ва жадвалда contact_id устунидан кейин жойлашади.

19.

Оператор ALTER TABLE. Жадвал
структурасини ўзгартириш
• Мисол2
• ALTER TABLE contacts
ADD last_name varchar(40) NOT NULL
AFTER contact_id,
ADD first_name varchar(35) NULL
AFTER last_name;
• Бу мисола ALTER TABLE оператори contacts жадвалига 2 та устун
қўшади— last_name ва first_name.
• last_name устуни varchar (40) NOT NULL шаклида яратилади ва
жадвалда contact_id устунидан кейин жойлашади.
• first_name устуни NULL varchar (35) шаклида яратилади ва
жадвалда last_name устунидан кейин жойлашади.

20.

Оператор ALTER TABLE. Жадвал
структурасини ўзгартириш
• 2. Жадвалда мавжуд устунни ўзгартириш
• Синтаксис:
• ALTER TABLE table_name
MODIFY column_name column_definition
[ FIRST | AFTER column_name ];
• Мисол:
• ALTER TABLE contacts
• MODIFY last_name varchar(50) NULL;

21.

Оператор ALTER TABLE. Жадвал
структурасини ўзгартириш
• 3. Жадвалдаги устунни ўчириш
• Синтаксиси:
ALTER TABLE table_name
DROP COLUMN column_name;
• Мисол:
ALTER TABLE contacts
DROP COLUMN contact_type;

22.

Оператор ALTER TABLE. Жадвал
структурасини ўзгартириш
• 4. Мавжуд устун номини ўзгартириш
• ALTER TABLE оператори ёрдамида жадвалдаги устун номини
ўзгартириш синтаксиси:
• ALTER TABLE table_name
CHANGE COLUMN old_name new_name
column_definition
[ FIRST | AFTER column_name ];
• Мисол:
ALTER TABLE contacts
CHANGE COLUMN contact_type ctype
varchar(20) NOT NULL;

23.

Оператор ALTER TABLE. Жадвал
структурасини ўзгартириш
• 5. Жадвал номини ўзгартириш
• MySQL да жадвал номини ўзгартириш синтаксиси:
• ALTER TABLE table_name
RENAME TO new_table_name;
• Мисол:
• Ушбу ALTER TABLE мисоли contacts жадвалини people номига
ўзгартиради.
ALTER TABLE contacts
RENAME TO people;

24.

Язык
SQL
Маълумотларни
янгилаш. оператор UPDATE
Тавсифи:
MySQL даги UPDATE оператори маълумолар базасидаги
жадвалнинг мавжуд ёзувларидаги (сатр) маълумотларни
янгилаш учун фойдаланилади. UPDATE операторининг
янгилаш типига қараб 3 хил синтаксиси мавжуд.
Синтаксис. UPDATE операторининг оддий синтаксиси :
UPDATE table
SET column1 = expression1,
column2 = expression2,

[WHERE conditions];
24

25.

Язык
SQL
Маълумотларни
янгилаш. оператор UPDATE
Ягона устунни янгилашга мисол:
UPDATE customers
SET last_name = 'Ford'
WHERE customer_id = 500;
Навбатдаги мисолда ягона UPDATE оператори ёрдамида бир қанча устундаги
маълумотлар янгиланиши келтирилган.
UPDATE customers
SET state = 'Nevada', customer_rep = 23
WHERE customer_id > 200;
Жадвалдаги маълумотларни бошқа жадвалдаги маълумотлар асосида янгилаш:
UPDATE customers
SET city = (SELECT city
FROM suppliers
WHERE suppliers.supplier_name = customers.customer_name)
WHERE customer_id > 5000;
25

26.

Язык
SQL киритиш. оператор INSERT INTO
Маълумот
Тавсифи. MySQL тизимдаги INSERT INTO оператори жадвалга бир ёки бир нечта
ёзувларни киритиш учун қўлланилади.
Синтаксис. INSERT операторининг VALUES калит сўзи ёрдамида маълумот киритишдаги
оддий синтаксиси:
INSERT INTO table
(column1, column2, … )
VALUES
(expression1, expression2, … ),
(expression1, expression2, … ),
…;
INSERT INTO оператори ёрдамида бир қанча ёзувларни киритиш синтаксиси:
INSERT INTO table
(column1, column2, … )
SELECT expression1, expression2, …
FROM source_table
[WHERE conditions];
26

27.

Маълумот киритиш. оператор INSERT INTO
Язык SQL
VALUES калит сўзидан фойдаланишга мисол
INSERT INTO операторидан фойдаланишнинг энг оддий усули бу VALUES
калит сўзидан фойдаланиб маълумот киритишдир.
Масалан:
INSERT INTO suppliers
(supplier_id, supplier_name)
VALUES
(100, 'Acer');
Ушбу оператор бажарилиши натижасида suppliers жадвалига ёзувлар киритилади.
Янги ёзувда supplier_id устундаги қиймат 100 га ва supplier_name устундаги
қиймат ‘Acer’ га тенг бўлади.
Қисм сўровдан фойдаланишга мисол.
INSERT INTO операторида мураккаб шаклда фойдаланиш мумкин, масалан:
INSERT INTO suppliers
(supplier_id, supplier_name)
SELECT account_no, name
FROM customers
WHERE customer_id < 300;
27

28.

Назорат саволлари
1.
2.
3.
4.
CREATE TABLE – операторини тавсифланг. Жадваллар яратишга
мисол келтиринг.
ALTER TABLE – операторини таърифланг. Бу оператор ёрдамида
жадвал структурасини ўзгартириш бўйича қандай амаллар
бажарилади? Мисоллар келтиринг.
UPDATE – маълумотларни янгилаш оператори. Бу оператор
ёрдамида қандай амаллар бажарилади? Мисоллар келтиринг.
INSERT INTO – маълумот киритиш операторини. Бу оператор
ёрдамида қандай амаллар бажарилади? Мисоллар келтиринг.
English     Русский Правила