基礎(chǔ)概念
- 數(shù)據(jù)庫 (database)
數(shù)據(jù)庫是一個以某種有組織的方式存儲的數(shù)據(jù)集合。
- 表(table)
表是一種結(jié)構(gòu)化的文件,可用來存儲某種特定類型的數(shù)據(jù)。
1、存儲在表中的數(shù)據(jù)是同一種類型的數(shù)據(jù)或清單
2、同一個數(shù)據(jù)庫中表名唯一
- 列(column)
表中的一個字段。所有表都是由一個或多個列組成的。
行(row)
表中的一個記錄,數(shù)據(jù)按行存儲主鍵(primary key)
表中每一行都應(yīng)該有一列(或幾列)可以唯一標(biāo)識行數(shù)據(jù),稱為主鍵(單列或多列)
主鍵用來表示一個 特定的行。沒有主鍵,更新或刪除表中特定行就極為困難,因?yàn)槟悴荒?保證操作只涉及相關(guān)的行。
創(chuàng)建數(shù)據(jù)庫時應(yīng)該保證每個表都具有一個主鍵
主鍵特性:
1、表內(nèi)唯一
2、非空
3、主鍵值不能修改、更新、重用
(比如主鍵值1、2、3,刪掉3后,新增數(shù)據(jù)的主鍵值應(yīng)該為4,3不可重用)
數(shù)據(jù)處理
1、分解數(shù)據(jù)
分解數(shù)據(jù) 是很重要的一步操作,這個將決定你的數(shù)據(jù)庫的易用性和可拓展性。
不同的數(shù)據(jù)要用不同的列進(jìn)行表示
·
正確地將數(shù)據(jù)分解為多個列極為重要。例如,城市、州、郵政編碼 應(yīng)該總是彼此獨(dú)立的列。通過分解這些數(shù)據(jù),才有可能利用特定的列對數(shù)據(jù)進(jìn)行分類和過濾(如找出特定州或特定城市的所有顧客)
2、數(shù)據(jù)類型
每列都有相應(yīng)的數(shù)據(jù)類型,它限制了存儲的數(shù)據(jù)。
也可以幫助正確地分類數(shù)據(jù),并在優(yōu)化磁盤使用方面起 重要的作用。
數(shù)據(jù)類型及其名稱是 SQL不兼容的一個主要原因
不同的DBMS(數(shù)據(jù)庫管理系統(tǒng))有些高級數(shù)據(jù)類型是不一樣的。
而且偶然會有相同的數(shù)據(jù)類型在不同的 DBMS(數(shù)據(jù)庫管理系統(tǒng))中具有不同的名稱
什么是SQL
SQL是一種專門用來與數(shù)據(jù)庫溝通的語言,是Structured Query Language(結(jié)構(gòu)化查詢語言)的縮寫
關(guān)鍵字
關(guān)鍵字不能用作表或列的名字,他們是 SQL 的保留字,常見的關(guān)鍵字有:
A
{
"A": [
"ABORT",
"ABSOLUTE",
"ACTION",
"ACTIVE",
"ADD",
"AFTER",
"ALL",
"ALLOCATE",
"ALTER",
"ANALYZE",
"AND",
"ANY",
"ARE",
"AS",
"ASC",
"ASCENDING",
"ASSERTION",
"AT",
"AUTHORIZATION",
"AUTO",
"AUTO-INCREMENT",
"AUTOINC",
"AVG"
]
}
B
{
"B": [
"BACKUP",
"BEFORE",
"BEGIN",
"BETWEEN",
"BIGINT",
"BINARY",
"BIT",
"BLOB",
"BOOLEAN",
"BOTH",
"BREAK",
"BROWSE",
"BULK",
"BY",
"BYTES"
]
}
C
{
"C": [
"CACHE",
"CALL",
"CASCADE",
"CASCADED",
"CASE",
"CAST",
"CATALOG",
"CHANGE",
"CHAR",
"CHARACTER",
"CHARACTER_LENGTH",
"CHECK",
"CHECKPOINT",
"CLOSE",
"CLUSTER",
"CLUSTERED",
"COALESCE",
"COLLATE",
"COLUMN",
"COLUMNS",
"COMMENT",
"COMMIT",
"COMMITTED",
"COMPUTE",
"COMPUTED",
"CONDITIONAL",
"CONFIRM",
"CONNECT",
"CONNECTION",
"CONSTRAINT",
"CONSTRAINTS",
"CONTAINING",
"CONTAINS",
"CONTAINSTABLE",
"CONTINUE",
"CONTROLROW",
"CONVERT",
"COPY",
"COUNT",
"CREATE",
"CROSS",
"CSTRING",
"CUBE",
"CURRENT",
"CURRENT_DATE",
"CURRENT_TIME",
"CURRENT_TIMESTAMP",
"CURRENT_USER",
"CURSOR"
]
}
D
{
"D": [
"DATABASE",
"DATABASES",
"DATE",
"DATETIME",
"DAY",
"DBCC",
"DEALLOCATE",
"DEBUG",
"DEC",
"DECIMAL",
"DECLARE",
"DEFAULT",
"DELETE",
"DENY",
"DESC",
"DESCENDING",
"DESCRIBE",
"DISCONNECT",
"DISK",
"DISTINCT",
"DISTRIBUTED",
"DIV",
"DO",
"DOMAIN",
"DOUBLE",
"DROP",
"DUMMY",
"DUMP"
]
}
E
{
"E": [
"ELSE",
"ELSEIF",
"ENCLOSED",
"END",
"ERRLVL",
"ERROREXIT",
"ESCAPE",
"ESCAPED",
"EXCEPT",
"EXCEPTION",
"EXEC",
"EXECUTE",
"EXISTS",
"EXIT",
"EXPLAIN",
"EXTEND",
"EXTERNAL",
"EXTRACT"
]
}
F
{
"F": [
"FALSE",
"FETCH",
"FIELD",
"FIELDS",
"FILE",
"FILLFACTOR",
"FILTER",
"FLOAT",
"FLOPPY",
"FOR",
"FORCE",
"FOREIGN",
"FOUND",
"FREETEXT",
"FREETEXTTABLE",
"FROM",
"FULL",
"FUNCTION"
]
}
G
{
"G": [
"GENERATOR",
"GET",
"GLOBAL",
"GO",
"GOTO",
"GRANT",
"GROUP"
]
}
H
{
"H": [
"HAVING",
"HOLDLOCK",
"HOUR"
]
}
I
{
"I": [
"IDENTITY",
"IF",
"IN",
"INACTIVE",
"INDEX",
"INDICATOR",
"INFILE",
"INNER",
"INOUT",
"INPUT",
"INSENSITIVE",
"INSERT",
"INT",
"INTEGER",
"INTERSECT",
"INTERVAL",
"INTO",
"IS",
"ISOLATION"
]
}
J
{
"H": [
"JOIN"
]
}
K
{
"K": [
"KEY",
"KILL"
]
}
L
{
"L": [
"LANGUAGE",
"LAST",
"LEADING",
"LEFT",
"LENGTH",
"LEVEL",
"LIKE",
"LIMIT",
"LINENO",
"LINES",
"LISTEN",
"LOAD",
"LOCAL",
"LOCK",
"LOGFILE",
"LONG",
"LOWER"
]
}
M
{
"M": [
"MANUAL",
"MATCH",
"MAX",
"MERGE",
"MESSAGE",
"MIN",
"MINUTE",
"MIRROREXIT",
"MODULE",
"MONEY",
"MONTH",
"MOVE"
]
}
N
{
"N": [
"NAMES",
"NATIONAL",
"NATURAL",
"NCHAR",
"NEXT",
"NEW",
"NO",
"NOCHECK",
"NONCLUSTERED",
"NONE",
"NOT"
]
}
O
{
"O": [
"OF",
"OFF",
"OFFSET",
"OFFSETS",
"ON",
"ONCE",
"ONLY",
"OPEN",
"OPTION",
"OR",
"ORDER",
"OUTER",
"OUTPUT",
"OVER",
"OVERFLOW",
"OVERLAPS"
]
}
P
{
"P": [
"PAD",
"PAGE",
"PAGES",
"PARAMETER",
"PARTIAL",
"PASSWORD",
"PERCENT",
"PERM",
"PERMANENT",
"PIPE",
"PLAN",
"POSITION",
"PRECISION",
"PREPARE",
"PRIMARY",
"PRINT",
"PRIOR",
"PRIVILEGES",
"PROC",
"PROCEDURE",
"PROCESSEXIT",
"PROTECTED",
"PUBLIC",
"PURGE"
]
}
R
{
"R": [
"RAISERROR",
"READ",
"READTEXT",
"REAL",
"REFERENCES",
"REGEXP",
"RELATIVE",
"RENAME",
"REPEAT",
"REPLACE",
"REPLICATION",
"REQUIRE",
"RESERV",
"RESERVING",
"RESET",
"RESTORE",
"RESTRICT",
"RETAIN",
"RETURN",
"RETURNS",
"REVOKE",
"RIGHT",
"ROLLBACK",
"ROLLUP",
"ROWCOUNT",
"RULE"
]
}
S
{
"S": [
"SAVE",
"SAVEPOINT",
"SCHEMA",
"SECOND",
"SECTION",
"SEGMENT",
"SELECT",
"SENSITIVE",
"SEPARATOR",
"SEQUENCE",
"SESSION_USER",
"SET",
"SETUSER",
"SHADOW",
"SHARED",
"SHOW",
"SHUTDOWN",
"SINGULAR",
"SIZE",
"SMALLINT",
"SNAPSHOT",
"SOME",
"SORT",
"SPACE",
"SQL",
"SQLCODE",
"SQLERROR",
"STABILITY",
"STARTING",
"STARTS",
"STATISTICS",
"SUBSTRING",
"SUM",
"SUSPEND"
]
}
T
{
"T": [
"TABLE",
"TABLES",
"TAPE",
"TEMP",
"TEMPORARY",
"TEXT",
"TEXTSIZE",
"THEN",
"TIME",
"TIMESTAMP",
"TO",
"TOP",
"TRAILING",
"TRAN",
"TRANSACTION",
"TRANSLATE",
"TRIGGER",
"TRIM",
"TRUE",
"TRUNCATE"
]
}
U
{
"U": [
"UNCOMMITTED",
"UNION",
"UNIQUE",
"UNTIL",
"UPDATE",
"UPDATETEXT",
"UPPER",
"USAGE",
"USE",
"USER",
"USING"
]
}
V
{
"V": [
"VALUE",
"VALUES",
"VARCHAR",
"VARIABLE",
"VARYING",
"VERBOSE",
"VIEW",
"VOLUME"
]
}
W
{
"W": [
"WAIT",
"WAITFOR",
"WHEN",
"WHERE",
"WHILE",
"WITH",
"WORK",
"WRITE",
"WRITETEXT"
]
}
X
{
"X": [
"XOR"
]
}
Y
{
"Y": [
"YEAR"
]
}
Z
{
"Z": [
"ZONE"
]
}