基础概念
- 数据库 (database)
数据库是一个以某种有组织的方式存储的数据集合。
- 表(table)
表是一种结构化的文件,可用来存储某种特定类型的数据。
1、存储在表中的数据是同一种类型的数据或清单
2、同一个数据库中表名唯一
- 列(column)
表中的一个字段。所有表都是由一个或多个列组成的。
行(row)
表中的一个记录,数据按行存储主键(primary key)
表中每一行都应该有一列(或几列)可以唯一标识行数据,称为主键(单列或多列)
主键用来表示一个 特定的行。没有主键,更新或删除表中特定行就极为困难,因为你不能 保证操作只涉及相关的行。
创建数据库时应该保证每个表都具有一个主键
主键特性:
1、表内唯一
2、非空
3、主键值不能修改、更新、重用
(比如主键值1、2、3,删掉3后,新增数据的主键值应该为4,3不可重用)
数据处理
1、分解数据
分解数据 是很重要的一步操作,这个将决定你的数据库的易用性和可拓展性。
不同的数据要用不同的列进行表示
·
正确地将数据分解为多个列极为重要。例如,城市、州、邮政编码 应该总是彼此独立的列。通过分解这些数据,才有可能利用特定的列对数据进行分类和过滤(如找出特定州或特定城市的所有顾客)
2、数据类型
每列都有相应的数据类型,它限制了存储的数据。
也可以帮助正确地分类数据,并在优化磁盘使用方面起 重要的作用。
数据类型及其名称是 SQL不兼容的一个主要原因
不同的DBMS(数据库管理系统)有些高级数据类型是不一样的。
而且偶然会有相同的数据类型在不同的 DBMS(数据库管理系统)中具有不同的名称
什么是SQL
SQL是一种专门用来与数据库沟通的语言,是Structured Query Language(结构化查询语言)的缩写
关键字
关键字不能用作表或列的名字,他们是 SQL 的保留字,常见的关键字有:
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"
]
}