MySql學習筆記 2

2021-10-22 02:01:21 字數 2027 閱讀 7422

# 建表約束

### 主鍵約束

```mysql

-- 主鍵約束

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

create table user (

id int primary key,

name varchar(20)

);-- 聯合主鍵

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

create table user (

id int,

name varchar(20),

password varchar(20),

primary key(id, name)

);-- 自增約束

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

create table user (

id int primary key auto_increment,

name varchar(20)

);-- 新增主鍵約束

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

alter table user add primary key(id);

alter table user modify id int primary key;

-- 刪除主鍵

alter table user drop primary key;

```### 唯一主鍵

```mysql

-- 建表時建立唯一主鍵

create table user (

id int,

name varchar(20),

unique(name)

);-- 新增唯一主鍵

-- 如果建表時沒有設定唯一建,還可以通過sql語句設定(兩種方式):

alter table user add unique(name);

alter table user modify name varchar(20) unique;

-- 刪除唯一主鍵

alter table user drop index name;

```### 非空約束

```mysql

-- 建表時新增非空約束

-- 約束某個字段不能為空

create table user (

id int,

name varchar(20) not null

);-- 移除非空約束

alter table user modify name varchar(20);

```### 預設約束

```mysql

-- 建表時新增預設約束

-- 約束某個欄位的預設值

create table user2 (

id int,

name varchar(20),

age int default 10

);-- 移除非空約束

alter table user modify age int;

```### 外來鍵約束

```mysql

-- 班級

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)

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

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

```

mysql學習筆記(2)

mysql中資料型別 1.整形 整形大小 位元組 數值 有符號 tinyint 1 128 127 smallint 2 2 15 2 15 1 mediumint 3 2 23 2 23 1 int4 2 32 2 32 1 bigint 8 2 63 2 63 1 tinyint m unsig...

mysql學習筆記2

mysql常用函式 1 字串函式 concat s1,s2.sn 把傳入的引數連線成乙個字串 select concat baiduadress,address from kd order insert str,x,y,newstr 將字串str從第x位置開始,y個字元長的子串替換為字串newstr...

mysql學習筆記2

約束 作用 為了保證資料的有效性和完整性 mysql中常用的約束 主鍵約束 primary key 唯一約束 unique 非空約束 not null 外來鍵約束 foreign key 主鍵約束 被修飾過的字段唯一非空 注意 一張表只能有乙個主鍵,這個主鍵可以包含多個字段 方式1 建表的同時新增約...