MYSQL数据库——初始数据库—DML操作

初始数据库

  • DataBase —— 数据库 DB (存数据)
  • 定义:是按照 数据结构 来组织、存储和管理数据的仓库” 是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合
  • 作用:存储数据 管理数据

数据库分类

  • 关系型数据库(SQL):MySQL,Oracle,Sql Server,DB2, SQLlite

通过表和表之间 列和列之间的关系进行储存数据 各个表事件是有联系的

数据库 = 多张表 + 各表之间的关系

  • 非关系型数据库(NOSQL):Redis,MongDB

通过对象的自身的属性来决定

DBMS — 数据库管理系统 (管理数据)

  • MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件 之一

连接数据库

  • 使用命令行 —— 在cmd中以管理员身份打开

所有命令后面加分号 ;

C:\WINDOWS\system32>mysql -uroot -p123456
flush privileges;   —————————— 刷新权限
show databases;  ——————————  查看所有的数据库
use school ——————————  切换数据库 use 数据库名 Database changed
show tables; ——————————  查看数据库中所有的表 describe student; -- 显示数据库中所有的表的信息
create database westos; ——————————  创建一个数据库
exit;  —————————— 退出连接
  • 单行注释: - -
  • 多行注释:/* */
  1. DDL —————— 数据库定义语言
  2. DML —————— 数据库操作语言
  3. DQL —————— 数据库查询语言
  4. DCL —————— 数据库控制语言

操作数据库

  • 1. 创建数据库
CREATE DATABASE IF NOT EXISTS Teacher;
  • 2. 使用数据库
USE school

注意:若表名 或者 字段名是一个特殊字符,就需要带 ``

  • 3. 删除数据库
DROP DATABASE IF EXISTS Teacher
  • 4. 查看所有的数据库
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 年份
null

空值 未知

字段属性

  • Unsigned ———— 声明了该列不能为负数
  • zerofill ———— 不足的位数,使用0来填充
  • 自增 ———— 自动在上一条记录的基础上 + 1
  • 默认:通常用来设计唯一的主键
    必须是整数类型
    可以自定义设计主键自增的起始值和步长
  • 非空NOT NULL ———— 若不给它赋值则报错 (若不填值 默认为null)
  • 默认 ———— 设置默认的值

创建数据库

  • 引擎:InnoDB
  • 字符集:utf8
  • 核对:utf8_general_ci

创建学生表 有 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

注意

  • 1. 所有语句以逗号结尾 最后一行不需要
  • 2. 一般一个表只有一个主键
  • 3. 表的名称和字段需要用 ` (piao) 括起来
  • 4. 字符串使用单引号括起来

常用命令

SHOW CREATE DATABASE school ——————————  查看创建数据库的语句 
SHOW CREATE TABLE student —————————— 查看student数据表的定义语句 
DESC student ——————————  显示表的结构

修改数据库

  • 表改名 —— rename
ALTER TABLE teacher RENAME AS teacher1
  • 增加字段 —— add
ALTER TABLE teacher1 ADD sex VARCHAR(2)
  • 字段重命名 —— change
ALTER TABLE teacher1 CHANGE age age1 INT(3)
  • 修改字段约束 —— modify
ALTER TABLE teacher1 MODIFY age VARCHAR(5)

modify ———— 修改字段类型和约束 不能字段重命名

  • 删除表 —— drop
DROP TABLE IF EXISTS teacher1

MYSQL数据管理

外键

语法:

    1. 定义外键 : KEY FK_gradeid (gradeid)
    1. 给这个外键加约束:CONSTRAINT 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`);

DML操作语言

添加数据 —— insert

  • 添加指定字段的数据
INSERT INTO `grade`(`gradename`) VALUES('大一')
  • 添加多个字段的数据
INSERT INTO `student`(`id`,`name`,`pwd`) VALUES('1','张三','123456')
  • 添加多条数据
INSERT INTO `student`(`id`,`name`) 
VALUES('2','李四'),('3','王五'),('4','赵六')
  • 注意:字段后面可以省略 不过必须 一 一 对应

修改数据 —— update

操作符 含义
!= 不等于
between … and [ ] 在…之间
and 两个均满足
or 满足其中一个即可
  • 1. 指定条件下修改一个字段
UPDATE `student` SET `name`= 'JACK' WHERE id= 4

若不指定 则修改全部的数据

  • 2. 指定条件下修改多个字段
UPDATE `student` SET `name`= 'Rose',`pwd` = '456789' WHERE id= 5
  • 3. 通过多个条件确定修改的字段
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

  • 删除指定数据
DELETE FROM `student` WHERE `id` = 2

truncate 命令和 delete 命令删除数据 区别

    1. 相同点:清空所有数据 不会删除表结构
    1. 不同点:
    • delete:不会重新设置自增列
DELETE FROM `student`
    • Truncate:重新设置自增列 计数器归零
TRUNCATE `student`

你可能感兴趣的:(MYSQL数据库——初始数据库—DML操作)