一、数据库的建立与删除
[ ]内部为可选项
创建数据库
CREATE DATABASE [IF NOT EXISTS] westos;CREATE DATABASE为创建命令,[]内部表示判断,若有westos则不进行创建
删除数据库
DROP DATABASE [IF EXISTS] hello;DROP DATABASE为删除命令,[]内部表示判断,若有hello则删除
使用数据库
USE `名称`;
查看数据库
SHOW DATABASES 查看所有数据库
二、表的建立以及表的属性
列属性
数值:
tinyint 十分小的数据 一个字节
smallint 较小的数据 两个字节
mediumint 中等大小的数据 三个字节
int 标准的整数 四个字节 常用
bigint 较大的数据 八个字节
float 浮点数 四个字节
double 浮点数 八个字节
decimal 字符串形式的浮点数 金融计算
字符串:
char 字符串固定大小 0-255
varchar 可变字符串 0-65535 常用 String
tinytext 微型文本 2^8-1
text 文本串 2^16-1 大文本
时间日期:
date YY-MM-DD 日期
time HH:mm:ss 时间
datetime YY-MM-DD HH:mm:ss 最常用的
timestamp 时间戳 1970.1.1到现在的毫秒
year 年
null:
没有值,未知
数据库的字段属性
Unsigned:
无符号的整数
不能声明为负数
zerofill:
0填充的
不足的位数用0来填充
自增:
可以自己设置自增起点以及自增个数
非空:
不能为空
默认:
如果不设置,则有默认的值
创建数据库表
格式:
CREATE TABLE [IF NOT EXISTS] `表名`(
`字段名` 列表型 [属性] [索引] [注释],
`字段名` 列表型 [属性] [索引] [注释],
`字段名` 列表型 [属性] [索引] [注释],
PRIMARY KEY (`主键名`)
)[引擎] [字符集] [注释]
例如
CREATE TABLE IF NOT EXISTS `student`(
`id` int(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
`pwd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',
`sex` VARCHAR(2) NOT NULL DEFAULT '女' COMMENT '性别',
PRIMARY KEY (`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8
不同引擎说明
MYISAM | INNODB | |
事务支持 | 不支持 | 支持 |
数据行锁定 | 不支持 | 支持 |
外键 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表空间的大小 | 较小 | 较大,约为MYISAM的两倍 |
常规使用操作:
MYISAM 节约空间,速度较快
INNODB 安全性高,事物的处理,多表多用户操作
在物理空间存在的位置
都存在在data目录下
本质还是文件的存储
MySQl引擎在物理文件上的区别
innodb在数据库表中只有一个*.fm文件,以及上级目录下的ibdata1文件
myisam对应文件
*.frm 表结构的文件
*.myd 数据文件
三、修改删除表
修改表的名称
ALTER TABLE `旧表名` RENAME AS `新表名`
增加表的字段
ALTER TABLE `表名` ADD `字段名` 列属性
修改表的字段
修改约束
ALTER TABLE `表名` MODIFY 字段名 数据类型
字段重命名
ALTER TABLE `表名` CHANGE 旧字段名 新字段名 属性
删除表的字段
ALTER TABLE `表名` DROP `字段名`
删除表
DROP TABLE IF EXISTS `表名`