1.创建数据库

1.创建一个名为tet_db03的数据库,并指定字符集和排序规则。

create database if not exists test_db03 character set  utf8mb4 collate utf8mb4_0900_ai_ci

字符集 set utf8mb4

排序规则 collate utf8mb4_0900_ai_ci

2.查看警告信息

show warnings

3.查看当前数据库默认的字符集

show variables like '%character%'

4.删除数据库

drop database if exists test_db03

5.\? 查看mysql客户端的帮助文件

2.数据库基本操作

2.1.数据类型 

 真实开发场景中字段都会明确之处数据类型及长度

1.数值类型 tinyint  int  bigint  decimal(M,D)

2.字符类型 varchar(M)  text

3.日期类型  date  datetime

2.2.创建表

1.查看所有的表show tables

2.创建表

create table if not exists 表名 (

         字段1  数据类型,

        字段2 数据类型

);

3.查看表结构:desc 表名; 

4.删除表  drop table student;

2.3.CRUD增删改查

create----创建

retrieve -----检索

Update --- 更新

Delete --- 删除

2.3.1.新增:

1.插入:insert into students (id,name) values (4,'李四');

2.如果对表中的所有的列设置值 insrt into 表名 values (值,值,值),(值,值,值);

3.多行插入:insert into 表名 (列名,列名,列名) values (值,值,值),(值,值,值);

2.3.2.查询:

1.全列查询:select * from 表名: *表示表中的所有列都会被查询到

2.指定列查询: select (列名,列名,列名) from 表名

3.表达式+别名:select 表达式 as 别名 from  表名。

4.去重:select distinct 列名,列名  from 表名;  #重复判定的标准:一个数据行的所有列都相等才判定为相同,才可以得到去重的效果

5.排序:select * from 表名 order by  列名 [asc][desc]。#asc(升序)desc(降序)

6.条件查询(where):select * from 表名 where 列名/表达式  比较或者逻辑运算符  [order by]

                       where的运行顺序:先from 后 where 后 select  ,最后是 order by

7.区间查询:select * from 表名  where 列名 between 开始条件 and 结束条件

8.模糊查询:select * from 表名  where 列名 like '%值_' ;  ( %可以匹配0或者n个字符,_只能匹配一个字符)

9.分页查询: select * from 表名  limit s,n;       s(从第几行开始,为0时可以不写),n(查询几行)

                      select * from 表名  limit n offset s; 

2.3.3.更新:

update 表名  set 列名 = 值 [列名等于值]  where  条件 order by  列名  asc | desc  limit  n;

        注:如果不加where,会导致表中的所有记录都被更新,危险操作。

2.3.4.删除:

delete from 表名 where 条件  order by 列名  asc | desc limit n;

3.数据库约束

1.not null非空约束,被指定not null的列,值不允许为空

2.unique唯一约束,这个列里的值在表中是唯一的,不能重复

3.primary key 主键约束,可以看成not null 和 unique的组合,

         可以用bigint类型列为表单独指定主键,同时也可以指定主键自增,采用auto_increment关键字

        自增操作时,会找到当前列中最大的值,然后在这个基础上加1

4.default默认约束,如果写入一行记录的时候,指定了默认约束的列,如果在写入数据时,没有指定一个确定的值,就会用默认值进行填充该字段的值

5.foreign key 外键约束,一张表要与另一张表的主键或者唯一键进行约束,说明表与表之间的关联关系

4.表的设计(需要满足三个范式)

4.1.第一范式

定义:数据库的每一列都是不可分割的原子数据项。满足第一范式的数据库被称为关系型数据库

4.2.第二范式

定义:在满足第一范式的基础上,不存在非关键字段对任意候选键部分函数依赖。笑出了部分函数依赖。

概括: 一个表中存在复合主键,当有一列只依赖复合主键中的某一个键,那这种设计就不满足第二范式

不满足第二范式可能出现的问题:a.数据冗余,b.更新异常,c.插入异常,d.删除异常

4.3.第三范式

定义:在满足第二范式的基础上,不存在非关键字段,对任一候选键的传递依赖。

在第二范式的基础上,消除了传递依赖

4.4数据库的关系模型

1.一对一关系。

2.一对多关系

3.多对多关系。

4.5.设计表的过程:

1.通过需求找到实体。

2.确定实体之间的关系。

3.根据不同的关系按照固定的方法去创建表。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐