mysql 02 2 使用文件 建表約束

2022-06-17 14:36:15 字數 2473 閱讀 9036

-- 使某個欄位不重複且不得為空,確保表內所有資料的唯一性。

describe user; -----> id是不可以為null,且 key的值變為pri(primary) !

-- 聯合主鍵中的每個欄位都不能為空,並且加起來不能和已設定的聯合主鍵重複。

create table user2(

id int,

name varchar(20),

password varchar(20),

primary key(id, name)

);-- 自增約束的主鍵由系統自動遞增分配。

沒有 定義id值,但是自動生成了id。

-- 如果忘記設定主鍵,還可以通過sql語句設定(兩種方式):

alter table user add primary key(id);

alter table user modify id int primary key;

alter table user drop primary key;

新增"唯一約束"方式①【add unique(欄位名)】

alter table user add unique(name);

新增"唯一約束"方式②【建表時,新增-unique(name)】

create table user (

id int,

name varchar(20),

unique(name)

);新增"唯一約束"方式③【建表時,新增-name varchar(20) unique】

create table user7(

id int,

name varchar(20) unique

);新增"唯一約束"方式④【建表時,新增-unique(id, name)】

create table user8(

id int,

name varchar(20),

unique(id, name)

);新增"唯一約束"方式⑤【建表時,新增-unique(id, name)】

alter table user7 modify name varchar(20) unique;

alter table user drop index name;

create table user (

id int,

name varchar(20) not null

);alter table user modify name varchar(20);

create table user2 (

id int,

name varchar(20),

age int default 10

);alter table user modify age int;

設計到2個表:【父表、子表】(主表、副表)

副表要參照主表!

在副表中新增的資料,必須同樣存在於主表。

-- 1. 主表(父表)classes 中沒有的資料值,在副表(子表)students 中,是不可以使用的;

-- 2. 主表中的記錄被副表引用時,主表不可以被刪除。

-- 班級(主表)

create table classes (

id int primary key,

name varchar(20)

);-- 學生表(副表)

create table students (

id int primary key,

name varchar(20), -- 這裡的 class_id 要和 classes 中的 id 字段相關聯

class_id int, -- 表示 class_id 的值必須來自於 classes 中的 id 字段值

foreign key(class_id) references classes(id)

);

mysql建表和使用規則

特別注意 強制 建立表時必須顯式指定字符集為utf8或utf8mb4。強制 建立表時必須顯式指定表儲存引擎型別,如無特殊需求,一律為innodb。強制 建表必須有comment。建議 建表時關於主鍵 強制要求主鍵為id,型別為int或bigint,且為auto increment。建議 表中所有字段...

Mysql建表和索引使用規範

mysql建表和索引使用規範 tt lan2003 一 mysql建表,欄位需設定為非空,需設定字段預設值。二 mysql建表,欄位需null時,需設定字段預設值,預設值不為null。三 mysql建表,如果字段等價於外來鍵,應在該字段加索引。四 mysql建表,不同表之間的相同屬性值的字段,列型別...

Mysql建表與索引使用規範詳解

一 mysql建表,欄位需設定為非空,需設定字段預設值。二 mysql建表,欄位需null時,需設定字段預設值,預設值不為null。三 mysql建表,如果字段等價於外來鍵,應在該字段加索引。四 mysql建表,不同表之間的相同屬性值的字段,列型別,型別長度,是否非空,是否預設值,需保持一致,否則無...