通过表和表之间 列和列之间的关系进行储存数据 各个表事件是有联系的
数据库 = 多张表 + 各表之间的关系
通过对象的自身的属性来决定
所有命令后面加分号 ;
C:\WINDOWS\system32>mysql -uroot -p123456
flush privileges; —————————— 刷新权限
show databases; —————————— 查看所有的数据库
use school —————————— 切换数据库 use 数据库名 Database changed
show tables; —————————— 查看数据库中所有的表 describe student; -- 显示数据库中所有的表的信息
create database westos; —————————— 创建一个数据库
exit; —————————— 退出连接
- DDL —————— 数据库定义语言
- DML —————— 数据库操作语言
- DQL —————— 数据库查询语言
- DCL —————— 数据库控制语言
CREATE DATABASE IF NOT EXISTS Teacher;
USE school
注意:若表名 或者 字段名是一个特殊字符,就需要带 ``
DROP DATABASE IF EXISTS Teacher
SHOW DATABASES
数据类型 | 格式 | 字节数 |
---|---|---|
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 ( 保存大文本 eg:博客) |
数据类型 | 格式 |
---|---|
date | YYYY-MM-DD |
time | HH:mm:ss |
datetime | YYYY-MM-DD HH:mm:ss (最常用的时间格式) |
timestamp | 时间戳(1970.1.1 到现在的毫秒数) |
year | 年份 |
空值 未知
创建学生表 有 id name pwd sex birthday address email 主键为 id
CREATE TABLE IF NOT EXISTS `student`(
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR(10) 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(50) DEFAULT NULL COMMENT '地址',
`email` VARCHAR(30) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (`id`)
)ENGINE = INNODB DEFAULT CHARSET = utf8
注意
常用命令
SHOW CREATE DATABASE school —————————— 查看创建数据库的语句
SHOW CREATE TABLE student —————————— 查看student数据表的定义语句
DESC student —————————— 显示表的结构
ALTER TABLE teacher RENAME AS teacher1
ALTER TABLE teacher1 ADD sex VARCHAR(2)
ALTER TABLE teacher1 CHANGE age age1 INT(3)
ALTER TABLE teacher1 MODIFY age VARCHAR(5)
modify ———— 修改字段类型和约束 不能字段重命名
DROP TABLE IF EXISTS teacher1
语法:
FK_gradeid
(gradeid
)FK_gradeid
FOREIGN KEY (gradeid
) REFERENCES grade
(gradeid
)CREATE TABLE IF NOT EXISTS student(
`id` INT(5) NOT NULL AUTO_INCREMENT COMMENT '学生id',
`name` VARCHAR(20) NOT NULL COMMENT '学生姓名',
`pwd` VARCHAR(20) NOT NULL COMMENT '密码',
`gradeid` INT(10) NOT NULL COMMENT '年级',
PRIMARY KEY(`id`),
KEY `FK_gradeid` (`gradeid`),
CONSTRAINT `FK_gradeid` FOREIGN KEY (`gradeid`) REFERENCES `grade` (`gradeid`)
)ENGINE = INNODB DEFAULT CHARSET = UTF8
ALTER TABLE `student`
ADD CONSTRAINT `FK_gradeid` FOREIGN KEY(`gradeid`) REFERENCES `grade`(`gradeid`);
INSERT INTO `grade`(`gradename`) VALUES('大一')
INSERT INTO `student`(`id`,`name`,`pwd`) VALUES('1','张三','123456')
INSERT INTO `student`(`id`,`name`)
VALUES('2','李四'),('3','王五'),('4','赵六')
操作符 | 含义 |
---|---|
!= | 不等于 |
between … and | [ ] 在…之间 |
and | 两个均满足 |
or | 满足其中一个即可 |
UPDATE `student` SET `name`= 'JACK' WHERE id= 4
若不指定 则修改全部的数据
UPDATE `student` SET `name`= 'Rose',`pwd` = '456789' WHERE id= 5
UPDATE `student` SET `name`= 'Mary',`pwd` = '456789' WHERE id BETWEEN 2 AND 4
UPDATE `student` SET `name`= 'KD',`pwd` = '666' WHERE `name` = 'Mary' AND `sex` = '女'
UPDATE `student` SET `name`= '小明',`pwd` = '000' WHERE `id`= 4 OR `pwd` = '555'
DELETE FROM `student` WHERE `id` = 2
truncate 命令和 delete 命令删除数据 区别
DELETE FROM `student`
TRUNCATE `student`