SQL:ANSI SQL標準mysql
SQL-86,SQL-89,SQL-92,SQL-99.SQL-03
sql
MySQL 數據類型:數據庫
字符型
ide
數值型
函數
日期時間型
spa
內建類型
設計
字符型:
orm
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;