mysql 基础 ddl dml 总结
2017-02-15 22:08
309 查看
首先需要说明:数据库到底是怎么存储数据库的! (现在的数据库基本都是关系数据库)
数据库是以二维表的形式存储数据的(有点像Excel 的样子)
表中每一列必须有一个列名,数据类型和约束,每一行数据都表示一个数据实体。每个数据库可以有多张表。
可以提供多个给多个用户使用,多个数据库都存储在一个数据库服务器(程序)中
SQL:(结构化查询语句(Structured Query Language),用于操作数据库以及数据库中的表)
主要分为:
1.DDL(Data Definition Language):数据定义语言 主要有:(CREATE ALTER DROP
)
2.DML(Data Manipulation Language ):数据操纵语言 主要有:(插入:INSERT2)
更新:UPDATE3)
删除:DELETE)
3.DQL(Data Query Language): 数据查询语言
SELECT<字段名表> FROM <表或视图名
> WHERE<查询条件>
4.TCL(Transaction Control Language): 事务控制语言
文件后缀名的说明:
数据类型:
1.整数类型
tinyint :无符号(0-255)
有符号(-128
到127)
1字节
smallint :
2字节
mediumint :
3字节
int :
4字节
bigint : 8字节
2.浮点型
float : 4字节
double : 8字节
1. 定点数
decimal(数据类型,小数长度)
4.日期时间类型
Year : 00-99
之间的数: 00-69
的年表示2000-2069 70-99
表示1970-1999
需要区分字符的‘00’和0
‘0’表示2000年 0
表示的值为0000
date:可以存储yyyy-mm-dd
或者 yyyymmdd
的字符串或存储yy-mm-dd和YYMMDD
的字符串值,还可以使用YY-MM-DD
和YYMMDD的数字格式
‘2017-2-14’或‘20170214’
‘17-2-14’或‘170214’
17-2-14 或
170214
使用now()或current_date
表示当前系统时间
time :可以存储‘D HH-MM-SS’, D
表示日,0-34之间的值,表示的小时数为 D*24
eg:‘2 12:32:25’表示的‘60:32:25‘
;
可以使用HHMMSS的字符串或数字表示,‘144025’和144025
都表示14:40:25
datetime :
日期时间 eg:‘2017-02-14 14:44:30‘ 或20170214144430
或 ‘17-02-14 14:44:30‘或170214144430
或‘0170214144430’
timestamp :和datetime不同的地方是,使用
current_ timestamp可以输入当前日期和时间,输入null时系统会输入mysql日期和时间,输入任何数据时,系统会输入当前mysql系统日期和时间
字符串类型:
text :存储大文本,有4中可选
tinytext:存储0-255个字节
mediumtext :
longtext
char:存储固定
定义语法: char(长度)和varchar(长度)
char(10) varchar(10)
‘abc’ ,在char
中存储10个字节
,在varchar中存储3个字节
varchar:存储可变
enum:只能输入枚举中的数据类型
- NOT NULL(非空约束)
- PRIMARY KEY(主键约束) : 数据库中每一张表只能有一个主键约束 ,主键列默认是
非空 唯一
的
- UNIQUE KEY(唯一约束)
- DEFAULT(默认约束)
- FOREIGN KEY (外键约束)
主键约束只能有一个,唯一约束可以有多个, 主键约束必须是非空的, 唯一约束 可以是非空的。
列级约束即可在列定义时声明,也可以在列定义后声明,表级约束只能在列定义后声明。
外键约束的条件
1. 父表(子表参照的表)和子表(具有外键列的表)必须使用相同的存储引擎,而且禁止使用临时表。
2. 数据表的存储引擎只能为InnoDB。
3. 外键列和参照列必须具有相似的数据类型。其中数字的长度或是否有符号必须相同;而字符的长度可以不同。
4. 外键列和参照列必须创建索引。如果外键列不存在索引的话,MYSQL将自动创建索引。
索引:提高数据的查询和排序效率
unique:唯一索引,要求索引列的值必须是唯一的
fulltext:全文索引,只能创建在使用char
, varchar
, text的列上
spatial:空间索引,只能在非空的和使用空间数据类型的列上
index | key :都一样,二选一
使用create index
给已经存在的表上添加索引
create [unique|fulltext|spatial]index|key[别名] on
表名 (列名[asc|desc])
删除索引:
Alter table 表名 drop index
索引名
或 drop index
索引名 on 表名
注意:索引会消耗磁盘空间,需要及时删除不使用的索引
数据库是以二维表的形式存储数据的(有点像Excel 的样子)
表中每一列必须有一个列名,数据类型和约束,每一行数据都表示一个数据实体。每个数据库可以有多张表。
可以提供多个给多个用户使用,多个数据库都存储在一个数据库服务器(程序)中
SQL:(结构化查询语句(Structured Query Language),用于操作数据库以及数据库中的表)
主要分为:
1.DDL(Data Definition Language):数据定义语言 主要有:(CREATE ALTER DROP
)
2.DML(Data Manipulation Language ):数据操纵语言 主要有:(插入:INSERT2)
更新:UPDATE3)
删除:DELETE)
3.DQL(Data Query Language): 数据查询语言
SELECT<字段名表> FROM <表或视图名
> WHERE<查询条件>
4.TCL(Transaction Control Language): 事务控制语言
文件后缀名的说明:
Mysql安装后在data文件夹中有4种文件frm,MYD,MYI,OPT,请问这四种文件的作用
*.frm是描述了表的结构,*.MYD保存了表的数据记录,*.MYI则是表的索引
数据类型:
1.整数类型
tinyint :无符号(0-255)
有符号(-128
到127)
1字节
smallint :
2字节
mediumint :
3字节
int :
4字节
bigint : 8字节
2.浮点型
float : 4字节
double : 8字节
1. 定点数
decimal(数据类型,小数长度)
4.日期时间类型
Year : 00-99
之间的数: 00-69
的年表示2000-2069 70-99
表示1970-1999
需要区分字符的‘00’和0
‘0’表示2000年 0
表示的值为0000
date:可以存储yyyy-mm-dd
或者 yyyymmdd
的字符串或存储yy-mm-dd和YYMMDD
的字符串值,还可以使用YY-MM-DD
和YYMMDD的数字格式
‘2017-2-14’或‘20170214’
‘17-2-14’或‘170214’
17-2-14 或
170214
使用now()或current_date
表示当前系统时间
time :可以存储‘D HH-MM-SS’, D
表示日,0-34之间的值,表示的小时数为 D*24
eg:‘2 12:32:25’表示的‘60:32:25‘
;
可以使用HHMMSS的字符串或数字表示,‘144025’和144025
都表示14:40:25
datetime :
日期时间 eg:‘2017-02-14 14:44:30‘ 或20170214144430
或 ‘17-02-14 14:44:30‘或170214144430
或‘0170214144430’
timestamp :和datetime不同的地方是,使用
current_ timestamp可以输入当前日期和时间,输入null时系统会输入mysql日期和时间,输入任何数据时,系统会输入当前mysql系统日期和时间
字符串类型:
text :存储大文本,有4中可选
tinytext:存储0-255个字节
mediumtext :
longtext
char:存储固定
定义语法: char(长度)和varchar(长度)
char(10) varchar(10)
‘abc’ ,在char
中存储10个字节
,在varchar中存储3个字节
varchar:存储可变
enum:只能输入枚举中的数据类型
表的约束:避免输入错误数据
按照功能划分:- NOT NULL(非空约束)
- PRIMARY KEY(主键约束) : 数据库中每一张表只能有一个主键约束 ,主键列默认是
非空 唯一
的
- UNIQUE KEY(唯一约束)
- DEFAULT(默认约束)
- FOREIGN KEY (外键约束)
主键约束只能有一个,唯一约束可以有多个, 主键约束必须是非空的, 唯一约束 可以是非空的。
列级约束即可在列定义时声明,也可以在列定义后声明,表级约束只能在列定义后声明。
外键约束的条件
1. 父表(子表参照的表)和子表(具有外键列的表)必须使用相同的存储引擎,而且禁止使用临时表。
2. 数据表的存储引擎只能为InnoDB。
3. 外键列和参照列必须具有相似的数据类型。其中数字的长度或是否有符号必须相同;而字符的长度可以不同。
4. 外键列和参照列必须创建索引。如果外键列不存在索引的话,MYSQL将自动创建索引。
索引:提高数据的查询和排序效率
unique:唯一索引,要求索引列的值必须是唯一的
fulltext:全文索引,只能创建在使用char
, varchar
, text的列上
spatial:空间索引,只能在非空的和使用空间数据类型的列上
index | key :都一样,二选一
使用create index
给已经存在的表上添加索引
create [unique|fulltext|spatial]index|key[别名] on
表名 (列名[asc|desc])
删除索引:
Alter table 表名 drop index
索引名
或 drop index
索引名 on 表名
注意:索引会消耗磁盘空间,需要及时删除不使用的索引
相关文章推荐
- Mysql总结2-mysql基础(DQL,DML,DDL,DCL)
- mysql 基础ddl语句 dml语句
- Mysql基本DDL、DML命令总结
- MySQL 基础语句之 DML,DDL,DCL,TCL
- Orcale数据库基础知识总结之orcale数据库的DDL和DML操作
- Mssqlserver DML或DDL回滚模板总结资料
- MySQL基础语法总结
- MySql总结(mysql基础全部知识点呦,值得收藏)
- MYSQL DDL语句 与 DML 在一个事物中的问题。
- mysql 基础知识总结
- Oracle DDL,DML,DCL,TCL 总结
- 学习mysql之后的一点总结(基础)
- Oracle 10g数据库基础之基本DDL和DML语句
- MySQL常用DDL、DML、DCL语言整理(附样例)
- Oracle DDL,DML,DCL,TCL 基础概念
- MySQL的一些基础总结(一)
- MYSQL基础总结
- MySql总结(mysql基础全部知识点呦,值得收藏)
- Oracle DDL,DML,DCL,TCL 基础概念
- Oracle DDL,DML,DCL,TCL 基础概念