1. 程式人生 > >Mysql系列課程--第二章 約束 自增主鍵

Mysql系列課程--第二章 約束 自增主鍵

一.約束(保證資料的合理性)
1.not Null 非空約束,不能為null
2.unique 唯一約束 , 不能重複
3.primary key 主鍵約束 ,唯一標識這條資料
4.foreign key 外來鍵約束,用來連線兩張表,這張表的外來鍵一定是另一張表的主鍵
5.check 檢查約束,判斷資料是否合理
6.default 預設約束 ,如果你不設定,則插入預設值

二. unique 唯一約束 與 primary key 主鍵約束 的區別
1.一張表裡只能有一個主鍵,可以有多個唯一約束
2.唯一約束可以為空(除SQL SERVER外均可出現多個null值),主鍵不可以

三.新增約束
1.為teahcer新增tno為主鍵

alter table teacher add column tno int primary key;

2.新增一個唯一約束

 alter table teacher add constraint uk_name unique(name);

3.刪除唯一約束

alter table teacher drop index uk_name;

4.刪除主鍵

alter table teacher drop primary key;

5.新增一個主鍵

alter table teacher add constraint
pk_tno primary key(tno);

6.新增外來鍵

 alter table student add constraint fk_tno foreign key(tno) references teacher(tno);

四.自增主鍵

create table student(
    s_no int primary key auto_increment,
    s_name varchar(20),
    s_sex varchar(5),
    s_age int
)

新增一條資訊(表名後面一定要加插入的相應欄位)

insert student(s_name,s_sex,s_age) values
('李文輝','女',20);

相關推薦

Mysql系列課程--第二 約束

一.約束(保證資料的合理性) 1.not Null 非空約束,不能為null 2.unique 唯一約束 , 不能重複 3.primary key 主鍵約束 ,唯一標識這條資料 4.

Mysql數據庫表的重新排列

mysql 主鍵 排列Mysql數據庫表的自增主鍵重新排列1,刪除原有主鍵:ALTER TABLE `表名` DROP `id`;2,添加新主鍵字段:ALTER TABLE `表名` ADD `id` MEDIUMINT( 8 ) NOT NULL FIRST;3,設置新主鍵:ALTER TABLE `表名`

Mybatis+Mysql插入數據庫返回id值的三種方法

文章 param mysql int sta source nbsp 通用 映射 一、場景: 插入數據庫的值需要立即得到返回的主鍵id進行下一步程序操作 二、解決方法: 第一種:使用通用mapper的插入方法 Mapper.insertSelective(r

MySql中測試GUID 與Int 效能對比 總結適用場景

一. 建立以下三個資料表: int 主鍵自增表, guid主鍵表, 關聯以上兩個表的關係表tbl_test_relation CREATE TABLE `tbl_test_int` (     `id` INT(11) NOT NULL AUTO_INCREMENT,  

INNODB的一些問題 vs mysql獲得字段下一個值

nod 天發 內存 ima dialog creat class 成對 例子 今天發現 批量插入下,自增主鍵不連續了。。。。。。。 InnoDB AUTO_INCREMENT Lock Modes This section describes

mysql建立的插入,及自動插入當前時間

user 解決方法 int value mysq src blog creat ecc MYSQL裏用這兩個字段,幾乎都是必須的。 以前都是自動建立的,現在手把手建立的時候,就要找資料來搞定了。 參考URL: http://blog.csdn.net/Weicleer

mybatis的執行流程 #{}和${} Mysql返回

ola save select .org 經驗 sel 占位符 upd 執行 n Mybatis配置 全局配置文件SqlMapConfig.xml,配置了Mybatis的運行環境等信息。 Mapper.xml文件即Sql映射文件,文件中配置了操作數據庫的Sql語句。此文件需

Mysql UUID做主及字串在插入、查詢,分頁等效能

1.插入方面 UUID做主鍵,其他欄位相同,插入100萬條資料,用了3.5個小時 自增主鍵,其他欄位相同,插入相同的100萬條資料,用了16分鐘 有序增長的字串做主鍵,其他欄位相同,插入相同100萬條資料,用了7分鐘 2.查詢方面 UUID做主鍵,select count() fro

mysql刪除

bsp modify 同時 類型 round mod color tab ext 在MySQL中刪除主鍵需要兩步.(1)如果有auto_increment,先刪除之;(2)刪除主鍵約束 primary key1、alter table t9 modify id int(11

時獲取Mysql的值及Oracle非的值

<insert> parameterType:引數型別,可以省略,  1、獲取自增主鍵的值:         mysql支援自增主鍵,自增主鍵值的獲取,mybatis也是利用statement.getGenreat

【筆記】mybatis+mysql,當入參為map時,如何獲取返回的

<selectKey resultType="java.lang.Integer" order="BEFORE" keyProperty="paramMap.id">  // keyProperty 要指定為引數map的名稱.返回的鍵名才行,入參paramMap,返回的自增主鍵

記錄:Mysql 修改欄位長度、修改列名、新增列、修改起始值

以下轉自https://www.cnblogs.com/yangjinwang/p/5918906.html alter table 表名 modify column 欄位名 型別; 例如 資料庫中user表 name欄位是varchar(30) 可以用 alter tab

MySQL的InnoDB引擎強烈建議使用的原因

1)InnoDB使用聚集索引,資料記錄本身被存於主索引的葉子節點上,這就要求同一個葉子節點內的各條資料記錄按主鍵順序存放,因此每當一條新的記錄插入時,MySQL會根據其主鍵將其插入適當的節點和位置,如果頁面達到裝載因子,則開闢一個新的頁(節點)如果表使用自增主鍵,那麼每次

Mysql和Mybatis獲取新插入資料的值

Mysql 首先就是mysql獲取最近插入資料id的查詢方法 mysql為我們提供了查詢最近插入自增主鍵ID的值 獲取剛插入的自增長id的值 insert into user (username,age,address) VALUES ('abc',18

mybatis mysql返回

對於自增主鍵的返回 <insert id="insertUser" parameterType="cn.itcast.mybatis.po.User"> <!-- selectKey實現將主鍵返回,將主鍵返回到user物件

MySql獲取插入記錄ID值

現在這種場景偏多,獲取的方式也很多。像MyBatis和Hibernate都有方式去獲取該值。 現在簡單講講MyBatis是獲取插入記錄自增主鍵ID值的。 public class Stu { private int id; private S

【mycat】mycat中配合mysql的使用

本文實現一個簡單的demo,展示mycat配合mysql實現分庫時自增主鍵的使用。 前提說明:mycat目前提供了自增主鍵的使用,但是如果對應的mysql節點上的資料表沒有定義auto_increment的話,mycat的自增主鍵也是無效的。 1、在schema.xml中

MySqlid插入失敗或刪除後,再插入亂序問題

在對資料庫進行操作的時候,資料庫的表裡的id是自增的,當資料被刪除或者新增或者插入失敗時,id會一直增上去,變得很亂,不會按照順序,下面是兩種解決辦法: alter table tablename drop column id; alter table tablenam

巧妙解決mysql刪除或新增記錄時,對ID進行重新排序的問題

一、問題描述 表一 id 姓名 1 張三 2 李四 表二(當刪除第一條記錄時,顯示為表二) id 姓名 2 李四 表三(如何使表顯示為表三,即實現對錶中的id欄位重新排序) id 姓名 1 李四 二、問題解決 原理:重新定義一個變數用來顯示錶中的序列號 echo "<

mysql查詢一個表的下一個值:

Mysql的INFORMATION_SCHEMA資料庫包含了一些表和檢視,提供了訪問資料庫元資料的方式。 元資料是關於資料的資料,如資料庫名或表名,列的資料型別,或訪問許可權等。有些時候用於表述該資訊的其他術語包括“資料詞典”和“系統目錄”。 下面對一些重要的資料字典表做一些說明:SCHEMATA表:提供了關