MySQL数据类型:
字符型
数值型
日期时间型
內建类型
字符型:char, binary:定长数据类型;
varchar, varbinary:变长数据类型; 需要结束符(占据至少一个字节的空间)
text: tinytest, text, mediumtext, longtext (字符个数)
blob: tinyblob, blob, mediumblob, longblob
enum, set
数值型:
精确数值型:
整型:tinyint, smallint, mediumint, int, bigint (28 216 224 232 264...
十进制型: decimal
近似数值型:
浮点型:
float
double
日期时间型:
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_INCTEMENT:
unsigned
primary key | unique key
NOT NULL
mysql> select last_insert_id();
日期时间修饰符:
not null
null
default
内建类型setheenum的修饰符:
not null
null
default
SQL mode: 定义mysql对约束上的响应行为:
修改方式:
mysql> set global sql_mode='mode';
mysql> set @@global.sql_mode='mode';
需要修改权限;仅对修改后新创建的会话有效,对已经建立的会话无效;
mysql>set [session] sql_mode='MODE'
mysql> set @@session.sql_mode='MODE'
常用MODE: TEADITIONAL, STRICT_TRANS_TABLES, or STRICT_ALL_TABLES
SQL语句:DDL, DML
DDL:数据定义语言
create, alter, drop
DB组件:数据库、表、索引、视图、用户、存储过程、存储函数、触发器、事件调度器等
create相关的常用命令:
CREATE DATABASE
CREATE EVENT
CREATE FUNCTION
CREATE FUNCTION UDF
CREATE INDEX
CREATE LOGFILE GROUP
CREATE PROCEDURE
CREATE SERVER
CREATE TABLE
CREATE TABLESPACE
CREATE TRIGGER
CREATE USER
CREATE VIEW
DML:数据操作语言
insert, 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]
[IGNORE | REPLACE]
[AS] query_expression
(3)通过复制现存的表的表结构创建;(不复制数据)
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
{ LIKE old_tbl_name | (LIKE old_tbl_name) }
注意:Storage Engine是指标类型,也即在表创建时指明其使用的存储引擎;
同一个库中表要使用同一种存储引擎类型;
查看表结构:
describe tb1_name;
查看表状态信息:
show [full] tables [{from | in} db_name] [like 'pattern' | where expr] 例如:mysql> show table status like 't1' G
修改表: alter table
删除表: drop table