MySQL数据库操作语法
1.数据库的库操作
创建数据库(如果不存在)
CREATE DATABASE [IF NOT EXISTS] `name`
删除数据库(如果存在)
DROP DATABASE [IF EXISTS] `name`
选择数据库
USE `name`;
显示所有数据库
SHOW DATABASES
2.MySQL的列数据类型
数值
类型名称
占用大小
tinyint
1字节
smallint
2字节
mediumint
3字节
int(常用)
4字节
bigint
8字节
float
4字节
double
8字节
decimal(金融专用)
8字节
字符串
类型名称
占用大小
char
固定大小 0-255
varchar(常用)
可变长度 0-65535
tinytext
2^8-1
text(常用)
2^16-1
日期和时间
类型名称
备注
date
日期格式YYYY:MM:DD
time
时间格式:HH:mm:ss
datetime
YYYY:MM:DD HH:mm:ss
timestamp
1970.1.1到现在的毫秒数
NULL
没有值 未知
3.MySQL的字段属性
主键 :
设置为主键的字段值唯一,通常只有1个,是记录的识别ID.
同时非空
非空:其值不能为空,否则报错!
Unsigned:
是否能出现负值,适用于整型(decimal是浮点型!)。
用此类型可以增加数据范围,如tinyint的范围可以变成0-127*2
自增:产生新记录时,是否自动根据上一条记录,更改值
Zerofill:
是否根据长度,补充0。
适用于整型,不改变实际的值。
默认会自动加unsigned(无符号)属性。
不改变长度时,zerofill默认为int(10)。
如果实际整型长度大于设定的长度,则按实际长度显示。
长度
对于整型来说,只有zerofill之后才会有不同。
只控制实际显示的长度,不控制数据值的范围!
4.创建数据库表的语法
--格式
CREATE TABLE [IF NOT EXISTS] `表名`(
`字段名` 列类型 [属性][索引][注释],
`字段名` 列类型 [属性][索引][注释],
`字段名` 列类型 [属性][索引][注释],
......
`字段名` 列类型 [属性][索引][注释]
)
--样例
CREATE TABLE IF NOT EXISTS `student` (
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR(20) NOT NULL DEFAULT '匿名' COMMENT '姓名',
`pwd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',
`sex` VARCHAR(2) NOT NULL DEFAULT '男' COMMENT '性别',
`birthday` DATETIME DEFAULT NULL COMMENT '出生日期',
`address` VARCHAR(20) DEFAULT NULL COMMENT '家庭地址',
`email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8 --数据库表的引擎,以及字符集编码(不设置会是mysql默认的字符集编码Latin1,不支持中文!)
-- 关键点:`字段名字` '注释' 最后没有逗号!
--补充
SHOW CREATE DATABASE `name` --查看创建数据库的语句
SHOW CREATE TABLE `student` --查看数据表的创建语句
--补充
character-set-server=utf8 -- 在myini配置文件,可以默认的字符集编码为utf8,但最好不要,兼容性差,别人的电脑不一定改了这个!
5.MYISAM和Innodb的区别(补充了解)
数据库引擎的类型:
INNODB (默认使I用)Y
MYISAM
MYISAM
INNODB
事务支持
不支持
支持
数据行锁定
不支持I
支持
外键约束
不支持
支持
全文索引
支持
不支持
表空间的大小
较小
2倍于MYSAM
MYISAM : 节约空间,速度块
INNODB : 安全性高,事务的处理,多表多用户操作
MYSQL 引擎在物理文件上去区别:
INNODB:*.frm文件,以及上级目录下的ibdata1文件
MYISAM:*.frm文件 --表结构的定义文件
*.MYD---数据文件
*.MYI ---索引文件
MYSQL的本质:data文件中文件!!!!
6.修改删除数据库表
修改
--修改表名(RENAME AS)
ALTER TABLE oneName RENAME AS anotherName
--增加表的字段(ADD)
ALTER TABLE tableName ADD 字段名 列属性
--修改表的字段(MODIFY,CHANGE)
ALTER TABLE tableName MODIFY 字段名 字段属性 --(不能重命名,只能改字段属性,即修改约束!)
ALTER TABLE tableName CHANGE 字段名 字段新名 字段属性 --(即能重名名,也能改字段属性!)
--删除表的字段(DROP)
ALTER TABLE tableName DROP 字段名
删除
DROP TABLE [IF EXISTS] tableNAME --最好加上判断,增加安全性!