0% found this document useful (0 votes)
90 views

Mysql For Oracle Dbas and Developers

This document discusses MySQL for Oracle database administrators and developers. It provides an overview of important concepts for DBAs to understand when working with MySQL, including terminology differences, installation practices, directory structures, log files, ports and sockets, and the MySQL data dictionary. It also covers backup strategies and tools for MySQL.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
90 views

Mysql For Oracle Dbas and Developers

This document discusses MySQL for Oracle database administrators and developers. It provides an overview of important concepts for DBAs to understand when working with MySQL, including terminology differences, installation practices, directory structures, log files, ports and sockets, and the MySQL data dictionary. It also covers backup strategies and tools for MySQL.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 65

MySQL for Oracle

DBAs and Developers


MySQL for Oracle Dudes

How can you tell an


Oracle DBA
has touched your
MySQL Installation?

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 2
MySQL for Oracle Dudes

MYSQL_HOME=/home/oracle/products/mysql-version

mysqld_safe –user=oracle &

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 3
MySQL for Oracle Dudes

Outline

 DBA Tips, Tricks, Gotcha's & Tools


 Key Differences for Developers
 Migrating from Oracle to MySQL
 Questions & Answers

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 4
MySQL for Oracle Dudes

My Background

 18 years in Database Technologies (1989)


 10 years Oracle Experience (1996)
 8 years MySQL Experience (1999)
 Active in MySQL, Java, XP User Groups
 Joined MySQL Professional Services (2006)

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 5
MySQL for Oracle Dudes

DBA

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 6
MySQL for Oracle Dudes

Important DBA Stuff

 Terminology  MySQL Data Dictionary


 Installation  Backup
 Directories  Tools
 Log Files  Inherited LAMP Stack
 Processes
 Ports & Sockets

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 7
MySQL for Oracle Dudes

Terminology

Database (files) --> Database Server Instance


Database Instance (memory) --> Database Server Instance
Schema User --> Database
User --> User
Table Space --> Table Space
--> Storage Engine

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 8
MySQL for Oracle Dudes

MySQL Installation

 OS packages place files in many areas and varies


- e.g. /usr/lib, /var/lib, /var/log, /etc Tip
 Recommend installing using .tar.gz
- Centrally Manageable e.g. /opt/mysql-version
- Upgradeable
- Multiple Versions possible
 $MYSQL_HOME

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 9
MySQL for Oracle Dudes

MySQL Configuration
GOTCHA
 Multiple MySQL Instances
 my.cnf
- Watch out for /etc/my.cnf, /etc/mysql/my.cnf
- Best Practice $MYSQL_HOME/my.cnf
- --defaults-file=<file>

http://dev.mysql.com/doc/refman/5.1/en/option-files.html

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 10
MySQL for Oracle Dudes

MySQL Directories
my.cnf options
 basedir ($MYSQL_HOME)
- e.g. /opt/mysql-5.1.16-beta-linux-i686-glib23
 datadir (defaults to $MYSQL_HOME/data)
 tmpdir (important as mysql behaves unpredictability if full)
 innodb_[...]_home_dir

- mysql> SHOW GLOBAL VARIABLES LIKE '%dir'

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 11
MySQL for Oracle Dudes

MySQL Ports & Sockets

 Configured to listen on TCP/IP Port (default 3306)


 Additional Instances
- Different Ports
- Different IP's using default Port
 Local connection uses Socket
- Even specifying Port, local client may use socket

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 12
MySQL for Oracle Dudes

MySQL Log Files


my.cnf options
 Error Log mysqld arg
- log-error
 Binary Log
- log-bin (my.cnf or mysqld arg)
 Slow Query Log
- log-slow-queries,slow-query-time,log-queries-not-using-indexes
 General Log
- log
http://dev.mysql.com/doc/refman/5.0/en/log-files.html

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 13
MySQL for Oracle Dudes

MySQL Meta Data


New Feature
 mysql Database
- general_log, slow_log (5.1)
mysql> SET GLOBAL GENERAL_LOG=1;
mysql> ...
mysql> SELECT * FROM mysql.general_log;

http://dev.mysql.com/doc/refman/5.1/en/log-tables.html

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 14
MySQL for Oracle Dudes

MySQL Data Dictionary


[DBA|USER|ALL]_ tables, V$
 INFORMATION_SCHEMA
- TABLES, COLUMNS, VIEWS, USER_PRIVILEGES
- PROCESSLIST (5.1)
- [GLOBAL|SESSION]_[STATUS|VARIABLES] (5.1)

http://dev.mysql.com/doc/refman/5.1/en/information-schema.html
http://www.xcdsql.org/MySQL/information_schema/5.1/MySQL_5_1_INFORMATION_SCHEMA.html

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 15
MySQL for Oracle Dudes

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 16
MySQL for Oracle Dudes

MySQL Data Dictionary

 SQL Examples

SELECT TABLE_SCHEMA, SUM((DATA_LENGTH + INDEX_LENGTH) / (1024 * 1024)) AS SIZE_MB


FROM INFORMATION_SCHEMA.TABLES
GROUP BY TABLE_SCHEMA ORDER BY SIZE_MB DESC
SELECT ROUTINE_TYPE, ROUTINE_NAME FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_SCHEMA='dbname';
SELECT TRIGGER_NAME,EVENT_MANIPULATION,EVENT_OBJECT_TABLE,
ACTION_STATEMENT
FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_SCHEMA='dbname';
SELECT CONCAT('DROP TABLE ',table_name,';')
INTO OUTFILE '/sql/drop_tables.sql'
FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'test';

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 17
MySQL for Oracle Dudes

MySQL Data Dictionary

 SQL Examples

SELECT s.schema_name, CONCAT(IFNULL(ROUND((SUM(t.data_length)+


SUM(t.index_length))/1024/1024,2),0.00),'Mb') total_size,
CONCAT(IFNULL(ROUND(((SUM(t.data_length)+SUM(t.index_length))-
SUM(t.data_free))/1024/1024,2),0.00),'Mb')
data_used,CONCAT(IFNULL(ROUND(SUM(data_free)/1024/1024,2),0.00),'Mb') data_free,
IFNULL(ROUND((((SUM(t.data_length)+SUM(t.index_length))-
SUM(t.data_free))/((SUM(t.data_length)+SUM(t.index_length)))*100),2),0) pct_used,
COUNT(table_name) total_tables
FROM information_schema.schemata s
LEFT JOIN information_schema.tables t ON s.schema_name = t.table_schema
WHERE s.schema_name != 'information_schema'
GROUP BY s.schema_name ORDER BY pct_used DESC\G

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 18
MySQL for Oracle Dudes

SHOW Commands
 SHOW TABLES;
 SHOW WARNINGS;
 SHOW STATUS; FLUSH STATUS;
 SHOW VARIABLES;
 SHOW VARIABLES LIKE '%size%';
 SHOW VARIABLES LIKE 'sort_buffer_size';
 SHOW GLOBAL VARIABLES LIKE 'sort_buffer_size';

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 19
MySQL for Oracle Dudes

Backup

 Missing Functionality

Commercial strength – unbreakable (Planned 6.0)
 Storage Engine Driven
 Innodb
Also PBXT, Falcon
- Hot Backup
- mysqldump --single-transaction --master-data
- InnoDB Hot Backup

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 20
MySQL for Oracle Dudes

Backup

 MyISAM Only
- Cold Backup via File Copy
- LVM Snapshot
 SE Mixture
- Use Replication Slave

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 21
MySQL for Oracle Dudes

Online Backup/Recovery
MySQL 6.0 Demo

 Cross-engine. All major internal engines supported.


 Online, non-blocking for DML. DDL still blocked.
 SQL-command driven. Run from any mysql client.
 Backup to local disk, tape or remote file system.
 Full Server, database, and point-in-time recovery.

Backup ALL…

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 22
MySQL for Oracle Dudes

Tools

 Missing Functionality
- Enterprise Level Monitoring
 SHOW PROFILE (5.0.38 - Community)
 Microsecond Patch (5.0.33 - Slow query granularity)
 mytop/innotop/ndbtop
 MySQL Toolkit http://sourceforge.net/projects/mysqltoolkit

 phpMyAdmin
Ronald Bradford, MySQL Inc
MySQL Conference & Expo 2007 Page: 23
MySQL for Oracle Dudes

SHOW PROFILE
mysql> show profile SOURCE,MEMORY for query 4;
+--------------------+------------+-----------------------+---------------+-------------+
| Status | Duration | Source_function | Source_file | Source_line |
+--------------------+------------+-----------------------+---------------+-------------+
| Opening tables | 0.00013200 | open_tables | sql_base.cc | 2106 |
| System lock | 0.00001800 | mysql_lock_tables | lock.cc | 153 |
| Table lock | 0.00000600 | mysql_lock_tables | lock.cc | 162 |
| init | 0.00001300 | mysql_select | sql_select.cc | 2073 |
| optimizing | 0.00004800 | optimize | sql_select.cc | 617 |
| statistics | 0.00002500 | optimize | sql_select.cc | 773 |
| preparing | 0.00005200 | optimize | sql_select.cc | 783 |
| executing | 0.00002200 | exec | sql_select.cc | 1407 |
| Sending data | 0.00000500 | exec | sql_select.cc | 1925 |
| end | 0.00786600 | mysql_select | sql_select.cc | 2118 |
| query end | 0.00001400 | mysql_execute_command | sql_parse.cc | 5085 |
| freeing items | 0.00000700 | mysql_parse | sql_parse.cc | 5973 |
| closing tables | 0.00001900 | dispatch_command | sql_parse.cc | 2120 |
| logging slow query | 0.00001000 | log_slow_statement | sql_parse.cc | 2178 |
| cleaning up | 0.00000500 | dispatch_command | sql_parse.cc | 2143 |
+--------------------+------------+-----------------------+---------------+-------------+
15 rows in set (0.01 sec)

 95% time in one step


 Reference to Source Code
 “poor” Status names (internal code)
Ronald Bradford, MySQL Inc
MySQL Conference & Expo 2007 Page: 24
MySQL for Oracle Dudes

GUI Tools

 MySQL Administrator
 Quest Spotlight
 Toad
MySQL
Enterprise

 MySQL Network Monitoring & Network Services

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 25
MySQL for Oracle Dudes

Tools
TIP
 mysqladmin -r -i 1 extended-status
- Gives change in status variables per second
- Lacks timestamp
 Monitor specifics
- Com_*
- Innodb_*, Innodb_buffer_pool_*
- Connections
- Created_tmp_*
Ronald Bradford, MySQL Inc
MySQL Conference & Expo 2007 Page: 26
MySQL for Oracle Dudes

Tools
Example
 Idle
- $ mysqladmin -r -i 1 extended-status | grep -v “ | 0 “

+-----------------------------------+------------+
| Variable_name | Value |
+-----------------------------------+------------+
| Bytes_received | 35 |
| Bytes_sent | 6155 |
| Com_show_status | 1 |
| Created_tmp_tables | 1 |
| Handler_read_rnd_next | 246 |
| Handler_write | 245 |
| Questions | 1 |
| Select_scan | 1 |
| Uptime | 1 |
+-----------------------------------+------------+

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 27
MySQL for Oracle Dudes

Tools

 Under load
- $ mysqladmin -r -i 1 extended-status | grep -v “ | 0 “
+-----------------------------------+------------+ Erroneous Commands
| Variable_name | Value | Causing Round Trips
+-----------------------------------+------------+
| Bytes_received | 1020909 |
| Bytes_sent | 195358 | Buried in JDBC Usage
| Com_insert | 274 | PreparedStatement
| Com_select | 132 |
| Com_set_option | 264 | .setMaxRows()
| Handler_read_key | 505 |
| Handler_update | 252 |
| Handler_write | 519 |
| Questions | 1356 |
| Table_locks_immediate | 536 |
| Table_locks_waited | 2 |
+-----------------------------------+------------+
Ronald Bradford, MySQL Inc
MySQL Conference & Expo 2007 Page: 28
MySQL for Oracle Dudes

Inherited LAMP Stack Product


TIP
 Problem: Frozen, some functions work
- Lack of Free Disk Space
 Problem: Running slow
- Increase Buffers
- Change Storage Engine
 Problem: Can't connect
- Connections

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 29
MySQL for Oracle Dudes

Inherited LAMP Stack Product

 A lot of products are non-transactional


 Not designed for large volume enterprises

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 30
MySQL for Oracle Dudes

Default Installation

 No 'root' user password GOTCHA


 Anonymous users mess with host based security
 Improve overall security
$ mysql_secure_installation
http://dev.mysql.com/doc/refman/5.0/en/mysql-secure-installation.html

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 31
MySQL for Oracle Dudes

AUTO COMMIT
GOTCHA
 By Default enabled in MySQL
- Ops I deleted the wrong data, I'll just ROLLBACK
- Non Transactional Storage Engines
- SET AUTOCOMMIT = {0 | 1};

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 32
MySQL for Oracle Dudes

SQL*Plus Reporting

 No Alternative
 Nice Feature- Vertical Output Display
- SELECT columns FROM table \G

 Write your own in MySQL Source

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 33
MySQL for Oracle Dudes

Nice MySQL Features


TIP
 SELECT INTO OUTFILE ...
 LOAD DATA FILE ...
 DROP [object] IF EXISTS ...
 ALTER TABLE .. ADD ... AFTER [column]
 Query Cache

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 34
MySQL for Oracle Dudes

Query Cache

 SELECT Cache (great for high read environments)


- Being Added to Oracle v11
http://dev.mysql.com/doc/refman/5.0/en/query-cache.html

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 35
MySQL for Oracle Dudes

Contrasting Buffers
Area MySQL Oracle Microsoft SQL Server

Memory Caches • MyISAM key caches • Data cache (variants) • Buffer cache
• InnoDB data cache • Log buffer • SQL cache
• InnoDB log cache • Shared Pool • Misc caches (lock,
• Dictionary cache • Java Pool connection, workspace, etc.)
• Falcon caches • Large Pool
• Query Cache • PGA
• User caches

Redo/Undo Logs • InnoDB Undo Space • Undo Tablespace (9i+) • TempDB (2005+)
• InnoDB Logs • Redo Logs • Transaction Logs
• Falcon Log • Archive Logs
• Binary Log

Data Storage • Tablespaces • Tablespaces • Filegroups


• Table/Index Files • Datafiles • Files
• Format files

Optimizer • Cost-based • Cost-based • Cost-based

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 36
MySQL for Oracle Dudes

DEVELOPER

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 37
MySQL for Oracle Dudes

Important Developer Stuff

 Sequence Replacement  SQL_MODE


 No DUAL Necessary  TIMESTAMP Data Type
 Data Comparison  New things
 DDL Syntax
 Stored Procedures
 Locking

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 38
MySQL for Oracle Dudes

Sequences Replacement

 AUTO_INCREMENT
e.g. id INT NOT NULL AUTO_INCREMENT,
- Must be tied to a [table].[column]
- Only one per table
- No system wide capability
- LAST_INSERT_ID()
- No get next capability

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 39
MySQL for Oracle Dudes

Optional Table Name

 DUAL IS NOT REQUIRED


- e.g. SELECT 1+1
 Provided for Oracle Compatibility
- e.g. SELECT 1+1 FROM DUAL
- e.g. SELECT DUMMY FROM DUAL *** Fails

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 40
MySQL for Oracle Dudes

Data Comparison

 LIKE compares data case-insensitive


- Character Set/Collation dependent
e.g. SELECT title FROM film WHERE title LIKE 'A%'
Returns rows starting with 'ALIEN' and 'alien'
 BINARY DDL syntax
 e.g. title VARCHAR(100) NOT NULL BINARY

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 41
MySQL for Oracle Dudes

DDL Syntax
 Escaped Reserved Words are allowed
e.g. CREATE TABLE `group` (...);
e.g. CREATE TABLE “insert” (...); * sql_mode
 Tables/Columns/Triggers/Stored Procedures
 Space and other special characters allowed
Operating System Dependent
e.g. CREATE TABLE `My Table Name` (...);

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 42
MySQL for Oracle Dudes

Stored Procedures

 Earlier Session
“Using Stored Routines for MySQL Administration”

 Not a PL/SQL Replacement


 Missing Functionality

Types, Overloading, named parameters, pinning, packages

Built-in Packages

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 43
MySQL for Oracle Dudes

Stored Procedures

 MySQL Stored Routines Library


- Globals
- Arrays
- Named Parameters

http://forge.mysql.com/projects/view.php?id=35

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 44
MySQL for Oracle Dudes

Locking

 Storage Engine Specific


- MyISAM/Memory – Table
- InnoDB/Falcon/PBXT/Solid – Row
- Nitro – quasi nothing

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 45
MySQL for Oracle Dudes

SQL_MODE

 SET SQL_MODE=TRADITIONAL,ORACLE
http://dev.mysql.com/doc/refman/5.1/en/server-sql-mode.html

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 46
MySQL for Oracle Dudes

SQL_MODE

 String Concatenation
- SELECT CONCAT('A','B');
- SELECT CONCAT_WS(',','a','b','c',d');
Emulate Oracle Behaviour

 SET sql_mode='PIPES_AS_CONCAT';
- SELECT 'A'||'B'; May break
other tools

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 47
MySQL for Oracle Dudes

TIMESTAMP
TIP
 Remove DB level auditing via triggers
- last_modified TIMESTAMP ON UPDATE CREATE_TIMESTAMP,

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 48
MySQL for Oracle Dudes

New things you may see

 Multi-record INSERT
 REPLACE
 LOW_PRORITY | HIGH PRIORITY
 INSERT DELAYED

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 49
MySQL for Oracle Dudes

MIGRATION

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 50
MySQL for Oracle Dudes

Migration

MYSQL = (DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
(CONNECT_DATA=(SID=MYSQL)) (HS=OK))

CREATE DATABASE LINK mysql


CONNECT TO "my_user" IDENTIFIED BY "my_password"
USING 'mysql';

The Easy Way: Simply read/write


directly to MySQL :)

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 51
MySQL for Oracle Dudes

Oracle Migration

 Good guide to identifying differences


 Schema
 Data
 Objects
 Application

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 52
MySQL for Oracle Dudes

Oracle Migration

 MySQL Migration Toolkit


- Does
- Tables/Views
- Data
- Does Not (yet)
- Sequences
- Stored Procedures
- Triggers

http://www.mysql.com/products/tools/migration-toolkit/

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 53
MySQL for Oracle Dudes

Oracle Migration - Schema

 Case Sensitive Table Names


NUMBER supports
 Data Types * Integer
- INT, FLOAT/DOUBLE, NUMBER * Floating Point
* Fixed Point
- UNSIGNED
- BIT
 Sequences replacement – Auto Increment
 What's Missing

Snapshots, Check Constraints, Flashback queries, synonyms

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 54
MySQL for Oracle Dudes

Oracle Migration - Data

 Date Format – no NLS_DATE_FORMAT


 Silent conversions
- Less likely due to Oracle as Source
 No Oracle Timestamp (no ms support)

 Data Verification necessary


- COUNT(), SUM(), MD5()

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 55
MySQL for Oracle Dudes

Oracle Migration – Data Verification

 Numeric Precision/Rounding
 Character Sets (multi-byte data)
 CHAR usage
- CHAR(5)
- Oracle 'abc ' - 5 characters long
- MySQL 'abc' - 3 characters long

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 56
MySQL for Oracle Dudes

Oracle Migration - Objects

 No Packages
 Restricted Triggers
- Only one trigger per table per DML statement
- Missing
- INSTEAD,
- INSERT OR UPDATE
- OR REPLACE
- Only for DML Statements
Ronald Bradford, MySQL Inc
MySQL Conference & Expo 2007 Page: 57
MySQL for Oracle Dudes

Oracle Migration - Application

 NVL() --> IFNULL()


 ROWNUM --> LIMIT
 SEQ.CURRVAL --> LAST_INSERT_ID()
 SEQ.NEXTVAL --> NULL
 NO DUAL necessary (SELECT NOW())
 NO DECODE() --> IF() CASE()
 JOIN (+) Syntax --> INNER|OUTER LEFT|RIGHT
Ronald Bradford, MySQL Inc
MySQL Conference & Expo 2007 Page: 58
MySQL for Oracle Dudes

Oracle Migration - Application

 Date Functions
- CURDATE(), NOW()
 Data Formats
- Default is YYYY-MM-DD
 Case insensitive searching
- no UPPER(column) = UPPER(value)
- Character Set/Collation specific

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 59
MySQL for Oracle Dudes

CLOSING

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 60
MySQL for Oracle Dudes

Pronunciation

"MySQL" is officially pronounced as

"My Ess Queue Ell"

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 61
MySQL for Oracle Dudes

References

 Developer Zone http://dev.mysql.com


 Blog Aggregator http://planetmysql.org
 Source Forge http://forge.mysql.com
 Forums http://forums.mysql.com
 Lists http://lists.mysql.com
 User Groups http://dev.mysql.com/user-groups
 Training http://www.mysql.com/training
Ronald Bradford, MySQL Inc
MySQL Conference & Expo 2007 Page: 62
MySQL for Oracle Dudes

Recommended Reading

 MySQL by Paul DuBois

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 63
MySQL for Oracle Dudes

Support Me

Buy a T-shirt !

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 64
MySQL for Oracle Dudes

Q&A

Ronald Bradford, MySQL Inc


MySQL Conference & Expo 2007 Page: 65

You might also like