MySQL & SQL Server

10 отговора 637 прегледа
#1

MySQL & SQL Server

Zdraveite,
az otskoro se interesuvam ot bazi danni.Svalih si ot internet MySQL i veche go porazuchih. Mojete li da mi raziasnite kakva e razlikata mejdu nego i SQL Server (principno). Iskah da si downloadna i SQL Server-a,obache e mnogo goliam i niama smisal. Interesuvam se ima li niakakva savmestimost mejdu dvete spomenati programi, zashtoto zabeliazah che imat razlichia v komandite.
Imam i oshte drugi vaprosi,znam che sa elementarni,no shte sam mnogo blagodaren ako niakoi me osvetli po tezi. Ako mi posochite sait ili kniga otkadeto moga da naucha neshto po tezi vaprosi shte sam vi mnogo zadaljen.

Отговор
в отговор на zelenia #2

Re: MySQL & SQL Server

Vseki SQL server si ima razliki zatova i v knigite se govori za SQL-dialekti

Mai nai-dalech ot ANSI SQL-a e Oracle s PLSQL

Inache na MySQL mu lipsvat: sub-queries (oshte narichani nested queries), trigeri, stored procedures
Za smetka na tova e pone 5 pati po burz ot vseki drug SQL server (na edna mashina)

Oficialnia BG mirror e na
mysql.online.bg - http i ftp
t.e. pri men de :) Ta za vaprosi i komentari tuk sam

Linux is like a wigwam - No Windows, No Gates, Apache inside
Отговор
в отговор на salle #3

две питанки са

1. в mysql конзолата това работи:
select (@a:=2); select (@b:=@a+5);
обаче като го пратя към mysql-a през собствен клиент ми дава грешката:
"... near '; select (@b:=@a+5)' at line 1"

Toва значи ли, че трябва сам да си парсвам такъв стринг?

2. (по-важното) Относно правата на mysql user-ите:
С тоя nekafuser мога да си селектвам, изтривам и т.н. навсякъде, освен в 'mysql', въпреки че ужким има права само за една таблица? Защо?

show grants for nekafuser@localhost;

| GRANT USAGE ON *.* TO 'nekafuser'@'localhost' IDENTIFIED BY PASSWORD xxx |
| GRANT SELECT, INSERT, UPDATE, DELETE ON testdb.testtbl TO 'accputter'@'localhost' |


НАЙ-добрия клуб ТУК
Отговор
в отговор на salle #4

Re: MySQL & SQL Server

SALLE, много ти благодаря за отговора, а сега искам да ти задам още няколко въпроса,върху които си блъскам главата:
1.При създаване и работа с бази данни под MySQL имам ли нужда от друг език за програмиране( например Oracle)?
2.Под MySQL съм създавал таблици и малки бази данни( в MSDOS Prompt), но това както и работата с тях става много по-трудно в сравнение примерно с MS ACCESS. Нормално ли е това или аз нещо бъркам?
3.Може ли база данни създадена под MySQL да се ползва от потребител, който не е наясно с програмирането на бази данни(т.е. не може да използва SELECT, UPDATE, DELETE, ADD и т.н.)? Имам предвид дали няма възможност да се използва някакъв по-приветлив интерфейс?
Благодаря ти предварително!

Отговор
в отговор на 3eлeния #5

Re: MySQL & SQL Server

1. Нито Oracle нито MySQL са езици за програмиране
Като работиш с MS Word пишеш на Български, Английски и т.н. а не на език Word нали :)
И двата както и всеки SQL Server (SQL Server е понятие както и Компютър и не означава САМО MS SQL Server) използват варианти на SQL или Диалекти както им викат ама това вече го писах
Ако се почетеш малко теория, което силно ти препоръчвам SQL всъщност е реализация на ДВА езика за бази данни DDL и DML съответно Data Definition Language и Data Management Language

При всички положения обаче SQL е интерфейсен език между Клиент-а и Сървъра. А под Клиент обикновено се разбира се разбира не човек а програма. Обикновено SQL сървърите се явяват back-end в 3-layer приложения server-middleware-client. Точно както при Web: SQL server (MySQL, Oracle, MSSQL и т.н.) - Web Server(Apache+PHP, Apache+cgi, IIS+APS и т.н.)-Browser
Така, че свикни с мисълта, че от гледна точка на базата данни "Клиент" обикновено е програма
Надявам се, че това отговаря на 3-тия ти въпрос

2. Това е един доста спорен въпрос. Аз лично след години използване на GUI интерфейси и много мишка все по-често предпочитам текстови конзоли и много писане.
Знам, че ще прозвучи странно, но графичните средства за работа с бази данни всъщност СКРИВАТ структурата до голяма степен. Забележи, че имам предвид структурата на приложението а не само таблиците.

3. Още нещо по този въпрос при това изключително важно и доста често пропускано. В теорията на БД се дефинират 3 Модела На Данните - всъщност са 3 Нива
System Model - Къде и как се съхраняват ФИЗИЧЕСКИ данните (Файлове, Дискове ...)
Administrative Model - Истинската структура на данните - всъщност тя е логическа. Таблици, индекси и т.н. Това е, което вижда Администратора на базата данни
User Model - Това което виждат "Клиентите"
Точно тук е препъни-камъка. В много случаи това се пропуска а точно в MySQL има и известни пречки по въпроса. User Model-а МОЖЕ да бъде специфичен за всеки User. Т.е. на всеки User (или група) се предоставя набор от таблици и т.н. който се различава от истинската структура.
Това е Начина По Който User-ite виждат базата данни и той ПО ДЕФИНИЦИЯ е различен. Това, че в много случаи клиентите виждат нещата така както те са е частен случай.
Нарочно наблягам на този факт защото много често се пропуска.

Така, че използването на SELECT и т.н. SQL изобщо не е работа на крайния клиенто а на програмиста.

Последна забележка
SQL НЕ Е ЕЗИК ЗА ПРОГРАМИРАНЕ
Работата с Релационни бази данни е работа с МНОЖЕСТВА и SQL всъщност е дефиниция на ьлгебра за работа с множества

Успех

Linux is like a wigwam - No Windows, No Gates, Apache inside
Отговор
в отговор на Xypodilec #6

Re: ??? ??????? ??

2. Лоша работа ако е така
Провери ли какво има в mysql.user, myslq.db, mysql.tables_priv
?
И за коя томно версия става дума? Не съм чувал досега за нещо подобно.

1. Не знам какво разбираш под собствен клиенто, но някои API-та (за PHP съм сигурен) не позволяват да изпращаш повече от един ред.
т.е. ; е невалиден символ

@var са валидни за текущата сесия което включва и pconnect в някои случаи така, че не е проблем да ги изпилзваш в 2 последователни заявки
Същото се отнася и за temorary table

Linux is like a wigwam - No Windows, No Gates, Apache inside
Отговор
в отговор на salle #7

Re: ??? ??????? ??

** За привилегиите:
проверих таблиците -- нищо излишно няма:
user: всичко е N
db: usera изпбщо го няма
tables_priv: Select,Insert,Update,Delete -- само за зададената база и таблица

версията:
./mysql --version
./mysql Ver 11.15 Distrib 3.23.37, for pc-linux-gnu (i686)

Знам, че има и .39, но не би трябвало да чак толкова късно да е оправен подобен бъг. Правата не са наред нито от mysql конзолата, нито през PHP скрипт (и в двата случая се логвам като не-root).


** За клиента - "C" клиент е. Нищо де, явно самата конзола си ги парсва двете заявки. Не е чак толкова на зор.

НАЙ-добрия клуб ТУК
Отговор
в отговор на Xypodilec #8

Re: Привилегиите

Лоша работа - нещо определено не е наред
Започнах с 3.23.6 и отгогава насам съм минал през всичките, но такъв проблем не съм имал

Нещо при теб е

Linux is like a wigwam - No Windows, No Gates, Apache inside
Отговор
в отговор на salle #9

Благодаря,

ще го мъча, няма как.

BTW, честита кирилица

НАЙ-добрия клуб ТУК
Отговор
в отговор на Xypodilec #10

Re: Благодаря,

Ami dokolkoto si spofnqm, fklu4itelno i na C, ; e nefaliden znak.

rgdz
curly
Отговор
в отговор на salle #11

Re: MySQL & SQL Server

Здрасти, Salle,здравейте всички,
искам да питам още някои неща:
1.Какъв е синтаксисът за изпълнение на команди от MySQL зададени в BATCH-файл? И в коя директория трябва да се намира този файл? Аз създадох файл с Notepad и го записах в поддиректорията Bin на MySQL, но нещо май ми е грешен синтаксисът при задаване в MySQL на файла с командите(въпреки че се водех по Manual-a на MySQL). На прав път ли съм?
2.Успях да накарам MySQL да попълва таблица с данните от текстов файл, но при това се разместват записите, а на някои места даже липсват. Как трябва да отделя данните по всяка колона за да се отразяват в таблицата така както аз искам?

Отговор