美文网首页
mysql 自增、计算字段、三范式

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

作者: 2simple | 来源:发表于2018-08-26 19:08 被阅读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 中 Duplicate entry '127

    mysql 中"Duplicate entry '255' for key 'PRIMARY'" 自增字段达到了上...

  • Mysql-sequence的实现

    在Oracle中,我们经常使用sequence来建立一个自增字段,在Mysql中,也有自增,但是。。(以下省略一千...

  • 【Mysql优化分析】之InnoDB索引类型及原理、字段范式/逆

    Mysql优化的部分有很多,本文主要介绍Mysql执行过程、索引类型及原理、字段范式/逆范式设计、索引设计及使用。...

  • 数据库的常见知识

    数据库三范式 第一范式:表中的每个字段不可再分第二范式:满足第一范式并且表中的非主键字段依赖主键字段第三范式:满足...

  • 关于mysql自增字段问题

    最近遇到mysql字段的自增问题,需要临时处理一下,然后就顺便补补课,这样就有了这样一篇文章。 1.自增值是什么 ...

  • mysql使用简单技巧

    1.将非主键设置为自增mysql的自增列只能存在一个。若为非主键的自增,则需要增加如下索引,即可设置为自增字段 2...

  • DAY01-mysql加强

    一、 mysql的进一步介绍 三范式 1NF:字段不可分,每个字段是原子级别的。不满足第一范式(1NF)的数据库就...

  • MySQL三大范式和反范式

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

网友评论

      本文标题:mysql 自增、计算字段、三范式

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