|
SQL:ANSI SQL标准
SQL-86,SQL-89,SQL-92,SQL-99.SQL-03
MySQL 数据类型:
字符型
数值型
日期时间型
内建类型
字符型:
CHAR,BINARY: 定长数据类型:
VARCHAR,VARBINARY: 变长数据类型:
TEXT:TINYTEST,TEXT,MEDIUMTEXT,LONGTEXT
BLOB:TINYBLOB,BLOB,MEDIUMBLOB,LONGBLOB
ENUM,SET
数值型:
精确数值型
整型:TINYINT,SMALLINT,MEDIUMINT,INT,BIGINT
十进制型:DECIMAL
近似数值型
浮点型:
FLOAT
DOUBLE
BIT
日期时间型:
DATE
TIME
DATETIME
TIMESTAMP
YEAR(2),YEAR(4)
字符类型修饰符:
NOT NULL:非空约束
NULL
DEFAULT "STRING":指名默认值;
CHARACTER SET "":使用的字符集
COLLATION:使用的排序规则
mysql> SHOW CHARACTER SET;
mysql> SHOW COLLATION;
整形修饰符:
NOT NULL
NULL
DEFAULT NUMBER
AUTO_INCREMENT;
UNSIGNED
PRIMARY KEY|UNIQUE KEY
NOT NULL
mysql> SELECT LAST_INSTER_ID()
日期时间形修饰符:
NOT NULL
NULL
DEFAULT
内建类型SET和ENUM的修饰符:
NOT NULL
NULL
DEFAULT
SQL MOOD:定义mysqld对约束等的响应行为:
修改方式:
mysql> SET GLOBAL sql_mode='MOED';
mysql> SET @@GLOBAL.sql-mode='MODE';
需要修改权限:仅对修改后新创建的会话有效,对已经建立的会话无效;
mysql> SET SESSION sql_mode='MOED';
mysql> SET @@SESSION.sql-mode='MODE';
常用MODE: TRADITIONAL, STRICT_TRANS_TABLES,or STRICT_ALL_TABLES
SQL:DDL,DML
DDL:数据定义语言:
CREATE ,ALTER,DORP
DB组件:数据库、表、索引、视图、用户、存储过程、存储函数、触发器、时间调度器等
CREATE相关的常用命令:
CREATE DATABASE
CREATE EVENT
CREATE FUNCTION
CREATE FUNCTION UDF
CREATE INDEX
CREATE PROCEDURE
CREATE SERVER
CREATE TABLE
CREATE TABLESPACE
CREATE TRIGGER
CREATE USER
CREATE VIEW
DML:数据操作语言:
INSTER,DELETE,UPDATE,SELECT
数据库:
CREATE,ALTER,DROP
{DATABASE|SCHEMA}
[IF EXISTS]
[IF NOT EXISTS]
表:二维关系:
设计表:遵循规范:
定义:字段,索引
字段:字段名,字段数据类型,修改符
约束,索引:应该创建在经常用作查询条件的字段上;
索引:实现级别在存储引擎;
分类:
稠密索引、稀疏索引
B+索引、HASH索引、R树索引,FULLTEXT索引
聚集索引、非聚集索引
创建表:CREATE TABLE
(1) 直接创建
(2)通过查询现存的表创建
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
(create_definition,...)
[table_options]
[partition_options]
(3)通过复制现存表的表结构创建:不复制表数据
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
{ LIKE old_tbl_name | (LIKE old_tbl_name) }
注意:Storage Engine是指表类型,即在表创建时指名使用的存储引擎;
同一个库中表要使用同一种存储引擎类型;
查看表结构;
DESC tb1_name;
修改表:alter table;
删除表:drop table;
|
|
|