Oracle SQL
From AsIsWiki
(Difference between revisions)
Line 1: | Line 1: | ||
<div style='max-width:700px;text-align:justify;'> | <div style='max-width:700px;text-align:justify;'> | ||
− | |||
− | |||
− | |||
[[Main Page|Wiki Home]] | [[Main Page|Wiki Home]] | ||
Line 225: | Line 222: | ||
---- | ---- | ||
− | [[Main Page|Wiki Home]] · [http://levelup.asistech.org LevelUp] · [http://lib.asistech.org Library | + | [[Main Page|Wiki Home]] · [http://levelup.asistech.org LevelUp] · [http://lib.asistech.org Library] |
</div> | </div> |
Latest revision as of 09:14, 30 May 2016
[edit] Создание таблицы
CREATE TABLE BOYS ( ID INTEGER NOT NULL PRIMARY KEY, NAME VARCHAR2(255) NOT NULL ) CREATE TABLE GIRLS ( ID INTEGER NOT NULL PRIMARY KEY, NAME VARCHAR2(255) NOT NULL ) -- Без ключа: CREATE TABLE BOYS ( NAME VARCHAR2(255) NOT NULL ) CREATE TABLE GIRLS ( NAME VARCHAR2(255) NOT NULL )
[edit] Заполнение таблицы
INSERT INTO BOYS (ID, NAME) VALUES (SOME_SEQUENCE.NEXTVAL, 'Петя') -- создание SEQUENCE см. далее INSERT INTO GIRLS (ID, NAME) VALUES (SOME_SEQUENCE.NEXTVAL, 'Маша') -- создание SEQUENCE см. далее -- Без ключа: INSERT INTO BOYS (NAME) VALUES ('Вася'); INSERT INTO GIRLS (NAME) VALUES ('Даша');
[edit] Декартово произведение
SELECT * FROM BOYS, GIRLS; SELECT * FROM BOYS, (SELECT * FROM BOYS);
[edit] Удаление таблицы
DROP TABLE BOYS; DROP TABLE GIRLS;
[edit] Удаление строк из таблицы
DELETE FROM BOYS WHERE NAME = 'Петя';
[edit] Строковые функции
SUBSTR(STRING, POSITION) SUBSTR(STRING, POSITION, LENGTH) Примеры: SELECT SUBSTR('1234567890', 4) FROM DUAL --> 4567890 SELECT SUBSTR('1234567890', 0, 3) FROM DUAL --> 123 SELECT SUBSTR('1234567890', 1, 3) FROM DUAL --> 123 SELECT SUBSTR('1234567890', -4, 3) FROM DUAL --> 789
[edit] Автоувеличение индексного поля
CREATE TABLE Students ( id INT PRIMARY KEY, fullname VARCHAR2(80) NOT NULL ); CREATE SEQUENCE seq_students start WITH 1 increment BY 1 nomaxvalue; -- триггер нужен для автоматической генерации id CREATE OR REPLACE TRIGGER trig_students BEFORE INSERT ON Students FOR EACH ROW BEGIN SELECT seq_students.NEXTVAL INTO :new.id FROM dual; END;
[edit] Удаление поля
ALTER TABLE SOME_TABLE DROP COLUMN SOME_FIELD
[edit] Версия Oracle
SELECT * FROM v$version; SELECT * FROM product_component_version;
[edit] Текущая дата и время
SELECT CURRENT_DATE FROM DUAL; SELECT SYSDATE FROM DUAL;
[edit] Числовые функции
ABS(N) -- абсолютное значение числа N: SELECT ABS(100) X1, ABS(-100) X2, ABS(-100.2) X3 FROM DUAL; CEIL(N) -- наименьшее целое, большее или равное параметру N: SELECT CEIL(100) X1, CEIL(-100) X2, CEIL(100.2) X3 , CEIL(-100.2) X4 FROM DUAL; FLOOR(N) -- наибольшее целое, меньшее или равное параметру N: SELECT FLOOR(100.22) X1, FLOOR(-100.22) X2, FLOOR(100.99) X3, FLOOR(100.01) X4 FROM DUAL; TRUNC(N, [M]) -- число N, усеченное до M знаков после запятой. Если M не указан, то N усекается до целого: SELECT TRUNC(100.25678) X1, TRUNC(-100.25678) X2, TRUNC(100.99) X3, TRUNC(100.25678, 2) X4 FROM DUAL
[edit] Вывод всех таблиц базы
SELECT * FROM TABS; SELECT TABLE_NAME FROM TABS; SELECT * FROM USER_OBJECTS WHERE OBJECT_TYPE = 'TABLE'; SELECT * FROM DICT; SELECT TABLE_NAME FROM ALL_ALL_TABLES;
[edit] Описание таблицы
DESC USERS; DESCRIBE USERS;
[edit] Отсечение времени
SELECT TRUNC(REGISTRATIONDATE) FROM PERSONCARD;
[edit] Шаблоны LIKE
SELECT * FROM SOME_TABLE WHERE UPPER(SOME_FIELD) LIKE '%ИКС'; -- все значения, заканчивающиеся на ИКС SELECT * FROM SOME_TABLE WHERE UPPER(SOME_FIELD) LIKE '%ИКС%'; -- все значения с подстрокой ИКС SELECT * FROM SOME_TABLE WHERE UPPER(SOME_FIELD) LIKE 'ЕФИ_ОВ'; -- все значения ЕФИ_ОВ -- с любым символом в позиции '_'