1 MySQL and Unicode Daniël van Eeden Percona Live Amsterdam 23 September 2015
2 Booking.com is available in more than 40 languages So Unicode is important to us.
4 Also my name is Daniël, not Daniel
5 Also my name is Daniël, not DaniÃ«l
6 First some history
8 Encodes characters as 7-bit
9 The 8 th bit can be used as parity, but that was never common.
10 The 3568 ASCII astroid is named after it.
12 Uses the extra bit to be able to store a second set of 127 characters
13 The base characters (<127) are shared between ASCII and ISO-8859-?
14 The other characters differ per country/region
15 Windows-1252 (CP1252) is mostly identical with ISO
16 ISO is also known as Latin1
17 Latin1 in MySQL is not ISO , but CP1252.
19 Allows you to store text in any language
20 Allows you to store text combining multiple languages in the same file
21 Each character gets a number (a.k.a. code point) and a description.
22 That doesn't guarantee your font will display it.
24 This is an character encoding for unicode.
25 This translates from code points to a binary string.
26 UTF-8 and ASCII share the same characters for 0<127.
27 Non-ASCII characters are stored as 2, 3 or 4-bytes.
28 UTF-32 UTF-16 UTF-8 ISO ASCII Baudot
29 If a byte starts with '0xxxxxxx' then it is a 1-byte character
30 If a byte starts with '110' it is a start of a 2- byte character.
31 If a byte starts with '10' then it is a continuation of a multibyte character.
32 If a byte starts with '1110' it is the start of a 3-byte character.
33 If a byte starts with '11110' it is the start of a 4-byte character.
34 Examples: a = ë =
35 UTF-8 And MySQL
36 Some reasons to use UTF-8 in MySQL
37 Non-english scripts like Chinese, Cyrillic or Greek.
38 Emoji (including in the help text of your mobile app)
39 utf8 in MySQL is an alias for utf8mb3
40 utf8mb3 can store 3-byte UTF-8
41 utf8mb4 can store 4-byte UTF-8
42 Best practice: Always use utf8mb4, don't use utf8
43 Where to set the encoding?
44 It is set on a per-column basis
45 There is a per-table default
46 There is a per-database default
47 There is a per-server default: character_set_server
48 Connections also have a character set
49 Drawbacks of UTF-8
50 So just set everything to utf8mb4?
51 It depends
52 Does your application support it?
53 CHAR(10) suddenly needs 40 bytes!
54 TINYTEXT has a size limit in bytes
55 The MEMORY storage engine expands VARCHAR(10) to 40 bytes
56 With InnoDB your index grows over 767 bytes.
57 Best practice: Use latin1 for server, database and table default. Enable Unicode on columns which need it.
58 Converting your data
59 How to convert from latin1 to utf8mb4?
60 ALTER TABLE t1 MODIFY COLUMN c1 VARCHAR(100) CHARACTER SET utf8mb4;
61 But I have many columns!
62 Use CONCAT() and information_schema to generate the statements
63 Or convert all columns: ALTER TABLE t1 CONVERT TO CHARACTER SET utf8mb4;
64 Change defaults
65 Set character_set_server
66 ALTER SCHEMA s1 DEFAULT CHARACTER SET utf8mb4;
67 ALTER TABLE t1 DEFAULT CHARACTER SET utf8mb4;
68 Common failures
69 Application looks okay, but in MySQL the data looks wrong
70 The latin1 column was holding utf8 data already
71 Wrong conversion == garbage
72 Change column to varbinary and then to utf8mb4 to not convert the data.
73 The conversion fails and eats your data
74 Use sql_mode='strict_all_tables'
75 Now the operation will fail instead of truncate your data
76 Connection set to utf8, but data is 4-byte UTF-8.
77 Collation support There is no utf8mb4_general_cs (case sensitive) There is utf8mb4_unicode_ci And utf8mb4_unicode_520_ci And utf8mb4_bin
79 Special collations get lost during conversion
80 ALTER TABLE CONVERT TO only supports one collation
81 Safe collation before the ALTER and then restore it for columns which have a nondefault collation.
82 Collation mismatch
84 Use COLLATE to set the desired collation for the operation.
86 é and + e are not identical
87 Unicode normalization forms NFC Composed NFD Decomposed NFKC Composed NFKD Decomposed NFK removes compatibility distinction and will lose information. But this is useful for search etc.
88 Best practice: Normalize strings in your application
89 4-byte characters get silently lost on dump/restore
90 Set utf8mb4 as default charset for the connection mysqldump uses
94 Did you know a BOM can be in the middle of a string?
95 Fulltext search & CJK
96 Not every character has the same width
97 Not even if we use a monospace font
98 A character can have a width of 0, 1, 2 or -1 positions
100 Ligatures, Glyphs, Characters
101 Using Unicode
104 Virtual keyboards
105 Control characters
106 Charset is not a constraint
107 Replacement characters
108 MySQL and Unicode Daniël van Eeden Percona Live Amsterdam 23 September 2015 Welcome. My name is Daniël and I work for Booking.com This presentation is about MySQL and Unicode.
109 Booking.com is available in more than 40 languages So Unicode is important to us. Booking.com is available in more that 40 languages so Unicode is of critical importance to us
110 This is the booking.com website in Arabic Note that the text is also flowing from right to left
111 Also my name is Daniël, not Daniel My name is Daniël. There are dots on the 'e'. Those are important to me.
112 Also my name is Daniël, not DaniÃ«l The image here shows examples from letters I got in the mail. This happens quite often. Also on websites. Marking every special character as illegal is not a solution.
113 First some history Let's first start with some history about character sets
114 Before ASCII: baudot (5-bit, 1870) ASCII Let's start with ASCII. ASCII was invented in 1963 to allow comunication between systems of different vendors. A little known fact is that ASCII was not made for computers, but for teleprinters. One of the interesting decisions of ASCII was that it does not require state. It does not encode the 'shift'
115 Encodes characters as 7-bit In ASCII 1 character equals 1 byte.
116 The 8 th bit can be used as parity, but that was never common.
117 The 3568 ASCII astroid is named after it. Fun fact
118 ISO-8859 ISO-8859 was created in 1985 and is a set of 16 character sets. The most known one is ISO This included more than just english When the euro was introduced they replaced with and named it ISO
119 Uses the extra bit to be able to store a second set of 127 characters ISO-8859 Replaces ISO 646 (1972) which was a 7-bit mess. ECMA, the European Computer Manufacturers Association
120 The base characters (<127) are shared between ASCII and ISO-8859-? The base characters are shared between ASCII and ISO-8859
121 The other characters differ per country/region
122 Windows-1252 (CP1252) is mostly identical with ISO
123 ISO is also known as Latin1
124 Latin1 in MySQL is not ISO , but CP1252. mysql> SHOW CHARSET LIKE 'latin1'; Charset Description Default collation Maxlen latin1 cp1252 West European latin1_swedish_ci row in set (0.00 sec)
125 Unicode The work on Unicode started in 1987
126 Allows you to store text in any language Both alive and dead
127 Allows you to store text combining multiple languages in the same file
128 Each character gets a number (a.k.a. code point) and a description.
129 That doesn't guarantee your font will display it. You might see a replacement character instead. This can be a question mark or some square.
130 UTF-8 Unicode Transformation Format
131 This is an character encoding for unicode. It is not the only unicode enconding. UTF-16 (fixed: ucs2) UTF-32 (ucs4)
132 This translates from code points to a binary string.
133 UTF-8 and ASCII share the same characters for 0<127.
134 Non-ASCII characters are stored as 2, 3 or 4-bytes.
135 UTF-32 UTF-16 UTF-8 ISO ASCII Baudot Here you can see the minimum and maximum number of bytes required to store one character. The blue show minimum and the red shows the variable part. This shows that UTF-8 is efficient in terms of storage for latin scripts
136 If a byte starts with '0xxxxxxx' then it is a 1-byte character
137 If a byte starts with '110' it is a start of a 2- byte character.
138 If a byte starts with '10' then it is a continuation of a multibyte character.
139 If a byte starts with '1110' it is the start of a 3-byte character.
140 If a byte starts with '11110' it is the start of a 4-byte character.
141 Examples: a = ë = Here you can see the letter a and the letter e with the dots (diaeresis, trema)
142 UTF-8 And MySQL Now we get into MySQL specifics
143 Some reasons to use UTF-8 in MySQL
144 Non-english scripts like Chinese, Cyrillic or Greek. Names Comments URL's addresses
145 Emoji (including in the help text of your mobile app) Hamburger icon
146 utf8 in MySQL is an alias for utf8mb3
147 utf8mb3 can store 3-byte UTF-8
148 utf8mb4 can store 4-byte UTF-8 utf8mb4 exists since 5.5.3
149 Best practice: Always use utf8mb4, don't use utf8
150 Where to set the encoding?
151 It is set on a per-column basis
152 There is a per-table default
153 There is a per-database default Stored in db.opt Use ALTER DATABASE to change it
154 There is a per-server default: character_set_server
155 Connections also have a character set Set the character set in your connection properties If that isn't possible: Use SET NAMES utf8mb4
156 Drawbacks of UTF-8
157 So just set everything to utf8mb4? The question we want to answer is...
158 It depends The answer is...
159 Does your application support it? Input validation Character length Security
160 CHAR(10) suddenly needs 40 bytes!
161 TINYTEXT has a size limit in bytes With utf8m4 you can store between 63 and 255 characters. This also happens to other TEXT types and BLOB types
162 The MEMORY storage engine expands VARCHAR(10) to 40 bytes This affects: - User created tables - Internal temporary tables
163 With InnoDB your index grows over 767 bytes. Use innodb_large_prefex with COMPRESSED or DYNAMIC
164 Best practice: Use latin1 for server, database and table default. Enable Unicode on columns which need it. Or use utf8mb4 all the way if you don't need the efficiency and performance of latin1 Changing everything to VARBINARY and BLOB will not solve your issue.
165 Converting your data
166 How to convert from latin1 to utf8mb4?
167 ALTER TABLE t1 MODIFY COLUMN c1 VARCHAR(100) CHARACTER SET utf8mb4;
168 But I have many columns!
169 Use CONCAT() and information_schema to generate the statements
170 Or convert all columns: ALTER TABLE t1 CONVERT TO CHARACTER SET utf8mb4; Also for INSERTs!
171 Change defaults
172 Set character_set_server
173 ALTER SCHEMA s1 DEFAULT CHARACTER SET utf8mb4;
174 ALTER TABLE t1 DEFAULT CHARACTER SET utf8mb4;
175 Common failures
176 Application looks okay, but in MySQL the data looks wrong 'Search' in the application might not function correctly
177 The latin1 column was holding utf8 data already
178 Wrong conversion == garbage Don't just convert this data. Run a latin1 to UTF-8 conversion on data which already was UTF-8 will result in garbage.
179 Change column to varbinary and then to utf8mb4 to not convert the data.
180 The conversion fails and eats your data MySQL tries really hard to convert your data but this might not be possible.
181 Use sql_mode='strict_all_tables'
182 Now the operation will fail instead of truncate your data Also for inserts
183 Connection set to utf8, but data is 4-byte UTF-8. You can't insert 4-byte or request 4- byte characters
184 Collation support There is no utf8mb4_general_cs (case sensitive) There is utf8mb4_unicode_ci And utf8mb4_unicode_520_ci And utf8mb4_bin unicode_ci = UCA Unicode_520 UCA Latest 8.0.0
185 Here we compare the sun and moon emoji.
186 Special collations get lost during conversion Collation = Sorting & Equality
187 ALTER TABLE CONVERT TO only supports one collation
188 Safe collation before the ALTER and then restore it for columns which have a nondefault collation.
189 Collation mismatch
190 Here MySQL does not now which collation to use.
191 Use COLLATE to set the desired collation for the operation.
193 é and + e are not identical Combining characters
194 Unicode normalization forms NFC Composed NFD Decomposed NFKC Composed NFKD Decomposed NFK removes compatibility distinction and will lose information. But this is useful for search etc.
195 Best practice: Normalize strings in your application
196 4-byte characters get silently lost on dump/restore
197 Set utf8mb4 as default charset for the connection mysqldump uses
198 This shows what we can do with a patched mysql client. This uses unicode drawing characters
199 This shows the unicode character database imported into MySQL
201 Did you know a BOM can be in the middle of a string? Also MySQL doesn't handle BOM's well
202 Fulltext search & CJK
203 Not every character has the same width
204 Not even if we use a monospace font
205 A character can have a width of 0, 1, 2 or -1 positions
MIGRATION GUIDE Database Migration from MySQL to RDM Server A Birdstep Technology, Inc. Raima Embedded Database Division Migration Guide Published: May, 2009 Author: Daigoro F. Toyama Senior Software Engineer
Internationalizing the Domain Name System Šimon Hochla, Anisa Azis, Fara Nabilla Internationalize Internet Master in Innovation and Research in Informatics problematic of using non-ascii characters ease
MySQL Storage Engines Data in MySQL is stored in files (or memory) using a variety of different techniques. Each of these techniques employs different storage mechanisms, indexing facilities, locking levels
Case Study Product Internationalization of a ì THE CUSTOMER A US-based provider of proprietary Legal s and Archiving solutions, with a customizable document management framework. The customer s DMS was
Part 3. MySQL DBA I Exam Table of Contents 23. MySQL Architecture... 3 24. Starting, Stopping, and Configuring MySQL... 6 25. Client Programs for DBA Work... 11 26. MySQL Administrator... 15 27. Character
Unraveling Unicode: A Bag of Tricks for Bug Hunting Black Hat USA July 2009 Chris Weber www.lookout.net email@example.com Casaba Security Can you tell the difference? How about now? The Transformers
Multi-lingual Label Printing with Unicode White Paper Version 20100716 2009 SATO CORPORATION. All rights reserved. http://www.satoworldwide.com firstname.lastname@example.org 2009 SATO Corporation. All rights
In This Chapter This chapter describes several issues that a database administrator (DBA) must understand to effectively plan for a database. It discusses the following topics: Choosing a data model for
Oracle Database 11g Express Edition PL/SQL and Database Administration Concepts -II Slide 1: Hello and welcome back to the second part of this online, self-paced course titled Oracle Database 11g Express
Internationalized Domain Names - Getting them to work Gihan Dias LK Domain Registry What is IDN? Originally DNS names were restricted to the characters a-z (letters), 0-9 (digits) and '-' (hyphen) (LDH)
Unicode Security Software Vulnerability Testing Guide (DRAFT DOCUMENT this document is currently a preview in DRAFT form. Please contact me with corrections or feedback.) Software Globalization provides
Bits and Bytes Computer Literacy Lecture 4 29/09/2008 Lecture Overview Lecture Topics How computers encode information How to quantify information and memory How to represent and communicate binary data
Character Sets, Encodings, Java and Other Headaches Character Sets, Encodings, Java and Other Headaches Brian Clapper ArdenTex, Inc. email@example.com 1 Introduction Java can read, write, and convert among
FileMaker 14 ODBC and JDBC Guide 2004 2015 FileMaker, Inc. All Rights Reserved. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker and FileMaker Go are trademarks of FileMaker,
Version 3.5 2008 JasperSoft Corporation. All rights reserved. Printed in the U.S.A. JasperSoft, the JasperSoft logo, JasperAnalysis, JasperServer, JasperETL, JasperReports, JasperStudio, ireport, and Jasper4
FileMaker 13 ODBC and JDBC Guide 2004 2013 FileMaker, Inc. All Rights Reserved. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker and Bento are trademarks of FileMaker, Inc.
Preservation Handbook Plain text Author Version 2 Date 17.08.05 Change History Martin Wynne and Stuart Yeates Written by MW 2004. Revised by SY May 2005. Revised by MW August 2005. Page 1 of 7 File: presplaintext_d2.doc
Y ou have just inherited a production MySQL system and there is no confirmation that an existing MySQL backup strategy is in operation. What is the least you need to do? Before undertaking any backup strategy,
SQL Databases Course by Applied Technology Research Center. 23 September 2015 This course provides training for MySQL, Oracle, SQL Server and PostgreSQL databases. Oracle Topics This Oracle Database: SQL
Oracle University Contact Us: 1.800.529.0165 MySQL for Beginners Ed 3 Duration: 4 Days What you will learn The MySQL for Beginners course helps you learn about the world's most popular open source database.
SQL Server An Overview SQL Server Microsoft SQL Server is designed to work effectively in a number of environments: As a two-tier or multi-tier client/server database system As a desktop database system
HKSCS-2004 Support for Windows Platform Windows XP Font Pack for ISO 10646:2003 + Amendment 1 Traditional Chinese Support (HKSCS-2004) update for Windows XP and Windows Server 2003 June 2010 Version 1.0
Four ACEs A Survey of ASCII Compatible Encodings International Unicode Conference 22 September 2002 by Addison P. Phillips Director, Globalization Architecture c TABLE OF CONTENTS INTRODUCTION... 3 WHAT'S
Database Administration with MySQL Suitable For: Database administrators and system administrators who need to manage MySQL based services. Prerequisites: Practical knowledge of SQL Some knowledge of relational
ASCII Code Data coding Morse code was the first code used for long-distance communication. Samuel F.B. Morse invented it in 1844. This code is made up of dots and dashes (a sort of binary code). It was
& & 1 & 2 Lecture #7 2008 3 Terminology Structure & & Database server software referred to as Database Management Systems (DBMS) Database schemas describe database structure Data ordered in tables, rows
The Unicode Standard Version 8.0 Core Specification To learn about the latest version of the Unicode Standard, see http://www.unicode.org/versions/latest/. Many of the designations used by manufacturers
System Requirements Contents System Requirements... 2 Supported Operating Systems and Databases...2 Features with Additional Software Requirements... 2 Hardware Requirements... 4 Database Prerequisites...
Slide 1/30 Learning Objectives In this chapter you will learn about: Computer data Computer codes: representation of data in binary Most commonly used computer codes Collating sequence 36 Slide 2/30 Data
Chapter 2 Encoding Text with a Small Alphabet Given the nature of the Internet, we can break the process of understanding how information is transmitted into two components. First, we have to figure out
13 November 2007 22:30 Extracting META information from Interbase/Firebird SQL (INFORMATION_SCHEMA) By: http://www.alberton.info/firebird_sql_meta_info.html The SQL 2003 Standard introduced a new schema
How can I insert special characters, such as dingbats and accented letters, in my document? Article contributed by Suzanne Barnhill Many Word users don't realize how easy it is to insert special characters.
XtraBackup: Hot Backups and More Vadim Tkachenko Morgan Tocker http://percona.com http://mysqlperformanceblog.com MySQL CE Apr 2010 -2- Introduction Vadim Tkachenko Percona Inc, CTO and Lead of Development
Frequently Asked Questions on character sets and languages in MT and MX free format fields Version Final 17 January 2008 Preface The Frequently Asked Questions (FAQs) on character sets and languages that
SMPP protocol analysis using Wireshark (SMS) Document Purpose Help analyzing SMPP traffic using Wireshark. Give hints about common caveats and oddities of the SMPP protocol and its implementations. Most
Linas Virbalas Continuent, Inc. Heterogeneous Replication Replication between different types of DBMS / Introductions / What is Tungsten (the whole stack)? / A Word About MySQL Replication / Tungsten Replicator:
Salesforce Classic Guide for iphone Version 37.0, Summer 16 @salesforcedocs Last updated: July 12, 2016 Copyright 2000 2016 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark
Multilingual text processing difficulties Malek Boualem, Jérôme Vinesse CNET, 1. Introduction Users of more and more applications now require multilingual text processing tools, including word processors,
Comparison of Open Source RDBMS DRAFT WORK IN PROGRESS FEEDBACK REQUIRED Please send feedback and comments to firstname.lastname@example.org Selection of the Candidates As a first approach to find out which database
How to translate your website An overview of the steps to take if you are about to embark on a website localization project. Getting Started Translating websites can be an expensive and complex process.
Standard Screen Alarm History Display Sample Screen Manual Mitsubishi Electric Corporation Using the Samples The sample screen data and files such as the instruction manual can be used upon agreement to
IceWarp Unified Communications IceWarp Server Windows Installation Guide Version 11.4 Published on 2/10/2016 Contents IceWarp Server Windows... 4 Pre-requisites... 4 Launch Installer Wizard... 5 Select
Workstation Configuration Version 8.2 August 10, 2016 For the most recent version of this document, visit our documentation website. Table of Contents 1 Workstation configuration 3 1.1 Custom level Internet
The use of binary codes to represent characters Teacher s Notes Lesson Plan x Length 60 mins Specification Link 2.1.4/hi Character Learning objective (a) Explain the use of binary codes to represent characters
REVIEW OF NUMBER SYSTEMS Notes Unit 2 BINARY NUMBER SYSTEM In the decimal system, a decimal digit can take values from to 9. For the binary system, the counterpart of the decimal digit is the binary digit,
Teradata SQL Assistant Version 13.0 (.Net) Enhancements and Differences by Mike Dempsey Overview SQL Assistant 13.0 is an entirely new application that has been re-designed from the ground up. It has been
Introduction to Unicode By: Atif Gulzar Center for Research in Urdu Language Processing Introduction to Unicode Unicode Why Unicode? What is Unicode? Unicode Architecture Why Unicode? Pre-Unicode Standards
sqlite driver manual A libdbi driver using the SQLite embedded database engine Markus Hoenicka email@example.com sqlite driver manual: A libdbi driver using the SQLite embedded database engine
The future of International SEO The future of Search Engine Optimization (SEO) for International Business Whitepaper The World Wide Web is now allowing special characters in URLs which means crawlers now
Binary Representation The basis of all digital data is binary representation. Binary - means two 1, 0 True, False Hot, Cold On, Off We must be able to handle more than just values for real world problems
Character Codes for Modern Computers This lecture covers the standard ways in which characters are stored in modern computers. There are five main classes of characters. 1. Alphabetic characters: upper
HP Vertica Analytic Database Software Version: 7.0.x Document Release Date: 2/20/2015 Legal Notices Warranty The only warranties for HP products and services are set forth in the express warranty statements
Data Types Introduction A data type is category of data in computer programming. There are many types so are clustered into four broad categories (numeric, alphanumeric (characters and strings), dates,
ONTRACK POWERCONTROLS Ontrack PowerControls User Guide Version 8.0 Instructions for operating Ontrack PowerControls in Microsoft SQL Server Environments NOVEMBER 2014 NOTICE TO USERS Ontrack PowerControls
IBM Unica emessage Version 8 Release 6 February 13, 2015 User's Guide Note Before using this information and the product it supports, read the information in Notices on page 403. This edition applies to
REFERENCE GUIDE - P.1 ALTER KEYSPACE ALTER TABLE ALTER TYPE ALTER USER ALTER ( KEYSPACE SCHEMA ) keyspace_name WITH REPLICATION = map ( WITH DURABLE_WRITES = ( true false )) AND ( DURABLE_WRITES = ( true
Japanese Character Printers EPL2 Programming Manual Addendum This addendum contains information unique to Zebra Technologies Japanese character bar code printers. The Japanese configuration printers support
XML Character Encoding and Decoding January 2013 Table of Contents 1. Excellent quotes 2. Lots of character conversions taking place inside our computers and on the Web 3. Well-formedness error when encoding="..."
Workstation Configuration Version 8.0 May 10, 2013 For the most recent version of this document, visit our documentation website. Table of Contents 1 Workstation configuration 3 1.1 Custom level Internet
MySQL for Excel Abstract This is the MySQL for Excel Reference Manual. It documents MySQL for Excel 1.3 through 1.3.6. Much of the documentation also applies to the previous 1.2 series. For notes detailing
A Brief Introduction to MySQL by Derek Schuurman Introduction to Databases A database is a structured collection of logically related data. One common type of database is the relational database, a term
Objectives for Crime Scene Investigation How to be a CSI (encoding Crime Scene Investigator) ex exin Internationalization Architect Yahoo Inc. Have some fun Prevent death by bullet points Introduce strategies
MailSteward Pro Manual Page 1 Mailsteward Pro Table of Contents Introduction: 2 Installing MySQL : 6 Connect to MySQL Server: 8 Meeting Federal Legal Requirements: 11 Settings: 12 Archive Email: 15 Search
An Email Newsletter Using ASP Smart Mailer and Advanced HTML Editor This tutorial is going to take you through creating a mailing list application to send out a newsletter for your site. We'll be using
OmniDB - User s Guide Rafael T. Castro, Luis Felipe T. Castro and William Ivanski 2016 Rafael T. Castro, Luis Felipe T. Castro and William Ivanski Contents 1. Introduction...........................................
Oracle For Beginners Page : 1 3.GETTING STARTED WITH ORACLE8i Creating a table Datatypes Displaying table definition using DESCRIBE Inserting rows into a table Selecting rows from a table Editing SQL buffer
XML CIS-3152, Spring 2013 Peter C. Chapin Markup Languages Plain text documents with special commands PRO Plays well with version control and other program development tools. Easy to manipulate with scripts
Today s topics! Binary Numbers! Brookshear.-.! Slides from Prof. Marti Hearst of UC Berkeley SIMS! Upcoming! Networks Interactive Introduction to Graph Theory http://www.utm.edu/cgi-bin/caldwell/tutor/departments/math/graph/intro