Thứ Bảy, 17 tháng 5, 2014

Hướng dẫn lập trình cơ bản với Android - Bài 2

Hi all,
Trong bài 1 mình đã giới thiệu sơ lược về các thành phần cơ bản của Android cũng như việc sử dụng XML để lập trình ứng dụng Android. Trong bài này mình sẽ giới thiệu thêm về Android Manifest và đi sâu hơn về vấn đề làm việc với View.

Android Manifest
Trong khung Package Explorer, ở phía dưới thư mục res, bạn sẽ thấy 1 file có tên là AndroidManifest.xml. Mỗi ứng dụng đều cần có AndroidManifest.xml để mô tả những thông tin quan trọng của nó cho hệ thống Android biết. Let's look closer:
Mã:
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="at.exam"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".Example"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
    <uses-sdk android:minSdkVersion="3" />
</manifest>
Cụ thể những công việc mà AndroidManifest.xml thực hiện:
- Đặt tên cho Java package của ứng dụng.
- Mô tả các thành phần (component) của ứng dụng: activity, service, broadcast receiver hoặc content provider.
- Thông báo những permission mà ứng dụng cần có để truy nhập các protected API và tương tác với các ứng dụng khác.
- Thông báo những permission mà các ứng dụng khác cần có để tương tác với ứng dụng hiện thời.
- Thông báo level thấp nhất của Android API mà ứng dụng cần để chạy. (Android 1.0 là level 1, 1.1 là level 2, 1.5 level 3, 1.6 level 4 và 2.0 là level 5).
...
Hãy xem thử file AndroidManifest.xml của chương trình TooDo mình đang xây dựng:
Mã:

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="android.at"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity 
                android:name=".TooDo"
                android:screenOrientation="landscape"
                android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
                android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".WorkEnter">
        </activity>
        <receiver android:name=".AlarmReceiver">
        </receiver>
    </application>
    <uses-sdk android:minSdkVersion="3" />
    <uses-permission android:name="android.permission.VIBRATE"/>
</manifest>

Main Activity của chương trình Too Do này là activity TooDo. Ngoài ra mình còn có 1 Activity khác có tên là WorkEnter để cho phép nhập vào thời gian và nội dung công việc. 1 Broadcast Receiver có tên là AlarmReceiver để nhận alarm gửi tới trong intent. Khi alarm được nhận sẽ có âm thanh và rung (vibration). Tất cả công việc sẽ được viết trong code, nhưng bắt buộc bạn phải khai báo các thành phần có trong ứng dụng vào AndroidManifest nếu muốn chương trình hoạt động. Tương tự, set permission để truy nhập camera, internet, đọc contact... cũng đều phải khai báo trong AM. Từ khóa screenOrientation cho phép thiết lập giao diện khi vào ứng dụng theo chiều dọc (portrait - mặc định) hay ngang (landscape), theme cho phép sử dụng style có sẵn của android là full-screen (ko có thanh status bar nữa).
Intent filter là bộ lọc dùng để giới hạn các intent được sử dụng trong activity hay receiver...
Mã:
<intent-filter>
        <
action android:name="android.intent.action.VIEW"/>
        <
category android:name="android.intent.category.DEFAULT"/>
        <
category android:name="android.intent.category.BROWSABLE"/>
        <
data android:scheme="http" android:host="www.google.com" android:path="/m/products/scan"/>
      </
intent-filter>
Bộ lọc trên chỉ cho phép intent mở internet với đường dẫn định nghĩa sẵn (Install Barcode Scanner)
Ok, hi vọng mọi người đã nắm được chức năng cơ bản cũng như cách sử dụng Android Manifest

Working with View
Trong bài 1 mình đã giới thiệu qua cách sử dụng Edit Text và Text View. Thực chất các View còn lại cũng có cách sử dụng tương tự, bạn sẽ kết hợp nhiều View khác nhau để cho ra giao diện mình mong muốn. Ở đây mình sẽ đề cập nhiều tới List View (theo ý kiến mình là View khó sử dụng nhất).

Hướng dẫn lập trình cơ bản với Android - Bài 1

Yêu cầu kiến thức cho lập trình Android:
Để lập trình android, mình nghĩ mọi người chỉ cần kiến thức java căn bản là hoàn toàn ok. Căn bản ở đây có nghĩa là hiểu được thế nào là class, package, biết ý nghĩa của các từ khóa như public, private, protected,... thành thạo các lệnh cơ bản như if, for(), switch(), while(), ... biết sd các lệnh như Integer.parseInt() hay String.valueOf()... Nên có thêm kiến thức về gói java.util vì đây là gói hỗ trợ nhiều lớp rất mạnh được sử dụng trên mọi nền, ngoài ra các gói như java.io, java.net... cũng được recommended 

Các kiến thức về các gói lập trình cho desktop như java.awt, java.swing hoàn toàn không cần thiết (bản thân mình cũng chưa sd cái này bao giờ, nhảy vào học java là học J2ME luôn), hay các gói của J2ME cũng vậy :) Lập trình Android tuy cũng là lập trình di động, nhưng các điện thoại sử dụng hđh Android có cấu hình rất mạnh (Nexus One có VXL lên tới 1Ghz), vì vậy 2 nền tảng Android và J2ME cũng rất khác nhau. Android có những gói riêng hỗ trợ lập trình cho nó và không yêu cầu khắt khe về việc tối ưu code như J2ME. Thật đáng tiếc vì J2ME mình học ko ứng dụng được mấy vào lập trình Android (tuy nhiên 1 số kỹ thuật cơ bản cho lập trình game 2D như Sprite, double buffering, Tile... thì vẫn ko hề phí phạm chút nào 

Cài đặt Android để lập trình:
Để lập trình Android thì mỗi bộ SDK của Google là không đủ, bạn còn cần tích hợp nó vào một IDE như Eclipse. Anh Giáp đã có 2 bài hướng dẫn rất chi tiết về cài đặt Android trong Eclipse cũng như Netbeans, nhưng theo mình mọi người nên sử dụng Eclipse hơn vì nó có nhiều tính năng hỗ trợ lập trình Google, còn Netbeans thì plugin cho Android vẫn chưa hoàn thiện
Eclipse
Netbeans
Tiện thể mình nói luôn, mình học Android theo 2 cuốn Professional Android Application Developmentvà Unlocking Android. Cả 2 cuốn đều dành cho beginner nhưng cuốn đầu code nhiều, giải thích ít, cuốn thứ 2 giải thích rõ ràng hơn. Nếu có ai có ý định tham khảo thì nên đọc cuốn UA trước để hiểu rõ hơn Android, sử dụng cuốn PAAD trong việc tham khảo các đoạn code cho lập trình.

Understanding Android Application:
Việc hiểu được các thành phần (component) tạo nên một ứng dụng Android là rất cần thiết cho việc lập trình. Các thành phần này được chia làm 6 loại bao gồm:
1.Activity: hiểu một cách đơn giản thì Activity là nền của 1 ứng dụng. Khi khởi động 1 ứng dụng Android nào đó thì bao giờ cũng có 1 main Activity được gọi, hiển thị màn hình giao diện của ứng dụng cho phép người dùng tương tác.
2.Service: thành phần chạy ẩn trong Android. Service sử dụng để update dữ liệu, đưa ra các cảnh báo (Notification) và không bao giờ hiển thị cho người dùng thấy.
3.Content Provider: kho dữ liệu chia sẻ. Content Provider được sử dụng để quản lý và chia sẻ dữ liệu giữa các ứng dụng.
4.Intent: nền tảng để truyền tải các thông báo. Intent được sử dụng để gửi các thông báo đi nhằm khởi tạo 1 Activity hay Service để thực hiện công việc bạn mong muốn. VD: khi mở 1 trang web, bạn gửi 1 intent đi để tạo 1 activity mới hiển thị trang web đó.
5.Broadcast Receiver: thành phần thu nhận các Intent bên ngoài gửi tới. VD: bạn viết 1 chương trình thay thế cho phần gọi điện mặc định của Android, khi đó bạn cần 1 BR để nhận biết các Intent là các cuộc gọi tới.
6.Notification: đưa ra các cảnh báo mà không làm cho các Activity phải ngừng hoạt động.

Activity, Service, Broadcast Receiver và Content Provider mới là những thành phần chính cấu thành nên ứng dụng Android, bắt buộc phải khai báo trong AndroidManifest (tham khảo bài 2 có giới thiệu đầy đủ về file này).

Understanding Android Application Life Cycle:
Android có cơ chế quản lý các process theo chế độ ưu tiên. Các process có priority thấp sẽ bị Android giải phóng mà không hề cảnh báo nhằm đảm bảo tài nguyên.
1.Foreground process: là process của ứng dụng hiện thời đang được người dùng tương tác.
2.Visible process: là process của ứng dụng mà activity đang hiển thị đối với người dùng (onPaused() của activity được gọi).
3.Service process: là Service đang running.
4.Background process: là process của ứng dụng mà các activity của nó ko hiển thị với người dùng (onStoped() của activity được gọi).
5.Empty process: process không có bất cứ 1 thành phần nào active.
Theo chế độ ưu tiên thì khi cần tài nguyên, Android sẽ tự động kill process, trước tiên là các empty process.

Android Activity Life Cycle:
Như mình đã giới thiệu ở trên , Actitvity là thành phần quan trọng nhất và đóng vai trò chính trong xây dựng ứng dụng Android. Hệ điều hành Android quản lý Activity theo dạng stack: khi một Activity mới được khởi tạo, nó sẽ được xếp lên đầu của stack và trở thành running activity, các Activity trước đó sẽ bị tạm dừng và chỉ hoạt động trở lại khi Activity mới được giải phóng.

Activity bao gồm 4 state:
- active (running): Activity đang hiển thị trên màn hình (foreground).
- paused: Activity vẫn hiển thị (visible) nhưng không thể tương tác (lost focus). VD: một activity mới xuất hiện hiển thị giao diện đè lên trên activity cũ, nhưng giao diện này nhỏ hơn giao diện của activity cũ, do đó ta vẫn thấy được 1 phần giao diện của activity cũ nhưng lại không thể tương tác với nó.
- stop: Activity bị thay thế hoàn toàn bởi Activity mới sẽ tiến đến trạng thái stop
- killed: Khi hệ thống bị thiếu bộ nhớ, nó sẽ giải phóng các tiến trình theo nguyên tắc ưu tiên. Các Activity ở trạng thái stop hoặc paused cũng có thể bị giải phóng và khi nó được hiển thị lại thì các Activity này phải khởi động lại hoàn toàn và phục hồi lại trạng thái trước đó.

Biểu đồ miêu tả Activity state
Vòng đời của Activity:
- Entire lifetime: Từ phương thức onCreate( ) cho tới onDestroy( )
- Visible liftetime: Từ phương thức onStart( ) cho tới onStop( )
- Foreground lifetime: Từ phương thức onResume( ) cho tới onPause( )

Khi xây dựng Actitvity cho ứng dụng cần phải viết lại phương thức onCreate( ) để thực hiện quá trình khởi tạo. Các phương thức khác có cần viết lại hay không tùy vào yêu cầu lập trình.

XML trong Android:
Không giống như lập trình java thông thường, lập trình android ngoài các lớp được viết trong *.java còn sử dụng XML để thiết kế giao diện cho ứng dụng. Tất nhiên bạn hoàn toàn có thể thiết kế 1 giao diện như ý muốn mà không cần tới bất cứ 1 dòng XML nào, nhưng sd XML sẽ đơn giản công việc đi rất nhiều. Đồng thời sd XML sẽ giúp việc chỉnh sửa ứng dụng sau này trở nên dễ dàng.

Về nguyên tắc, khi lập trình ứng dụng ta thiết kế giao diện bằng XML và cài đặt các xử lý khi tương tác với giao diện trong code.

Thứ Sáu, 16 tháng 5, 2014

Windows Phone 8.1


Sau gần 1 tháng được phát hành, các thiết bị chạy Windows Phone 8.1 Preview for developers hôm nay đã nhận được bản cập nhật đầu tiên. Theo phó chủ tịch kiêm quản lý chương trình Windows Phone - Joe Belfiore thì bản cập nhật này sẽ sửa nhiều lỗi và đặc biệt khắc phục vấn đề về thời lượng pin giảm nhanh.

Ngay từ bây giờ, những ai đang dùng WP8.1 Preview có thể vào Settings > Phone update > Check for update để kiểm tra và cài đặt bản cập nhật mới. Từ phiên bản OS 8.10.12359.845, sau khi cập nhật thì phiên bản sẽ được nâng lên 8.10.12382.878. Bản cập nhật có dung lượng 21 MB và quá trình cập nhật mất khoảng 10 đến 15 phút.

Vẫn chưa rõ chi tiết những cải tiến trên bản cập nhật này nhưng theo chia sẻ của Joe Belfiore thì bản cập nhật sẽ mang lại "một loạt cải tiến dựa trên phản hồi của người dùng mà Microsoft nhận được" và "thật vui khi bản cập nhật được phát hành chỉ sau 1 tháng."

Mời các bạn cùng tải về và cùng mổ xẻ những điểm mới mẻ trên bản cập nhật này nhé!

Google Glass được bán rộng rãi

Google thông báo họ sẽ chính thức bán mắt kính Google Glass cho bất kỳ ai tại Mỹ với giá 1.500 USD, không phân biệt đó là lập trình viên hay người dùng. Nhân đây Google cũng có lời cám ơn đối với những thành viên tham gia chương trình thử nghiệm Google Glass Explorers, đây là những người đầu tiên được sử dụng Google Glass trước khi nó được bán ra và đóng góp ý kiến với Google để họ hoàn thiện sản phẩm trước khi đưa đến tay người dùng cuối. Hiện Google Glass cũng đã có mặt ở Việt Nam thông qua đường xách tay nhưng giá còn khá cao. Hy vọng trong thời gian tới giá của nó sẽ dễ chịu hơn để chúng ta có thể trải nghiệm chiếc kính của tương lai này.

Xem thêm:



MySQL – Bài 2: Bước đầu với RDBMS MySQL

1. Giới thiệu về MySQL
MySQL là hệ quản trị cơ sở dữ liệu quan hệ SQL mã nguồn mở thông dụng nhất hiện nay. Đặc điểm chính của nó là có tốc độ kết xuất dữ liệu nhanh và dễ sử dụng. Do đó, nó thường được chọn để phát triển các ứng dụng web, từ yêu cầu của các nghiệp vụ nhỏ đến yêu cầu của các nghiệp vụ lớn.
            MySQL được phát triển, được phát hành và được hỗ trợ bởi MySQL AB. Đó là một công ty phát triển phần mềm mã nguồn mở lớn ở Thụy Điển, với hơn 400 nhân viên và có trụ sở ở 25 quốc gia trên thế giới.
            Trong loạt bài viết sau đây chúng tôi hướng dẫn các bạn sử dụng MySQL trong môi trường Ubuntu và/hoặc môi trường PHP. Vì thế bạn nên trang bị cho mình một số hiểu biết nhất định về Ubuntu, PHP và HTML.
Đặc điểm của MySQL:
1) MySQL được phát hành theo giấy phép mã nguồn mở, vì thế mà không phải trả bất kỳ chi phí nào khi sử dụng nó.
2) MySQL có đầy đủ các chức năng, từ cơ bản đến cao cấp, của các hệ quản trị cơ sở dữ liệu thương mại khác hiện nay. Nó có thể thao tác trên các tập dữ liệu lớn với một tốc độ khá cao.
3) MySQL hỗ trợ sử dụng SQL trong tương tác cơ sở dữ liệu và kết xuất dữ liệu từ nhiều table khác nhau.
4) MySQL hoạt động được trên nhiều hệ điều hành và làm việc được với nhiều ngôn ngữ khác nhau như: PHP, Ruby, Perl, C/C++, Java,... Đặc biệt, nó rất “thân thiện” với PHP (một ngôn ngữ hỗ trợ mạnh cho việc phát triển ứng dụng web)
5) MySQL hỗ trợ các cơ sở dữ liệu lớn, có thể có hơn 500 triệu record trong một table. Kích thước tập tin của một table có thể hơn 4GB.
6) MySQL có tính tùy chỉnh. Giấy phép mã nguồn mở GPL cho phép người lập trình thay đổi cấu trúc bên trong của MySQL để phù hợp với môi trường phát triển riêng của họ.
Lưu ý khi sử dụng câu lệnh của MySQL:
1) Câu lệnh MySQL kết thúc bởi dấu chấm phảy (;):
            root@ubuntu:/# mysql -u root -p password;
2) Lệnh MySQL không phân biệt chữ hoa – chữ thường:
            root@ubuntu:/# Mysql -u Root -p Password;
            mysql> Show databases;
            mysql> use qlns;
            mysql> SELECT * from lylich;
3) Có thể thực hiện nhiều lệnh cùng một lúc (viết trên cùng dòng sau dấu nhắc):  
            mysql> use qlns; SELECT * from lylich;
4) Có thể viết một lệnh MySQL trên nhiền dòng màn hình liên tiếp, bằng cách đặt dấu chấm phẩy (;) ở dòng cuối cùng.
Ví dụ:       mysql> INSERT INTO user
                        ->           (host, user, password,
                        ->            select_priv, insert_priv, update_priv)
                        ->            VALUES ('localhost', 'tuhocanm',
                        ->            PASSWORD('tuhocanm123'), 'Y', 'Y', 'Y');
Câu lệnh truy vấn SQL này được sử dụng để thêm một user mới vào table user trong cơ sở dữ liệu đang mở.
Ta cũng có thể dùng tùy chọn \c để hủy lệnh.
Ví dụ:       mysql> INSERT INTO user                                                     
                        ->           (host, user, password,                                  
                        ->            select_priv, insert_priv, update_priv) 
                        -> \c                                                                         
                mysql>
2. Cài đặt MySQL:
1) MySQL – Server cơ sở dữ liệu MySQL: Thực hiện chức năng: Quản lý các cơ sở dữ liệu và các table, điều khiển sự truy cập đến cơ sở dữ liệu của người sử dụng, xử lý các truy vấn SQL,…
2) MySQL client – Các chương trình client MySQL: Được sử dụng để kết nối và tương tác với server cơ sở dữ liệu MySQL.
3) MySQL devel – Các tập tin header và thư viện: Hỗ trợ MySQL trong trường hợp biên dịch các chương trình khác.
4) MySQL shared – Các thư viện chia sẻ cho client MySQL.
5) MySQL bench – Công cụ test hiệu năng của server cơ sở dữ liệu MySQL.
Cài đặt MySQL trên Ubuntu:
            Xem hướng dẫn chi tiết tại:
Sử dụng cách tương tự như trên để cài các bản phát hành khác của MySQL:
root@ubuntu:/#apt-get  install  mysql-client -y
root@ubuntu:/#apt-get  install  mysql-devel -y
root@ubuntu:/#apt-get  install  mysql-shared -y
root@ubuntu:/#apt-get  install  mysql-bench -y
Các database, các table được MySQL tạo ra trong quá trình cài đặt được tìm thấy ở thư mục: /var/lib/mysql. Các thư viên liên quan được tìm thấy ở thư mục
/usr/bin và thư mục /usr/sbin.
Cài đặt MySQL trên Windows:
            Thực hiện tương tự cách cài đặt các chương trình khác trên Windows, chỉ cần bạn down về đúng phiên bản MySQL cho Windows là được.
            Theo mặc định, MySQL được cài đặt vào thư mục C:\mysql.
Ngay sau khi cài đặt, ta nên kiểm tra xem việc cài đặt đã thành công hay chưa, bằng cách, cho thực hiện tập tin mysqld.exe (cú pháp: mysqld.exe –-console) hoặc tập tinmysqld-nt.exe trong thư mục C:\mysql\bin. Đọc các thông báo xuất hiện trên màn hình để biết được MySQL đã được cài đặt thành công hay chưa.
Tập tin mysqld.exe hoặc mysqld-nt.exe được sử dụng cho việc khởi động server cơ sở dữ liệu MySQL (chỉ cần kích đúp chuột vào chúng).
Ta có thể sử dụng thư viện mysqladmin để kiểm tra version của MySQL. Thư viện này chứa ở /usr/bin (ubuntu) hoặc C:\mysql\bin (windows):
                        root@ubuntu:/usr/bin#mysqladmin --version
Kết quả nhận được có dạng như sau:
                        mysqladmin Ver 8.42 Distrib 5.5.32, for debian-linux-gnu on i386
Thông điệp này cũng chứng tỏ server  MySQL đã được cài đặt thành công.
Để server MySQL tự động khởi động trong quá trình khởi động máy, ta chỉ cần thêm dòng lệnh: /etc/init.d/mysqld start vào tập tin /etc/rc.local. Trong trường hợp này, thư viện mysqld phải tồn tại trong thư mục /etc/init.d/.
3. Một số thao tác quản trị server MySQL:
Start và shutdown server MySQL:
Trước khi bắt đầu làm việc với server cơ sở dữ liệu MySQL ta nên kiểm tra xem nó đã start chưa. Có nhiều cách:
  • Có thể dùng lệnh ps để xem danh sách các tiến trình đang chạy trên hệ thống:
                        root@ubuntu:/#ps –ef | grep mysqld
  • Hoặc dùng lệnh:
                        root@ubuntu:/#/usr/bin/service mysql status   
Nếu MySQL đã start (mặc định sau khi cài đặt) thì ta thấy trong danh sách các tiến trình có sự xuất hiện của tiến trình mysql.
Nếu server MySQL chưa start thì ta có thể dùng các lệnh sau để start nó:
root@ubuntu:/#cd /usr/bin
root@ubuntu:/usr/bin#service mysql start
 Để stop MySQL ta có thể dùng lệnh:
root@ubuntu:/usr/bin#service mysql stop
Ta có thể sử dụng thư viện mysqladmin để shutdown hoàn toàn MySQL:
root@ubuntu:/usr/bin#mysqladmin –u root –p shutdown    
Enter password:<nhập password của account root>                     
Kết nối đến server MySQL (trên môi trường Ubuntu):
            Sử dụng thư viện mysql để kết nối đến server MySQL từ dấu nhắc:
                        root@ubuntu:/#mysql –u root – p                                               
           Enter password:<nhập password của account root>         
            Với root là account có quyền cao nhất với cơ sở dữ liệu MySQL, nó được tạo ra (user name + password) trong quá trình cài đặt MySQL server.
            Nếu kết nối thành công thì dấu nhắc của hệ điều hành sẽ được thay bằng dấu nhắc của MySQL (mysql>). Tại đây bạn có thể thực hiện bất kỳ câu lệnh SQL nào.
            Để hủy kết nối đến server MySQL, quay lại hệ điều hành, ta thực hiện lệnh exit hoặc quit.
                        mysql>quit;              
           root@ubuntu:/#
Bạn có thể sử dụng bất kỳ account nào để kết nối đến server MySQL, không nhất thiết phải sử dụng account root, nhưng khi đó bạn chỉ có thể sử dụng được các câu lệnh, các thao tác SQL trong giới hạn mà account này được phép.
Tạo một user account mới trong MySQL:
Thực hiện theo cách: Sử dụng lệnh truy vấn INSERT để thêm một record mới vào tableuser (tất cả user account của MySQL chứa ở đây) trong cơ sở dữ liệu mysql.
Bước 1: Kết nối đến server cơ sở dữ liệu MySQL (lệnh mysql) và mở cơ sở dữ liệu mysql (lệnh use):
Bước 2: Thêm một record mới vào table user (lệnh INSERT INTO).
Bước 3: Yêu cầu server MySQL nạp lại các table liên quan đến quyền (FLUSH PRIVILEGES
Bước 4: Kiểm tra kết quả (lệnh SELECT).
Lệnh Insert into ở trên thêm vào table user một user account mới: Tên: guest, pass: guest123, với các quyền Select, Insert và Update (được quyền thực hiện các câu truy vấn SQL: Select, Insert và Update) trên cơ sở dữ liệu mysql (tương ứng với các giá trị ‘Y’ trong phần VALUES của câu lệnh).
Kết quả câu lệnh Select cũng cho thấy password đã được MySQL mã hóa, sử dụng hàm password(), trước khi lưu vào cơ sở dữ liệu.
Ta có thể sử dụng các tham số Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, File_priv, Grant_priv, Index_priv,… để thiết lập các uyền tương ứng cho account được tạo.
Làm quen với các lệnh cơ sở dữ liệu MySQL:
1) Lệnh show databases
Lệnh được sử dụng để liệt kê ra tất cả các cơ sở dữ liệu mà có thể được truy cập, đã được tạo trước đó, bởi RDBMS MySQL.
Ví dụ:   
mysql>show databases;
Lệnh sẽ liệt kê ra màn hình tất cả các cơ sở dữ liệu đã tạo trong RDBMS MySQL.

2) Lệnh use <database name>:
Lệnh được sử dụng để chọn (hay mở (open)) cơ sở dữ liệu, có tên là < database name >, mà user hoặc user’s program muốn thao tác trên nó.
Ví dụ:
mysql>use qlns;
Lệnh chỉ định mở (open) cơ sở dữ liệu qlns, để có thể truy xuất nó.
3) Lệnh show tables
Lệnh được sử dụng để liệt kê ra tất cả các table trong cơ sở dữ liệu hiện tại, đó là cơ sở dữ liệu đang được mở với lệnh use.
Ví dụ:               
mysql>use qlns;
mysql>show tables;
Lệnh sẽ liệt kê ra màn hình tất cả các table có trong cơ sở dữ liệu đang được mở:qlns. Đo đó, trước khi thực hiện lệnh show tablesta phải thực hiện lệnh use.
4) Lệnh show columns from <table name>: 
Lệnh được sử dụng để xem cấu trúc của một table, có tên là <table name>, gồm các thông tin về: Tên column, kiểu dữ liệu của column, khóa của table,…
Ví dụ:               
mysql>use qlns;
mysql>show columns from lylich;
Lệnh cho biết cấu trúc của table lylich, một table của cơ sở dữ liệu đang được mở:qlns.
Hình trên cho thấy cấu trúc của table có tên là Servers, nó gồm 9 trường (field): Server_Name (có kiển Character, dài tối đa 64 kí tự, không chấp nhận giá trị Null), Host, Db, Username, Pass,... Trong đó trường Server_name là khóa chính của table này.
5) Lệnh show index from <table name>: 
Lệnh được sử dụng để xem chi tiết của tất cả các index trong table, có tên là <table name>, bao gồm cả khóa chính.
Ví dụ:              
mysql>use hshs;
mysql>use qlns;
mysql>show index from lylich;
Lệnh sẽ hiển thị thông tin về chỉ mục (Index) của table lylich trong cơ sở dữ liệu qlns. Nên nhớ rằng use vừa có tác dụng mở cơ sở dữ liệu được chỉ ra, vừa có tác dụng đóng lại (close) cơ sở dữ liệu đã đang được mở trước đó.
Code by : Truongcom