常见的数据类型
数据类型前带n和不带n的区别:
带n的在保存汉字的时候一个长度能保存1个汉字,不带n的2个长度才能保存一个汉字,与英文无关
数据类型 | 作用 |
---|---|
char(num) | 保存固定长度的英文或数字字符,不够的用空格补全 |
date | 保存日期 |
datetime | 保存日期和时间 |
varchar(num) | 保存英文字符串,长度可变, num最大到8000 |
varchar(max) | 保存大文本 |
int | 保存数字 -2^31 (-2,147,483,648) 到 2^31-1 (2,147,483,647) |
bigint | 保存大数字 -2^63(-9,223,372,036,854,775,808) 到 2^63-1(9,223,372,036,854,775,807) |
smallint | 保存小数字 -2^15 (-32,768) 到 2^15-1 (32,767) bit |
decimal(p, s) | p代表数字的总位数,s代表小数位数 |
money | 能保存 -922,337,203,685,477.5808 到 922,337,203,685,477.5807 |
uniqueidentifier | 使用NEWID()函数来获取在当前数据库中绝对不会重复的一个字符串。例如:4F0D51DE-8414-495B-AD38-CD43EC4C2818 |
SQL语言类型
名称 | 解释 | 命令 |
---|---|---|
DDL(数据定义语言) | 定义和管理数据对象(如数据库数据表等) | CREATE DROP ALTER |
DML(数据操作语言) | 用于操作数据库对象中所包含的数据 | INSERT UPDATE DELETE |
DQL(数据查询语言) | 用于查询数据库数据 | SELECT |
DCL(数据控制语言) | 用来管理数据库的语言,包括管理权限及数据更改 | GRANT COMMIT BOLLBACK |
常用的操作数据库命令
作用 | 命令 |
---|---|
打开数据库服务 | net start mysql |
创建数据库|create database [if not exists] 数据库名称;
查看所有数据库 |show databases;
定位到指定数据库 | use 数据库名称;
删除数据库 | drop database [if exists] 数据库名称;
查看表是否存在 | USE myschool; SHOW tables;
查看表定义 | DESCRIBE 表名; 或 DESC 表名;
显示创建表的sql语句 | show create table 表名;
避免DOS窗口乱码,可执行| SET NAMES gbk;
查看当前默认存储引擎|SHOW VARIABLES LIKE 'storage_engine%';
修改存储引擎---修改my.ini配置文件--勿动|default-storage-engine= InnoDB
设置表的存储引擎
CREATE TABLE 表名(
#省略代码
)ENGINE=存储引擎;
示例:
CREATE TABLE `myisam` (
id INT(4)
)ENGINE=MyISAM;
创建数据表无敌语法
CREATE TABLE [IF NOT EXISTS] 表名(
`列名` 数据类型 无符号数 不足以0填充 是否为空 是否主键 默认值 是否唯一 自动增长 注释
`stuTest` varchar(20) UNSIGNED ZEROFILL not null PRIMARY KEY DEFAULT '地址不详' UNIQUE KEY AUTO_INCREMENT COMMENT '列的注释内容',
`sex` char(2) not null DEFAULT '男' COMMENT '性别'
) CHARSET = 'utf8',ENGINE=MyISAM,COMMENT '表名的注释内容' ;
需要注意的是,无敌语法需要注意顺序,顺序不能乱,否者语法出错。
示例:
create table IF NOT EXISTS grade(
gradeid int not null PRIMARY key auto_increment COMMENT '年级编号',
gradename varchar(20) not null UNIQUE KEY COMMENT '年级名称',
sex VARCHAR(10) DEFAULT '男'
) ENGINE=myisam COMMENT='年级表' CHARSET='utf8';
存储引擎的类型
存储引擎分为MyISAM、InnoDB 、Memory、CSV等9种,最多接触的是MyISAM、InnoDB这两种
、 | MyISAM | InnoDB |
---|---|---|
事务处理 | 支持 | 不支持 |
数据行锁定 | 支持 | 不支 |
外键约束 | 支持 | 不支持 |
全文索引 | 不支持 | 支持 |
表空间大小 | 较大,约2倍 | 较小 |
适用场合:
- 使用MyISAM: 不需事务,空间小,以查询访问为主
- 使用InnoDB: 多删除、更新操作,安全性高,事务处理及并发
数据表的存储位置
因操作系统而异,可查my.ini
- MyISAM类型表文件
- *.frm:表结构定义文件
- *.MYD:数据文件
- *.MYI:索引文件
- InnoDB类型表文件
- *.frm:表结构定义文件
- ibdata1文件
数据库基础知识的整理到此结束,下面是对数据表和数据的具体操作