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:博客)
时间日期
数据类型格式
dateYYYY-MM-DD
timeHH:mm:ss
datetimeYYYY-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`
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值