MySQL GROUP_CONCAT текстийн урт

GROUP_CONCAT гэж буянтай функц байдаг, их хэмжээний текст group-лэй залгах үед зарим текст таслагддаг, үүнийг дараахь коммандаар шийдлээ. Хэрэв байнга ашиглана гэвэл mysql-н тохиргоонд нь хийж өгөх хэрэгтэй байх.

SET SESSION group_concat_max_len = 1000000;

дараа нь

SELECT id, GROUP_CONCAT( `field`) SEPARATOR "; ") FROM table1 GROUP BY `id`

Та ямар smartphone ашигладаг вэ?

Сайн уу, WordPress, дахин уулзахад таатай байна.

Нэг блог хийх хэрэгтэй болоод, шууд л эргэлзэлгүй wordpress сонгоод суулгалаа. Анх wordpress дээр блог болон вэбсайт хийж вэб хөгжүүлэлттэй танилцаж эхэлсэн тэр үе маань 2006 он. тухайн үед worpdress-ийн 1.5 болон 2.0 дээр ажиллаж байж билээ. Сая би 3.1.3 татаж суулгасан. 2.0-ээс 3.1 хүртэл 9 subversion нэг бүхэл version ба 5 жил болсон байна. Энэ хугацаанд wordpress хөгжсөөр ирсэн ба маш энгийн илүү, уян хатан, маш их feature нэмэгдсэн байна. Анх суулгаж байхдаа бараг 20-оод Plugin суулгадаг байсан. одоо бол 4-5 plugin суулгахад л өргөн хэрэгцээний бүх юм байна. Би бас wordpress.com хэрэглэдэг, 3.1.3 лав wordpress.com дээр байгаа бүх боломж байхгүй байна. Мэдээж wordpress.com түрүүлж хөгжиж байгаа.

Тэгээд ажлын нөхөртэй хальт буу халлаа. Тухайн үед mambo, joomla, wordpress, Php Nuke өөр юу ч байдаг билээ, энэ бүхэн одоо бараг хэрэглээгүй болжээ. Одоо вэб хийвэл django, symfony, ruby-on-rails, ASP.NET MVC /java дээр ямар MVC өргөн хэрэглэгдэж байгааг мэдэхгүй байна /ашигладаг болсон байна. WordPress харин блог хийх багаж хэвээрээ байна. Зөв замаараа хөгжиж байгаа юм удаан хөгждөг юм шиг.

Харин wordpress 3.1 дээр бага зүйлс орчуулагдсан байх шиг. Би бага багаар чөлөө заваараа орчуулах санаатай байна.

Launchpad сайт дээр wordpress translation team нэгдээд орчуулгад оролцож болно шүү.

https://translations.launchpad.net/wordpress/3.0

Хэрэв NULL бол ISNULL, IFNULL, NVL

Датабаз дээр null утга бүхий талбар дээр хэрхэн ажиллах талаар тэмдэглээд авая.

Жишээгээр:

SELECT field_mungu + field_tatvar AS niit_mungun_dun FROM tbl_husnegt WHERE ... GROUP BY ... ORDER BY ....

field_mungu нь NULL эсвэл field_tatvar нь NULL утга бол niit_mungun_dun нь NULL гарна. Харин NULL-ийг 0, эсвэл өөр ямар нэгэн тоон /int, double, decimal/ утгаар сольвол эцсийн үр дүн NULL биш тоо гарна.

SELECT ISNULL(field_mungu,0) + ISNULL(field_tatvar,0) AS niit_mungun_dun FROM tbl_husnegt WHERE ... GROUP BY ... ORDER BY ....

Тоон утгууд дээр ажиллахаас гадна тэмдэгтэн /char, string, varchar, nvarchar, text/ утгууд дээр ч ажиллаж болно. Овгийн эхний үсгийг аваад цэг залгаад нэрийг залган /А. Бат/ хэрэглэх үед овог байхгүй бол NULL гарч ирээд байдаг.  Гэх мэтчилэн ямар ч зүйлд ашиглаж болно.

T-SQL буюу MS-SQL : ISNULL( талбарын_нэр, солих утга )

PL-SQL буюу Oracle: NVL( талбарын_нэр, солих утга )

MySQLIFNULL( талбарын_нэр, солих утга )

Visual Studio дээрээс Oracle руу холбогдох нь (3 алхам)

За ASP.NET / C# / Visual Basic гэх мэт Visual Studio дээрээс Oracle датабаз руу холбох алхамуудыг доор жагсаав.

  • Алхам 1. Oracle connector (ODAC) суулгах
  • Алхам 2. TNS (Transparent Network Substrate) тохиргоо
  • Алхам 3. Visual Studio дээр connection үүсгэх

1. Oracle connector (ODAC) суулгах

Ер нь аливаа датабаз руу холбогдохын тулд холбогч багаж заавал хэрэгтэй. Энэхүү холбох багажыг Oracle-н үндсэн сайтнаас үнэгүй татаж авах боломжтой. Java бол JDBC, Visual Studio бол ODAC 11.2 Release 3 (11.2.0.2.1) with Oracle Developer Tools for Visual Studio татаж аваад суулгана. (Суулгасны дараа PC restart хийвэл найдвартай байх.)

2. TNS тохируулах

Oracle-ийн connecter суулгасаны дараа TNS тохиргоо буюу датабаз руу холбох тохиргоог хийнэ. Ингэхдээ “… product\11.1.0\client_1\Network\Admin” файл доторх tnsnames.ora файл дээр холболтын тохиргоог дараах бичнэ.

Жишээ нь Windows дээр бол C:\Program Files\Oracle\product\11.1.0\client_1\Network\Admin дотор tnsnames.ora файл байгаа. Хэрэв файл байхгүй бол Network\Admin\Sample хавтас доторх tnsnames.ora файлыг хуулж Network\Admin хавтас дотор tnsnames.ora нэртэйгээр хуулна.
Холболтын тохиргоог дараах форматаар бичнэ.

data_source_ner1=
 (DESCRIPTION=
 (ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))
 (CONNECT_DATA=(SERVICE_NAME=database_ner))
 )

data_source_ner2=
 (DESCRIPTION=
 (ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))
 (CONNECT_DATA=(SERVICE_NAME=database_ner2))
 )

3. Visual Studio

Жишээ нь ASP.NET дээр бол ер нь бол web.config дээр бичихэд болно.

<connectionStrings>

дотор/дараа

<add name="ConnectionString_ner1" 
connectionString="DATA SOURCE=data_source_ner1;USER ID=user_ner;PASSWORD=nuuts_ug; PERSIST SECURITY INFO=True;"  
providerName="Oracle.DataAccess.Client" />

гэж бичээд гүйцээ.

ASP.NET биш C# / Visual basic эсвэл найдвартай нь дээр гэж үзвэл (бүр эсвэл анх удаа) бол форм эсвэл хуудас дээрээ Toolbox хэсгээс SqlDataSource чирч байрлуулна. Configure Data source сонгоод Add New connection товч дараад Oracle Database гэж сонгоод Continue дарна. Add Connection нэртэй цонх гарч ирэхэд Data Source гэсэн хэсгээс Data_source_ner1 сонгоод Use a specific user name and password сонгоод user_ner, nuuts_ug бөглөнө. За тэгээд Test Connection дарахад холбогдож болж байгаа эсэхийг үзүүлнэ. Тэгээд л Ok дараад, connection string-ээ хадгалаад болоо. (Хэрэв ямар нэгэн алдаа гарвал үзүүлсэн алдааны дагуу алдааг засна даа.) Ингэж тохируулахад ASP.NET бол автоматаар web.config дээр connection string биччигдэх буйза.

Oracle дата бааз руу холбох тохиргоо

Датабаз дээр trigger бичих нь: MsSQL ба MySQL

MySQL, MSSQL датабазын хүснэгт дээр trigger бичих нь.

MSSQL / T-SQL

Insert Trigger

CREATE TRIGGER trigger_insert1
ON table1
FOR INSERT
AS
BEGIN
UPDATE table2
    SET field_total = field_total + inserted.field_name1
END

Update Trigger

CREATE TRIGGER trigger_update1
ON table1
INSTEAD OF UPDATE
AS
BEGIN
SELECT t1.*, i.* FROM table1 t1
    JOIN inserted i ON t1.field_id = i.field_id
END

Delete Trigger

CREATE TRIGGER trigger_delete1
ON table1
FOR DELETE
AS
BEGIN
INSERT INTO logTableName
    SELECT * FROM deleted
END

Trigger Event

deleted – DELETE trigger үед дата нь deleted гэсэн хүснэгт хэлбэрээр байна.
inserted – INSERT, UPDATE trigger үед дата нь inserted гэсэн хүснэгт хэлбэрээр байна.

Trigger Time

FOR DELETE – Устгахаас өмнө
FOR INSERT – Нэмэхээс өмнө
FOR UPDATE – Засахаас өмнө
FOR INSERT, UPDATE – Нэмж, Засахаас өмнө

AFTER DELETE – Устгасаны дараа
AFTER INSERT – Нэмсэний дараа
AFTER UPDATE – Зассаны дараа
AFTER INSERT, UPDATE – Нэмж, Зассаны дараа

INSTEAD OF DELETE – Устгахын оронд
INSTEAD OF INSERT – Нэмэхийн оронд
INSTEAD OF UPDATE – Засахын оронд
INSTEAD OF INSERT, UPDATE – Нэмж, Засахын оронд

MySQL

Insert Trigger

CREATE TRIGGER trigger_insert1
BEFORE INSERT
ON table1
FOR EACH ROW
BEGIN
UPDATE table2
    SET field_total = field_total + NEW.field_name1
END;

Update Trigger

CREATE TRIGGER trigger_update1
AFTER UPDATE
ON table1
FOR EACH ROW
BEGIN
UPDATE table2
    SET field_total = field_total + NEW.field_name1
END

Delete Trigger

CREATE TRIGGER trigger_delete1
AFTER DELETE
ON table1
FOR EACH ROW
BEGIN
	INSERT INTO log_table_1 (id, field1, field2, field_date)
		values( old.id, old.field1, old.field2, NOW() );
END;

Trigger Event

OLD – DELETE trigger үед дата нь OLD гэсэн хүснэгт хэлбэрээр байна.
NEW – INSERT, UPDATE trigger үед дата нь NEW гэсэн хүснэгт хэлбэрээр байна.

Trigger Time
BEFORE DELETE – Устгахаас өмнө
BEFORE INSERT – Нэмэхээс өмнө
BEFORE UPDATE – Засахаас өмнө

AFTER DELETE – Устгасаны дараа
AFTER INSERT – Нэмсэний дараа
AFTER UPDATE – Зассаны дараа

Хандалтын статистик: Гар утаснаас

Сүүлийн үед бүх л гар утаснууд интернет орох боломжтой болсон. Заавал iPhone, HTC, янз бүрийн smartphone, pocket pc гэлтгүй энгийн нэг дундаж, дунджаас доогуур ангиллын гар утаснууд GRPS, EDGE-ээр интернэт төвөггүй орж байна. Үүнийгээ дагаад вэбсайтууд ч гэсэн гар утасанд зориулсан хувилбаруудаа хөгжүүлж сайжруулж халамжилж байна. Gmail, yahoo mail, twitter, facebook гээд бүгд гар утасны жижиг дэлгэцэнд зориулсан, ajax-гүй,энгийн интерфэйс бүхий хувилбартай байх жишээтэй. Гар утасанд дагалдаж ирэх Вэб браузераар эсвэл Opera Mini/Mobile суулгаснаар мэйл шалгаж, facebook орж, twitter-дэх /жиргэх/ боломжтой юм. Ингээд Монголд болон ер нь дэхийд ямар ямар гар утаснаас интернэт орж байгааг сонирхосон юм.

Дэлхий дахинд: Гар утасны вэб браузер

Монголд: Гар утасны вэб браузер

Дэлхий дахинд: Компьютерын вэб браузер

Монголд: Компьютерын вэб браузер

Chrome хүчтэй төрөн гарч ирж байна, Opera, Safari зэргийг ардаа охисон байна.

PostgreSQL суулгасны дараа root (postgre) нууц үг солих нь

Би Ubuntu дээр шинэков хүн. Найзынхаа зөвлөснөөр apt-get -ээр postgresql-8.4 суулгав. Тэгээд PSQL комманд ашиглан датабаз руугаа орох гэсэн чинь орж чаддаггүй. Тэгээд default нууц үг байдаг юм байх гэж бодоод интернэтээс хайсан чинь тийм юм байдаггүй. Харин postgresql-д зориулсан системийн хэрэглэгчийг нь ашиглан нууц үгийг нь сольж болдог юм байна гэдийг мэдлээ.

  1. postgres” гэх system хэрэглэгчээр нэвтрэн орно. PostgreSQL нь систем дээр суух үед энэ system user автоматаар үүснэ. Хэрэв “postgres” болоход нууц үг асууж байгаа бол sudo su гэж root болж байгаад нууц үгийг нь солино.
  2. Postgres” систем хэрэглэгч болсоны дараа postgresql датабаз (PSQL) руу нэвтрэн орно. Ийн нэвтрэн ороход “postgres” нь postgresql-д зориулсан систем хэрэглэгч тул нууц үг асуухгүй.
  3. Postgresql-ийн датабаз хэрэглэгч (database user) болох “postgres“-гийн нууц үгийг сольно. (Дахиад л postgres, гэхдээ энэ бол датабаз хэрэглэгч, адилхан нэртэй, PostgreSQL-н root хэрэглэгч гэсэн үг.)
  4. Postgresql-(PSQL)-ээс гараад, postgres (su postgres) хэрэглэгчээс гарна.
  5. PSQL коммындаыг ашиглан postgreSQL рүү нэвтрэн орж туршиж болно.

$ su postgres ( <- postgres болох )
$ psql -d template1 ( <- PostgreSQL рүү postgres систеийн хэрэглэгчээр нэвтрэх )
=# ALTER USER postgres WITH PASSWORD ‘ШинэНууцҮг’; ( <- Нууц үг солих )
=# \q (<- psql-ээс гарах)
$ exit (<- postgres системийн хэрэглэгчээс гарах)
$ psql -h localhost -U postgres ( <- PostgreSQL рүү postgres датабаз хэрэглэгчээр нэвтрэх)

Хэрэв postgres системийн хэрэглэгчийн нууц үг солих хэрэгтэй бол:

$ sudo passwd postgres

Алдарт сайтууд анх гарч ирэхдээ…

Хааяа хааяа сонин сонин инээдтэй ч гэмээр юмтай тааралдах юм.  Аливаа сайтууд анх гарч ирэхдээ ямархуу царайтай байсныг хардаа. Эндээс харахад CSS, интерфейс, дизайн гэдэг нь ямархуу чухал болоод сайтыг хэрхэн амьдруулдаг болох нь харагдана.  Дизайндаа сайн болох юмсан тэ, эдгээр сайтууд одоо ямар байгааг хар л даа тэ.

Blogger.com
first-blogger
Facebook.com
first-facebook
Flickr.com
first-flickr
Google.com
first-yahoo
Wikipedia.org
first-wikipedia
Yahoo.com
first-yahoo
Youtube.com
first-youtube

telegraph.co.uk

Дурын мөр SELECT хийх

MYSQL:

SELECT багана_нэр FROM хүснэгт_нэр ORDER BY RAND() LIMIT 10

Oracle:

SELECT багана_нэр FROM ( SELECT column FROM хүснэгт_нэр ORDER BY dbms_random.value ) WHERE rownum <= 10

PostgreSQL:

SELECT багана_нэр FROM хүснэгт_нэр ORDER BY RANDOM() LIMIT 10

MSSQL:

SELECT TOP 10 багана_нэр FROM хүснэгт_нэр ORDER BY NEWID()

Oracle жаахан тиймэрхүү, тэрнээс mysql, postgresql энэ тэр амархан байгааз, тэр mssql-н NEWID() функц нь 36-н урттай unique стринг generate хийдийн, ер нь бол стринг ID болгон хэрэглэдэг л дээ.

StatCounter – Browser statistics

Хэдүүлээ Internet Explorer -ийг version нь 7-оос доош бол устгадаг вирус зохиогоод нэтээр өсгөе тэгэх үү?

Одоо нэг CSS  + javascript  хольсон юм хийхээр тестлэдэг browser нь нэмэгдээл байх юм тээ. IE 6, IE7, IE8, Chrome, Opera, Safari, Firefox гээд л. Тэс хөндлөн зөрөөд байгаа юм байхгүй л дээ, жижиг сажиг зүйлс. Харин Internet Explorer 6 дээр бол тэс өөр үр дүн харагдах тохиолдол бас байдаг шүү. 

Тэгээд statcounter гээд сайтаас 2009 оны 1-р сарын 1-нээс 4-р сарын 27-ныг хүртэлх статистик харлаа нэг иймэрхүү байна. Гэхдээ энэ бол нэг л сайт. Google Analytics уг сайт шиг нээлттэй report гаргадаг бол тээ.

Дэлхий дахинд

statcounterglobal_world

  1. IE 7.0 – 34.45%
  2. Firefox 3.0  – 26.1%
  3. IE 6.0 – 23.37% 

Умард Америкт

statcounterglobal_northamerica

  1. IE 7.0 – 49.39%
  2. Firefox 3.0 – 21.6%
  3. IE 6.0 – 15.83%

Европт

statcounterglobal_europe

  1. IE 7.0 – 35.21%
  2. Firefox 3.0 – 33.99%
  3. IE 6.0 – 12.56%

Монголд

statcounterglobal_mongolia

  1. Firefox 3.0 – 43.77%
  2. IE 6.0 – 28.3% 
  3. IE 7.0 – 15.65%

http://gs.statcounter.com

Гэхдээ нэг үеэ бодволд гайгүй болжээ, Internet Explorer 6 чинь 70 гаран хувь энэ тэр гардаг байсан ш д

Нууц үг үү эсвэл нэвтрэх үг үү?

singles.org, phpBB, myspace.com 3 сайтын хамгийн түгээмэл нууц үгүүдийн жагсаалттай танилцана уу. Нууц үг тань нууц үг байна уу эсвэл нэвтрэх үг байна уу? Бас л бодмоор айн. Ер нь бол Password тань нууц үг байх ёстой шүү. Дан ганц үсэг эсвэл тоо биш, тоо үсэг тусгай тэмдэгтийн нийлбэр байвал нууц үг байж чадна. Ядаж нэг тэмдэгт, нэг тоо, нэг том үсэг : G.Sainbayar_2009.

Тусгай тэмдэгт: доогуур зураас, дундуур зураас, цэг энэ тэр байвал зохимтой.

Singles.org хамгийн түгээмэл нууц үг

%

Давталт

Нууц үг

1

1.02

417

123456

3

0.41

168

password

5

0.2

83

12345678

12

0.13

51

1234567

18

0.1

39

12345

25

0.09

35

1234

phpBB хамгийн түгээмэл нууц үг

%

Давталт

Нууц үг

1

3.03

868

123456

2

2.19

628

password

3

1.45

414

phpbb

4

0.94

269

qwerty

9

0.51

145

test

10

0.43

124

123

15

0.31

88

111111

16

0.31

88

123456789

22

0.22

62

asdf

29

0.16

46

pass

32

0.15

44

aaaaaa

39

0.14

39

1

Myspace хамгийн түгээмэл нууц үг

%

Давталт

Нууц үг

1

0.24

112

password1

2

0.16

77

abc123

3

0.12

58

password

7

0.08

38

myspace1

13

0.05

23

123456

16

0.05

22

123abc

18

0.04

20

qwerty1

36

0.03

14

123456a

Дээрх 3 сайтын хамгийн түгээмэл нууц үг

Rank

%

Давталт

Нууц үг

1

1.12

1308

123456

2

0.73

854

password

3

0.35

414

phpbb

4

0.25

294

qwerty

8

0.17

195

1234

9

0.16

187

abc123

11

0.13

147

test

13

0.11

133

123

23

0.08

95

123456789

33

0.07

76

123123

37

0.06

71

asdf

48

0.05

59

000000

65

0.04

49

1111

72

0.04

48

pass

73

0.04

48

aaaaaa

90

0.04

44

testing

95

0.04

42

1

143

0.03

33

asdfasdf

235

0.02

25

qwert

Source: blog.jimmyr.com

113 Spams in 2 days

spam box

spam box

2 хоногт л 113 spam  ингэж ирж байна. Akismet блоклоод блоклоод. Гэхдээ бүгд нэг газраас ирж байх шиг байна. Та нарын блог яаж байна? Би эсвэл хаа нэгтээ болохгүй газар бүртгүүлчихсэн юм болов уу? Comment-оо хэд хоног  хаадаг ч юм уу?

If browser were car

browser-car1a1

browser-car1b1

browser-car21

browser-car31

Тиймээ, extension-гүй бол галт үнэг сайн биш, аа гэхдээ сайжруулж байна гээд extension-ээр дүүргэчив, тэгүүл эсрэгээрээ performance муудаж машины нөөц их иднэ.

Дуурь бол нээрээ л авсаархан бас гайгүй хурдан. Зурагт өгүүлсэн шиг янз бүрийн л feature-тэй (widget-ээс авахуулаад), гэхдээ би ихэнхийг нь ашигладаггүй.

Internet explorer 7 гарсан ч гэсэн бас 8 нь гарах гэж байгаа ч гэсэн статистик дээр хамгийн их count хийсэн browser хэвээрээ л байна. Орчин үеийн web 2.0 болон орчин үеийн стандартуудыг (rss, css, bla bla bla) байхгүй үед зохиогдсон болохоор яаж ажиллаж хэрхэн зохицох нь тодорхой.

Chrome-оо чиний тухай ярих цаг нь болоогүй.

Installs will be in flash disk next year

Өчигдөр гэртээ шүүгээгээ цэвэрлэж байгаад нэг CD-ны box нээтэл янз бүрийн install дискүүд байна. Ёстой дээр үеийн программууд байна шүү. Adobe Reader 5.0, Firefox 1.0, Pagemaker 6.0, Open Office 1.0…. Програм хангамжууд ямар хурдан хөгжиж байнаа. Version-ны дугаар бүхэл бүхлээр зөрсөн төдийгүй зарим нь ашиглалтнаас гарч түүнийг орлох сайн програм гарсан байх жишээтэй. (Pagemaker -> InDesign). Install CD бичихээ больё доо тээ, тэртээ тэргүй хэрэггүй болчих юм чинь, удаж байж шинэчлэгддэг програм хангамжуудыг л шарж байя, жишээ нь bootable Windows XP SP2, MS-Offie 2007 гэх мэт. Тэгээд бусад програм хангамжуудыг нь шаардлага гарсан тухай үед нь татаж аваад л хэрэглэе, одоо тэртээ тэргүй бараг хүн болгонд л гига-гын флаш байна ш д. Миний хувьд CD-нд бичих шаардлага байхгүй болж байна. 

Нээрээ он гарахаас өмнө хүн амьтанд өрөө өгье, онд өртэй орвол тэр жилдээ өртэй байдаг энэ тэр үгэнд итгэсэн биш, шинэ оноо санхүүгийн шинэ төлөвлөгөөтэй эхлэе. Happy new year.

%d bloggers like this: