mysql 自增 計算字段 三正規化

2021-09-29 17:42:35 字數 2676 閱讀 5630

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,

parimary key(stu_id)

);

班級表

create table class(

cla_id int auto_increment,

cla_name varchar(20) not null,

cla_stu_num int default 0,

primary key(cla_id)

);
多對多

create table students(

stu_id int auto_increment,

stu_name varchar(20) not null,

primary key(stu_id)

);

課程

create table courses(

cour_id int auto_increment,

cour_name varchar(20) not null,

primary key(cour_id)

);

**:

mysql 自增字段原理 MySQL自增字段暴增

找了點資料 從網上看到一篇文章,mysql在檢測到表中有損壞的記錄時,會自動修復,為了保證資料的完整性,mysql會以空格 0x20 寫進磁碟來完成修復。根據欄位的型別,自增字段的長度不同,所允許的最大值也不同。見下 int 10 unsigned型別最大值十進位制為4294967295,十六進製制...

Mysql自增字段

1.關鍵字 auto increment 2.自增用法 例 create table animals id mediumint not null auto increment,name char 30 not null,primary key id 3.關於自增 q 怎麼獲得當前的自增的最大值?q ...

mysql自增字段重排

由於刪除了某些記錄行,所以自增字段不連續了。重排或歸零的方法 方法1 truncate table 你的表名 這樣不但重新定位自增的字段,而且會將表裡的資料全部刪除,慎用!方法2 delete from 你的表名 dbcc checkident 你的表名,reseed,0 重新定位自增的字段,讓它從...