基本命令行
UPDATE mysql.user SET aunthentication_string=PASSWORD('123456')
WHERE USER='root' AND HOST='localhost';
flush privileges;
SHOW DATABASES;
USE school;
SHOW TABLES;
DESCRIBE student;
CREATE DATABASE abc;
EXIT;
数据库引擎
| MYISAM | INNODB |
---|
事务支持 | 不支持 | 支持 |
数据行锁定 | 不支持 | 支持 |
外键约束 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表空间大小 | 较小 | 较大,约为前者的两倍 |
- MYISAM:节约空间,速度较快
- INNODB:安全性高,支持事务处理、多表多用户操作
数据类型
类型 | 说明 | 字节数 |
---|
tinyint | 十分小的数据 | 1字节 |
smallint | 较小的数据 | 2字节 |
mediumint | 中等大小的数据 | 3字节 |
int | 标准整数 | 4字节 常用 |
bigint | 较大数据 | 8字节 |
float | 浮点数 | 4字节 |
double | 高精度浮点数 | 8字节 |
decimal | 字符串形式浮点数(金融计算) | - |
类型 | 说明 | 大小 |
---|
char | 字符串 固定大小 | 0~255 |
varchar | 可变字符串 | 0~65535 常用 |
tinytext | 微型文本 | 2^8-1 |
text | 文本串 | 2^16-1 |
- 时间日期
java——java.util.Date
类型 | 说明 |
---|
date | YYYY-MM-DD 日期 |
time | HH:mm:ss 时间 |
datetime | YYYY-MM-DD HH:mm:ss 常用 |
timestamp | 时间戳 1970.1.1零点到现在的毫秒数 常用 |
year | 年份 |
字段属性(重点)
属性 | 说明 |
---|
Unsigned | 无符号整数,不能为负数 |
zerofill | 使用0去填充不足的位 |
autoincreament | 自增长,自动在上一条记录的基础上+1(默认) |
notNULL | 不能为空,若没有赋值则报错 |
default | 设置默认值,不赋值则使用默认值填充 |
操作数据库
CREATE DATABASE abc;
CREATE DATABASE IF NOT EXISTS abc;
SHOW CREATE DATABASE `school`;
DROP DATABASE IF EXISTS abc;
USE `school`;
SHOW DATABASES;
操作表
CREATE TABLE IF NOT EXISTS `students`(
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
`password` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',
`sex` VARCHAR(2) NOT NULL COMMENT '性别',
`birthday` DATE DEFAULT NULL COMMENT '出生日期',
PRIMARY KEY (`id`)
)ENGINE = INNODB DEFAULT CHARSET=utf8;
SHOW CREATE TABLE `students`;
DESC `students`;
ALTER TABLE `teacher` RENAME AS `teachers`;
ALTER TABLE `teachers` ADD `age` INT(11);
ALTER TABLE `teachers` MODIFY `age` INT(3);
ALTER TABLE `teachers` CHANGE `age` `age1` INT(11);
ALTER TABLE `teachers` DROP `age1`;
注意:
- 字段名用反引号`` 包裹
- sql对大小写不敏感,建议写小写