| |||||||
| Knowledgebase Articles and information about running a website, cPanel and various hints and tips. Here you will find tutorials on php, MySql, .htaccess, cron, SEO, Search Engines, CHMOD, FTP, CSS, HTML and various other hints and tips on running and Administrating a website. |
![]() |
| |
|
#1
| ||||
| ||||
| Data Types Like all other computer languages, SQL deals with data. So let's first look at how SQL defines data. Data Type: A group of data that shares some common characteristics and operations. SQL defines the following data types:
Now we know what types of data SQL must work with. The next step is to understand how different types of data are represented in binary forms. Since computers can only work with binary digits, we have to represent all data in computer memory in binary forms. 1. Character String - A character string is usually represented in memory as an array of characters. Each character is represented in 8 bits (one byte) or 16 bits (two bytes) based on the character set and the character encoding schema. For example, with ASCII character set and its encoding schema, character "A" will be represented as "01000001". Character "1" will be represented as "00110001". Character string "ABC" will be represented as "010000010100001001000011". 2. Bit String - The binary representation of a bit string should be easy. A bit string should be represented in memory as it is. Bit string "01000001" should be represented as "01000001". There might an issue with memory allocation, because computer allocates memory in units of bytes (8 bits per byte). If the length of a bit string is not multiples of 8 bits, the last allocated byte is not full. How to handle the empty space in the last byte? I guess different SQL implementation will have different rules. 3. Exact Number - Exact numbers can be divided into two groups: integers and non-integers. An integer is an exact number with scale of 0. An integer is represented in either 4 bytes or 8 bytes based on the signed binary value system. For example, with 4 bytes, integer "1" will be represented as "00000000000000000000000000000001". Integer "-1" will be represented as "1111111111111111111111111111111". As for exact non-integer numbers, I don't know exactly how they will be represented in binary forms. 4. Approximate Number - An approximate number is normally represented in binary form according to the IEEE 754 single-precision or double-precision standards in either 4 bytes or 8 bytes. The binary representation is divided into 3 components with different number of bits assigned to each components: Code: Sign Exponent Fraction Total Single-Precision 1 8 23 32 Double-Precision 1 11 52 64 5. Data and Time - A date and time value is usually stored in memory as an exact integer number with 8 bytes representing an instance by measuring the time period between this instance and a reference time point in millisecond precision, second fraction precision of 3. How MySQL is store date and time values? We will try to find out later. Data Literals Now we know the types of data, and how they are stored in memory. Next we need know how data can get in to the computer. One way is to enter it through the program source code as a data literal. Data Literal: An program source element that represents a data value. Data literals can be divided into multiple groups depending the type of the data it is representing and how it is representing. 1. Character String Literals are used to construct character strings, exact numbers, approximate numbers and data and time values. The syntax rules of character string literals are pretty simple:
Quote:
Code: x'41424344' x'31323334' x'31323334' x'01' x'0001' x'ff' x'ffffffff' x'ffffffffffffffff'
Quote:
Quote:
__________________ Knowledgebase | SEO | Free Scripts | Free Graphics | Free Wordpress Themes | Free Word Cloud Script | Domains For Sale | Optimize Your Forum |
![]() Ultimate Wordpress Commenter |
|
#2
| ||||
| ||||
| 5. Time Interval Literals are used to construct time intervals with different time units.
Code: INTERVAL '3' YEAR INTERVAL '1' DAY INTERVAL '4' MONTH INTERVAL '1' HOUR INTERVAL '5' MINUTE INTERVAL '9' SECOND Data Literal Evaluation Data literal evaluation is the process converting a data literal to a particular value of a particular data type. This data type must match the type of the expression where the literal is located. Expressions will be reviewed in the next chapter. Now let's look at some of the data literal evaluation rules for each type of data literals. 1. Character String Literals can be evaluated character strings, exact numbers, approximate numbers and data and time values. The evaluation rules are:
Example 1 - CharStringLiterals.sql: Quote:
Code: LINE_1 Hello world! LINE_2 Loews L'Enfant Plaza LINE_3 123 LINE_4 0.0123 LINE_5 1
Code: -- HexStringLiterals.sql -- SELECT x'41424344' AS LINE_1; SELECT x'31323334' AS LINE_2; SELECT x'31323334' + 0 AS LINE_3; SELECT x'01' + 0 AS LINE_4; SELECT x'0001' + 0 AS LINE_5; SELECT x'ff' + 0 AS LINE_6; SELECT x'ffffffff' + 0 AS LINE_7; SELECT x'ffffffffffffffff' + 0 AS LINE_8; Code: LINE_1 ABCD LINE_2 1234 LINE_3 825373492 LINE_4 1 LINE_5 1 LINE_6 255 LINE_7 4294967295 LINE_8 -1
Code: -- NumericLiterals.sql -- Copyright (c) 1999 by Dr. Herong Yang -- SELECT 1 AS LINE_1; SELECT -2 AS LINE_2; SELECT 3.3 AS LINE_3; SELECT -4.4e+4 AS LINE_4; SELECT 12345678901234567890 AS LINE_5; SELECT 0.12345678901234567890 AS LINE_6; SELECT 1234567890.1234567890 AS LINE_7; SELECT 12345678901234567890.1234567890 AS LINE_8; SELECT 1234567890.1234567890e+10 AS LINE_9; SELECT 0.0000000000000000000012345678901234567890 AS LINE_10; SELECT 1.0e+1234567890 AS LINE_11; Code: LINE_1 1 LINE_2 -2 LINE_3 3.3 LINE_4 -44000 LINE_5 123456789012345680000000000000 LINE_6 0.12345678901234568000 LINE_7 1234567890.1234567000 LINE_8 12345678901234567000.0000000000 LINE_9 1.2345678901235e+019 LINE_10 1.2345678901235e-021 LINE_11 1.#INF
__________________ Knowledgebase | SEO | Free Scripts | Free Graphics | Free Wordpress Themes | Free Word Cloud Script | Domains For Sale | Optimize Your Forum |
|
#3
| |||
| |||
|
I didnt know this was so complicated.
|
![]() Ultimate Wordpress Commenter |
![]() |
| Tools | |
| Display Modes | |