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

 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 自增、计算字段、三范式)