学习记录-数据库-MySQL

1.数据库介绍

数据库:分为关系型数据库和非关系型数据库,

MySQL概述:免费的中小型数据库管理系统 ,操作关系型数据库的一种,

关系型数据库:建立在关系模型基础上,由多张相互连接的二维表组成的数据库,

二维表:由行和列组成的表,

  1. 优点:格式统一,便于维护
  2. 使用SQL语句操语言,使用方便,可用于复杂查找

SQL简介:操作关系型数据库的编程语言,定义操作所以关系型数据库的统一标准

        通用语法:

  1. 可以书写多行,以分号结尾,
  2. 可以使用空格/缩进来增强语句的可读性,
  3. 语句不区分大小写,
  4. 注释,单行注释:-- 注释内容,(--与注释内容中间有一个空格),# 注释内容(同上)                多行注释:/*注释内容*/     

SQL语句分类:DDL,DML,DQL,DCL

  1. DDL:数据定义语言,用来创建数据库对象,数据库,表,字段(数据库中表列的名称)
  2. DML:数据操作语言,用来对数据库表中的数据进行增删改,
  3. DQL:数据查询语言,用来对数据库表中的数据进行查询,
  4. DCL:数据控制语言,用来创建数据库用户,控制用户的权限,

项目开发流程:

        阅读需求+文档,1.设计数据库,2.数据库操作,3.数据库优化

2.数据库设计(DDL操作)

1.数据库操作

查询所以数据库:show database;

查询当前使用的数据库:select database();

创建数据库:create database [if not exists] 数据库名(中括号中的为可选,下同),

使用数据库:use 数据库名,

删除数据库:drop database [if exists] 数据库名,

数据库操作软件:SQLyog,Navicat,Datagrip,

2.表操作

创建表

create table 表名(
    字段1 字段类型 [约束] [comment 字段注释],
    字段2 字段类型 [约束] [comment 字段注释],
    ....
)[comment 表注释];

约束条件

| **约束** | **描述**                                         | **关键字**  |
| -------- | ------------------------------------------------| ----------- |
| 非空约束 | 限制该字段值不能为null                            | not null    |
| 唯一约束 | 保证字段的所有数据都是唯一、不重复的               | unique      |
| 主键约束 | 主键是一行数据的唯一标识,要求非空且唯一           | primary key |
| 默认约束 | 保存数据时,如果未指定该字段值,则采用默认值       | default     |
| 外键约束 | 让两张表的数据建立连接,保证数据的一致性和完整性   | foreign key |

数据类型

        1.数值类型

| 类型        | 大小   | 有符号(SIGNED)范围                                    | 无符号(UNSIGNED)范围                                       | 描述               |
| ----------- | ------ | ----------------------------------------------------- | ---------------------------------------------------------- | ------------------ |
| TINYINT     | 1byte  | (-128,127)                                           | (0,255)                                                   | 小整数值           |
| SMALLINT    | 2bytes | (-32768,32767)                                       | (0,65535)                                                 | 大整数值           |
| MEDIUMINT   | 3bytes | (-8388608,8388607)                                   | (0,16777215)                                              | 大整数值           |
| INT/INTEGER | 4bytes | (-2147483648,2147483647)                             | (0,4294967295)                                            | 大整数值           |
| BIGINT      | 8bytes | (-2^63,2^63-1)                                       | (0,2^64-1)                                                | 极大整数值         |
| FLOAT       | 4bytes | (-3.402823466 E+38,3.402823466351 E+38)              | 0 和 (1.175494351  E-38,3.402823466 E+38)                 | 单精度浮点数值     |
| DOUBLE      | 8bytes | (-1.7976931348623157 E+308,1.7976931348623157 E+308) | 0 和  (2.2250738585072014 E-308,1.7976931348623157 E+308) | 双精度浮点数值     |
| DECIMAL     |        | 依赖于M(精度)和D(标度)的值                            | 依赖于M(精度)和D(标度)的值                                 | 小数值(精确定点数) |

        2.字符串类型

| 类型       | 大小                  | 描述                         |
| ---------- | --------------------- | ---------------------------- |
| CHAR       | 0-255 bytes           | 定长字符串(需要指定长度)     |
| VARCHAR    | 0-65535 bytes         | 变长字符串(需要指定长度)     |
| TINYBLOB   | 0-255 bytes           | 不超过255个字符的二进制数据  |
| TINYTEXT   | 0-255 bytes           | 短文本字符串                 |
| BLOB       | 0-65 535 bytes        | 二进制形式的长文本数据       |
| TEXT       | 0-65 535 bytes        | 长文本数据                   |
| MEDIUMBLOB | 0-16 777 215 bytes    | 二进制形式的中等长度文本数据 |
| MEDIUMTEXT | 0-16 777 215 bytes    | 中等长度文本数据             |
| LONGBLOB   | 0-4 294 967 295 bytes | 二进制形式的极大文本数据     |
| LONGTEXT   | 0-4 294 967 295 bytes | 极大文本数据                 |

        3.时间类型

| 类型      | 大小 | 范围                                       | 格式                | 描述                     |
| --------- | ---- | ------------------------------------------ | ------------------- | ------------------------ |
| DATE      | 3    | 1000-01-01 至  9999-12-31                  | YYYY-MM-DD          | 日期值                   |
| TIME      | 3    | -838:59:59 至  838:59:59                   | HH:MM:SS            | 时间值或持续时间         |
| YEAR      | 1    | 1901 至 2155                               | YYYY                | 年份值                   |
| DATETIME  | 8    | 1000-01-01 00:00:00 至 9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值         |
| TIMESTAMP | 4    | 1970-01-01 00:00:01 至 2038-01-19 03:14:07 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值,时间戳 |

查询表

show tables; -- 查询所以表
desc 表名; -- 查询表结构
show create table 表名; -- 查询建表语句

修改表

-- 添加字段
alter table 表名 add 字段名 字段类型 [comment 注释] [约束];
-- 修改字段数据类型
alter table 表名 modify 字段名 新数据类型; 
-- 修改整个字段
alter table 表名 change 旧字段名 新字段名 字段类型 [comment 注释] [约束];
-- 删除字段
alter table 表名 drop 字段名;
-- 修改表名
rename table 旧表名 to 新表名;
-- 删除表
drop table [if exists] 表名;

3.数据库操作(DML操作)

增加数据:insert 

修改数据:update

删除数据:delete

-- 向指定字段添加数据
insert into 表名 (字段名1,字段名2,....) values (值1,值2,....);
-- 向全部字段添加数据
insert into 表名 values (值1,值2,....);
-- 向指定字段批量添加数据
insert into 表名 (字段名1,字段名2,....) 
    values (值1,值2,....),
    values (值1,值2,....),
    ...;
-- 向全部字段批量添加数据
insert into 表名 values (值1,值2,....),(值1,值2,....),....;
-- 修改数据   没有where条件则修改表中所以数据
update 表名 set 字段名1=值1,字段名1=值1,....[where 条件];
注意:在修改数据时,一般需要同时修改update_time,将其修改为当前操作时间
-- 删除数据 如果没有where条件,则删除整张表数据
delete from 表名  [where  条件];
注意:delete 不能删除某个字段的数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值