美文网首页
MySQL的自增,三范式

MySQL的自增,三范式

作者: 常伟波 | 来源:发表于2018-09-04 08:34 被阅读0次

select concat(name,id) as stuinfo from 表名;  查看当前表名中的名字和id

去除左右两边的空格 SELECT CONCAT(TRIM(name),id) as info FROM students;

查看表的信息

show create table 表名;

show create table 表名 \G;

修改表的自增起始值
ALTER ATBLE 表名 AUTO_INCREMENT=起始值

ALTER TABLE students AUTO_INCREMENT=180720;

改变当前默认字符集 alter table students charset=gbk;

注意:一个表只能有一个自增 并且一般都会是主键为自增
设置步长(起始值) 会话级别的步长

查看原始步长show session variables like 'auto_inc%';

设置步长(自增的偏移量)set session auto_increment_increment=2;会话级别的步长

set session auto_increment_offset=10;会话级别的起始值

设置步长 全局级别的步长
查看原始步长show global variables like 'auto_inc%';

设置步长(自增的偏移量)set global auto_increment_increment=2;全局级别的步长

set global auto_increment_offset=10;全局级别的起始值

给电话号码设置加密
INSERT INTO students(phone) values(password('12333'));
创建计算字段

创建的计算字段原本并不存在我们的表里面

我们通过mysql 的函数或者算术运算得到一个结果,我们把这个结果起一个别名

加密函数

PASSWORD('123455') MD5('344')

创建计算字段

IF(条件,v1,v2):条件满足为true返回v1否则返回v2 SELECT IF(age>30,age,0) from students;

IFNULL(v1,v2)if v1 not null 返回v1 否则返回v2 SELECT IFNULL(phone,'00000000000') from students;

SELECT name,CASE WHEN phone is null THEN '00000000000' ELSE phone END from students;

三范式

一范式1NF 列不可再分(能满足需求的情况下拆分)

二范式2NF 必须有主键(由一个列或多个列组成主键)非主键的列必须完全依赖于主键 而不是部分依赖

三范式   在第二范式的基础上 不能存在传递依赖 非主键的列必须直接依赖于主键而不能存在传递依赖的关系(关联)

E-R模型

E:表示实体 其实就是根据某一个事物的特征 添加描述信息  我们将这些描述信息的添加在一个表里面那么这个表就相当于一个实体

R:relationship关系,实体跟实体之间的关系 表与表之间的关系
一对一:个人信息与身份证

个人信息表

create table user(

    id int auto_increment,

     name varchar(10) not null,

    clsid int,

外键 当前表里面的外键必须是外面表里面的主键

contrasint fk_idcard foreign key( clsid) references ident表名 (id)

    );

身份证

    create table ident (

    id int auto_increment,

     id_num varchar(50) not null,

    primary key(id)

    );

一对多:

    create table students(

    stu_id int auto_increment,

     stu_name varchar(20) not null,

     parmary key(stu_id)

    );

班级表

create table class(

     cla_id int auto_increment,

      cla_name varchar(20) not null,

        cla_stu_num int default 0,

      parmary key(cla_id)

    );

多对多

    create table students(

    stu_id int auto_increment,

     stu_name varchar(20) not null,

     parmary key(stu_id)

    );

课程

   create table courses(

    cour_id int auto_increment,

     cour_name varchar(20) not null,

     parmary key(cour_id)

    );

相关文章

  • MySQL的自增,三范式

    select concat(name,id) as stuinfo from 表名;查看当前表名中的名字和id 去...

  • mysql 自增、计算字段、三范式

    select concat(name,id) as stuinfo from 表名;查看当前表名中的名字和id去除...

  • MySQL三大范式和反范式

    MySQL三大范式和反范式 第一范式 第二范式 第三范式 反范式

  • 分布式主键

    mysql 自增id 自增id 缺点 :1 mysql insert 后 必须 SELECT LAST_INSE...

  • mysql操作数据库

    MYSQL主键自增用法

  • 数据库设计三范式与反范式

    MySql设计与优化系列笔记:一、数据库设计三范式与反范式二、MySql表设计与优化 第一范式: 1、数据库的所有...

  • MySQL之三范式

    引用 MySQL设计之三范式的理解 数据库逻辑设计之三大范式通俗理解,一看就懂,书上说的太晦涩 三范式 第一范式:...

  • MySQL三范式

    本文的示例代码参考normalization 目录 Startup 1NF什么是Primary-Key什么是Par...

  • mysql 三范式

    第一范式:确保每一列不可再分 1.第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该...

  • 02-MySQL数据库

    一、MySQL三大范式 MySQL的三大范式能够规范开发人员对数据表的设计,使得开发人员能够设计出简洁、优雅的数据...

网友评论

      本文标题:MySQL的自增,三范式

      本文链接:https://www.haomeiwen.com/subject/hywwwftx.html