Table of Contents for
Mastering phpMyAdmin 3.4 for Effective MySQL Management

Version ebook / Retour

Cover image for bash Cookbook, 2nd Edition Mastering phpMyAdmin 3.4 for Effective MySQL Management by Marc Delisle Published by Packt Publishing, 2012
  1. Cover
  2. Mastering phpMyAdmin 3.4 for Effective MySQL Management
  3. Mastering phpMyAdmin 3.4 for Effective MySQL Management
  4. Credits
  5. About the Author
  6. About the Reviewers
  7. www.PacktPub.com
  8. Preface
  9. What you need for this book
  10. Who this book is for
  11. Conventions
  12. Reader feedback
  13. Customer support
  14. 1. Getting Started with phpMyAdmin
  15. What is phpMyAdmin?
  16. Installing phpMyAdmin
  17. Configuring phpMyAdmin
  18. Installing phpMyAdmin configuration storage
  19. Upgrading phpMyAdmin
  20. Summary
  21. 2. Configuring Authentication and Security
  22. Securing phpMyAdmin
  23. Summary
  24. 3. Over Viewing the Interface
  25. Customizing general settings
  26. Character sets and collations
  27. Navigation panel
  28. Main panel
  29. User preferences
  30. Query window
  31. Summary
  32. 4. Creating and Browsing Tables
  33. Creating our first table
  34. Inserting data manually
  35. Browse mode
  36. Profiling queries
  37. Creating an additional table
  38. Summary
  39. 5. Changing Data and Structure
  40. Changing table structure
  41. Summary
  42. 6. Exporting Structure and Data (Backup)
  43. Exporting a database
  44. Exporting a table
  45. Exporting selectively
  46. Exporting multiple databases
  47. Saving the export file on the server
  48. Memory limits
  49. Summary
  50. 7. Importing Structure and Data
  51. Importing SQL files
  52. Importing CSV files
  53. Importing other formats
  54. Reading files from a web server upload directory
  55. Displaying an upload progress bar
  56. Summary
  57. 8. Searching Data
  58. Performing a complete database search
  59. Stopping an errant query
  60. Summary
  61. 9. Performing Table and Database Operations
  62. Changing table attributes
  63. Emptying or deleting a table
  64. Renaming, moving, and copying tables
  65. Performing other table operations
  66. Multi-table operations
  67. Database operations
  68. Summary
  69. 10. Benefiting from the Relational System
  70. Defining relations with the relation view
  71. Defining relations with the Designer
  72. Benefiting from the defined relations
  73. Column commenting
  74. Summary
  75. 11. Entering SQL Statements
  76. The Query window
  77. Multi-statement queries
  78. Pretty printing (syntax highlighting)
  79. The SQL Validator
  80. Summary
  81. 12. Generating Multi-table Queries
  82. Exploring column criteria
  83. Generating automatic joins (internal relations)
  84. Executing the query
  85. The visual builder
  86. Summary
  87. 13. Synchronizing Data and Supporting Replication
  88. Supporting MySQL replication
  89. Summary
  90. 14. Using Query Bookmarks
  91. Creating bookmarks
  92. Recalling bookmarks from the bookmarks list
  93. Passing a parameter to a bookmark
  94. Summary
  95. 15. Documenting the System
  96. Generating relational schemas
  97. Summary
  98. 16. Transforming Data using MIME
  99. Enabling transformations
  100. Examples of transformations
  101. Summary
  102. 17. Supporting Features Added in MySQL 5
  103. Supporting routines—stored procedures and functions
  104. Executing code with triggers
  105. Using information_schema
  106. Partitioning
  107. Exploring the event scheduler
  108. Summary
  109. 18. Tracking Changes
  110. Prerequisites
  111. Principles
  112. Initiating tracking for one table
  113. Testing the tracking mechanism
  114. Determining tracking status
  115. Structure snapshot
  116. Exporting a version
  117. Creating a new version
  118. Deleting tracking information
  119. Summary
  120. 19. Administrating the MySQL Server
  121. Database information
  122. Server information
  123. Summary
  124. A. Troubleshooting and Support
  125. Seeking support
  126. Contributing to the project

Creating bookmarks

There are two instances when it is possible to create a bookmark—after a query is executed (in which case we don't need to plan ahead for its creation), and before sending the query to the MySQL server for execution. Both of these options are explored in the following sections.

Creating a bookmark after a successful query

Initial bookmark creation is made possible by the Bookmark this SQL query button. This button appears only after executing a query that generates a result (when at least one row is found); so this method for creating bookmarks only stores SELECT statements. For example, a complex query produced by the multi-table query generator (as seen in Chapter 12) could be stored as a bookmark in this way, provided that it finds some results.

Let us see an example. In the Search page for the book table, we select the columns that we want in the results, and enter the search values as shown in the following screenshot:

Creating a bookmark after a successful query

After clicking on Go, we see that the results page shows a bookmark dialog. We enter only a label, books for author 1, for this bookmark, and then click on Bookmark this SQL query to save this query as a bookmark. Bookmarks are saved in the table defined by $cfg['Servers'][$i]['bookmarktable'].

Creating a bookmark after a successful query

This bookmark dialog can be seen on any page that contains results. As a test, we could just click on Browse for a table to get results, and then store this query as a bookmark. However, it does not make much sense to store (in a bookmark) a query that can easily be made with one click.

Storing a bookmark before sending a query

We have seen that it's easy to create a bookmark after the execution of a SELECT statement that generates results. Sometimes, we may want to store a bookmark even if a query does not find any results. This may be the case if the data to which the query refers is not yet present, or if the query is a statement other than SELECT. To achieve this, we have the Bookmark this SQL query dialog available in the SQL tab of the Database view, Table view, and the Query window.

We now go to the SQL page of the book table, enter a query to retrieve French books, and directly put the books in French bookmark label in the Bookmark this SQL query dialog. If this bookmark label has been used previously, a new bookmark with the same name will be created, unless we check the Replace existing bookmark of same name checkbox. Bookmarks carry an internal identifying number, as well as a label chosen by the user.

Storing a bookmark before sending a query

On clicking on Go, the query is executed and stored as a bookmark. It does not matter if the query does not find anything. This is how we can generate bookmarks for non-SELECT queries such as UPDATE, DELETE, CREATE TABLE, and so on.

Note

This technique can also be used for a SELECT statement that either returns results or does not return results.

Making bookmarks public

All bookmarks we create are private by default. When a bookmark is created, the username, which we are logged in as, is stored with the bookmark. Let us suppose that we check the Let every user access this bookmark checkbox as shown in the following screenshot:

Making bookmarks public

This would have the following effect:

  • All users having access to the same database (the current one) will have access to the bookmark.
  • A user's ability to see meaningful results from the bookmark depends on the privileges they have on the tables referenced in the bookmark.
  • Any user will be able to delete the bookmark.
  • Users will be permitted to change the bookmark's query, by storing this bookmark before sending a query and using the Replace existing bookmark of same name option.

Public bookmarks are shown with a (shared) suffix when recalled.

The default initial query for a table

In the previous examples, we chose bookmark labels according to our preferences. However, by convention, if a private bookmark has the same name as a table, it will be executed when Browse is clicked for this table. Thus, instead of seeing the normal Browse results of this table, we will see the bookmark's results.

Suppose that we are interested in viewing (by default, in the Browse mode) all books with a page count lower than 300. We first generate the appropriate query, which can be done easily from the Search page, and then we use book as a bookmark label on the results page.

The default initial query for a table

Following this action, every time the user, who created this bookmark, browses the book table, he sees the following screenshot:

The default initial query for a table

Multi-query bookmarks

A single bookmark can also store more than one query (separated by a semicolon). This is mostly useful for non-SELECT queries. As an example, let us assume that we need to clean data about authors by removing an invalid area code from the phone numbers on a regular basis. This operation would always be followed by a display of the author table.

To accomplish this goal, we store a bookmark (before sending it for execution) that contains these queries:

update author set phone = replace(phone,'(123)', '(456)');
select * from author;

In the bookmark, we could put many data modification statements such as INSERT, UPDATE, or DELETE, followed optionally by one SELECT statement. Stacking a lot of SELECT statements would not yield the intended result because we would only see the data fetched by the last SELECT statement.