SQL Server/T-SQL Tutorial/Data Types/Char

Материал из SQL эксперт
Перейти к: навигация, поиск

CHAR type column

2> CREATE TABLE employee (emp_no INTEGER NOT NULL,
3>                   emp_fname CHAR(20) NOT NULL,
4>                   emp_lname CHAR(20) NOT NULL,
5>                   dept_no CHAR(4) NULL)
6>
7> GO
1>
2> drop table employee;
3> GO
1>


Char type keeps the empty spaces

16> --SET ANSI_PADDING OFF
17>
18> --DROP TABLE checkpad
19> --GO
20>
21> CREATE TABLE checkpad
22> (
23> rowid        smallint       NOT NULL PRIMARY KEY,
24> c10not       char(10)       NOT NULL,
25> c10nul       char(10)       NULL,
26> v10not       varchar(10)    NOT NULL,
27> v10nul       varchar(10)    NULL
28> )
29> GO
1> -- Row 1 has names with no trailing blanks
2> INSERT checkpad VALUES (1, "John", "John", "John", "John")
3>
4> -- Row 2 has each name inserted with three trailing blanks
5> INSERT checkpad VALUES
6>     (2, "John   ", "John   ", "John   ", "John   ")
7>
8> -- Row 3 has each name inserted with a full six trailing blanks
9> INSERT checkpad VALUES
10>     (3, "John      ", "John      ", "John      ", "John      ")
11>
12> -- Row 4 has each name inserted with seven trailing blanks (too many)
13> INSERT checkpad VALUES
14>     (4, "John       ", "John       ", "John       ", "John       ")
15> GO
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
1>
2> drop table checkpad
3> GO


Combine char and varchar type data with "+"

1>
2>
3>
4>
5> CREATE TABLE authors(
6>    au_id          varchar(11),
7>    au_lname       varchar(40)       NOT NULL,
8>    au_fname       varchar(20)       NOT NULL,
9>    phone          char(12)          NOT NULL DEFAULT ("UNKNOWN"),
10>    address        varchar(40)           NULL,
11>    city           varchar(20)           NULL,
12>    state          char(2)               NULL,
13>    zip            char(5)               NULL,
14>    contract       bit               NOT NULL
15> )
16> GO
1> insert authors values("1",  "Joe",   "Abra",   "111 111-1111", "6 St.", "Berkeley",  "CA", "11111", 1)
2> insert authors values("2",  "Jack",  "Majo",   "222 222-2222", "3 St.", "Oakland" ,  "CA", "22222", 1)
3> insert authors values("3",  "Pink",  "Cherry", "333 333-3333", "5 Ln.", "Vancouver", "BC", "33333", 1)
4> insert authors values("4",  "Blue",  "Albert", "444 444-4444", "7 Av.", "Vancouver", "BC", "44444", 1)
5> insert authors values("5",  "Red",   "Anne",   "555 555-5555", "6 Av.", "Regina",    "SK", "55555", 1)
6> insert authors values("6",  "Black", "Michel", "666 666-6666", "3 Pl.", "Regina",    "SK", "66666", 1)
7> insert authors values("7",  "White", "Sylvia", "777 777-7777", "1 Pl.", "Rockville", "MD", "77777", 1)
8> insert authors values("8",  "Yellow","Heather","888 888-8888", "3 Pu",  "Vacaville", "CA", "88888", 0)
9> insert authors values("9",  "Gold",  "Dep",    "999 999-9999", "5 Av.", "Oakland",   "CA", "99999", 0)
10> insert authors values("10", "Siler", "Dean",   "000 000-0000", "4 Av.", "Oakland",   "CA", "00000", 1)
11> GO
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
1>
2>
3>
4> SELECT "author"=au_lname + ", " + au_fname FROM authors
5> GO
author
--------------------------------------------------------------
Joe, Abra
Jack, Majo
Pink, Cherry
Blue, Albert
Red, Anne
Black, Michel
White, Sylvia
Yellow, Heather
Gold, Dep
Siler, Dean
(10 rows affected)
1>
2> drop table authors;
3> GO
1>


Compare char type data in upper case

3> CREATE TABLE authors(
4>    au_id          varchar(11),
5>    au_lname       varchar(40)       NOT NULL,
6>    au_fname       varchar(20)       NOT NULL,
7>    phone          char(12)          NOT NULL DEFAULT ("UNKNOWN"),
8>    address        varchar(40)           NULL,
9>    city           varchar(20)           NULL,
10>    state          char(2)               NULL,
11>    zip            char(5)               NULL,
12>    contract       bit               NOT NULL
13> )
14> GO
1> insert authors values("1",  "Joe",   "Abra",   "111 111-1111", "6 St.", "Berkeley",  "CA", "11111", 1)
2> insert authors values("2",  "Jack",  "Majo",   "222 222-2222", "3 St.", "Oakland" ,  "CA", "22222", 1)
3> insert authors values("3",  "Pink",  "Cherry", "333 333-3333", "5 Ln.", "Vancouver", "BC", "33333", 1)
4> insert authors values("4",  "Blue",  "Albert", "444 444-4444", "7 Av.", "Vancouver", "BC", "44444", 1)
5> insert authors values("5",  "Red",   "Anne",   "555 555-5555", "6 Av.", "Regina",    "SK", "55555", 1)
6> insert authors values("6",  "Black", "Michel", "666 666-6666", "3 Pl.", "Regina",    "SK", "66666", 1)
7> insert authors values("7",  "White", "Sylvia", "777 777-7777", "1 Pl.", "Rockville", "MD", "77777", 1)
8> insert authors values("8",  "Yellow","Heather","888 888-8888", "3 Pu",  "Vacaville", "CA", "88888", 0)
9> insert authors values("9",  "Gold",  "Dep",    "999 999-9999", "5 Av.", "Oakland",   "CA", "99999", 0)
10> insert authors values("10", "Siler", "Dean",   "000 000-0000", "4 Av.", "Oakland",   "CA", "00000", 1)
11> GO
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
1>
2> SELECT COUNT(*) FROM authors_CS WHERE UPPER(au_lname)="CARSON"
3> GO
-----------
          0
(1 rows affected)
1>
2> drop table authors;
3> GO