MySql数据库增删改

Mysql数据库增删改

  • 一.数据库概述
    • 1.为什么学习数据库
    • 2.数据库的优点
    • 3.数据库的相关概念
    • 4.数据库的分类
      • (1)关系型数据库
      • (2)非关系数据库
  • 二.DDL操作数据库
    • 1.创建数据库
    • 2.删除数据库
    • 3.修改字符集
  • 三.数据库存储数据的特点
  • 四.数据库表的基本概念
    • 1.数据表
    • 2.字段
    • 3.记录
  • 五.设计表
    • 1.表中的数据类型
      • (1)字符型
      • (2)整型
      • (3)浮点型
      • (4)文本字符型
    • 2.表中的字段和约束
      • (1)主键
      • (2)约束
      • (3)主键自动增长
      • (4)默认值
      • (5)字段注释
  • 六.DDL操作表
    • 1.创建表
    • 2.删除表
      • 3.修改表名
      • 4.复制表结构
  • 七.DML
    • 1.插入数据
    • 2.修改数据
    • 3.删除语句

一.数据库概述

1.为什么学习数据库

(1)实现数据持久化到本地
(2)使用完整的管理系统统一管理,可以实现结构化查询,方便管理

2.数据库的优点

数据库(DataBase)为了方便数据的存储和管理,它将数据按照特定的规则存储在磁盘上,就是一个存储数据的仓库。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。

3.数据库的相关概念

DB:数据库(DataBase)
存储数据的容器,它保存了一系列有组织的数据。
DBMS:数据库管理系统(DataBase Management System)又称为数据库软件或数据库产品,用于创建或管理DB

总而言之,应用程序操作和查询数据库,数据库为应用程序提供数据

4.数据库的分类

根据不同的存储类型可以分为关系型数据库和非关系型数据库

(1)关系型数据库

(1)关系型数据库管理系统称为RDBMS,R指Relation
(2)关系型数据库一般是以表为单位进行操作的
现在流行的关系型数据库有
Oracle:功能强大,收费. MySQL 快捷、可靠 开源、免费
SQL Server(微软): 只能安装在Windows操作系统
DB2 (IBM):适合处理海量数据,收费

(2)非关系数据库

(1)非关系型数据库,操作的主要单位是键和值
(1)主要流行的非关系型数据库有
MongdoDB
Redis

二.DDL操作数据库

数据(结构)定义语言DDL(DataData Definition Language),用于创建和修改数据库表结构的语言

常用语句 create(建表),alter(修改),drop(删除),rename(重命名)

1.创建数据库

创建数据库并设置编码格式

CREATE DATABASE [IF NOT EXISTS] 数据库名 [CHARSET UTF8]

CREATE DATABASE schooldb -- 创建数据库
CREATE DATABASE IF NOT EXISTS schooldb CHARSET utf8 -- 如果该数据库不存在就创建,设置字符编码

2.删除数据库

DROP DATABASE 数据库名/[IF EXISTSS]数据库名

DROP DATABASE schooldb -- 删除数据库
DROP DATABASE IF EXISTS studentdb -- 如果存在就删除数据库

3.修改字符集

ALTER DATABASE schooldb CHARSET gbk -- 修改数据库编码

三.数据库存储数据的特点

(1)将数据放到表中,再将表放到数据库中
(2)一个数据库可以有多张表,每张表都有一个名字,用来标识自己,每张表具有唯一性(同一个数据库中的表名子不能重复)
(3)表具有一些特性,这些特性定义了数据在表中如何存储,类似java中类的设计
(4)表由列组成,我们也称为字段,所有表都是由一个或多个列组成的,每一列类似于java中的属性
(5)表中的数据是按行存储的每一行类似于java中的对象

四.数据库表的基本概念

1.数据表

表(table)是数据存储的最常见和最简单的形式,是构成关系型数据库的基本元素。表的最简单形式是由行和列组成,分别都包含着数据。 每个表都有一个表头和表体,表头定义表名和列名 .表中的行被看作是文件中的记录,表中的列被看作是这些记录的字段

2.字段

字段是表里的一列,用于保存每条记录的特定信息

3.记录

记录也被称为一行数据,是表里的一行。在关系型数据库的表里,一行数据是指一条完
整的记录。

五.设计表

对于某一个具体的表在创建之前要确定表的下列特征

(1)表名(表信息)
(2)表中的字段
(3)字段的数据类型和长度
(4)哪些约束

1.表中的数据类型

(1)字符型

(1) char(n)长度为n的定长字符串
(2) varchar(n)最大长度为n的可变字符串长度
(3)date 日期,包含年月日
(4)datetime 年月日时分秒

要注意char(n)和varchar(n)的区别
char(n)如果字符串的长度不够n位,也按照n位算
varchar(n)字符串的长度是几位就按照几位算,但不能超过n位

(2)整型

MySql数据库增删改_第1张图片
我们一般常用的就是INT 4字节

(3)浮点型

MySql数据库增删改_第2张图片
数据类型(M,D)
M:精度,数据的总长度;
D:标度,小数点后的长度 建议使用double
Float(6,2)、Double(6,2)

(4)文本字符型

TEXT列字符字符串
有4种TEXT类型:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。
它的长度:
TINYTEXT:最大长度255个字符(2^8-1)
TEXT:最大长度65535(2^16-1)
MEDIUMTEXT:最大长度16777215(2^24-1)
LONGTEXT最大长度4294967295(2^32-1)

一般用于长文本小说这种数据的存储

2.表中的字段和约束

(1)主键

主键:在一张表中代表唯一的一条记录,不能重复,不能为空

(2)约束

(1) PRIMARY KEY 设置主键约束
(2) NOT NULL 不能为空约束
(3) UNIQUE 唯一性约束
(4) 检查约束 设置条件
(5) 外键约束

(3)主键自动增长

AUTO_INCREMENT 用来让主键自动增长

(4)默认值

DEFAULT default_value

(5)字段注释

comment 注释

六.DDL操作表

1.创建表

CREATE TABLE 表名(
表的字段及约束
)

CREATE TABLE student(
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '学号',
NAME VARCHAR(5) NOT NULL COMMENT '姓名',
gender CHAR(1) NOT NULL COMMENT '性别',
birthday DATE,COMMENT '生日',
phone CHAR(11) UNIQUE NOT NULL COMMENT '电话',
address VARCHAR(30) NOT NULL COMMENT '地址',
height DOUBLE(3,2) CHECK(height<3) COMMENT '身高',
reg_time DATETIME COMMENT '注册日期'
)

2.删除表

DROP TABLE IF EXISTS 表名

DROP TABLE IF EXISTS student -- 删除表

3.修改表名

RENAME TABLE 旧表名 TO 新表名

RENAME TABLE stu TO student -- 修改表名

4.复制表结构

CREATE TABLE 新表名 LIKE 被复制表名

CREATE TABLE stu LIKE student -- 复制表结构

七.DML

DML:数据操纵语言(Data Manipulation Language),常用语句insert,delete,update

1.插入数据

插入数据有四种方式
方式1: INSERT INTO 表名(列1,列2……,列n) VALUES(值1,值2……,值n);

INSERT INTO student(NAME,gender,birthday,address,phone,height,reg_time)
                   VALUE('jim','男','2000-2-2','陕西','13343453',1.75,NOW()) -- 插入表数据

方式2: INSERT INTO 表名 set 列名1=值1,…列名n=值n;

INSERT INTO student SET NAME='tom',gender='女',phone="1566678891",height=1.67,reg_time=NOW()

方式3: INSERT INTO 表名(列1,列2……,列n) VALUES(值1,值2……,值n),(值1,值2……, 值n);

INSERT INTO student(NAME,phone,reg_time)VALUES('aa',"134555",NOW()),('bb',"1677777",NOW())

方式4:INSERT INTO 表名(列1,列2……,列n) 查询语句(查询的列数与插入列数匹配)

INSERT INTO stu(NAME,phone,reg_time)SELECT NAME,phone,reg_time FROM student

2.修改数据

UPDATE 表名 SET 列名 = ‘新值’WHERE 条件

UPDATE student SET gender = '男',birthday="2003-1-1",address="hanzhong" WHERE id = 10
UPDATE student SET gender = '男',birthday="2003-1-1",address="hanzhong" -- 不加条件会全部被改
UPDATE student SET gender =  NULL WHERE id = 10

3.删除语句

(1) DELETE FROM 表名 WHERE 条件

DELETE FROM student WHERE  id = 10 -- 删除某一个id学生对应的信息

-- 删除数据不加任何条件,会清空表中所有的数据, 会一行一行的删除数据,比较慢
DELETE FROM student

(2) TRUNCATE TABLE 表名;清空整张表

-- 清空表中的数据,从表结构上操作,效率快
TRUNCATE TABLE  stu

你可能感兴趣的:(数据库,mysql)