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 --最好加上判断,增加安全性!