MySQL——列属性(表的约束条件)

表的创建
CREATE TABLE 表名
(
列名a 数据类型(数据长度) 列级约束条件,
列名b 数据类型(数据长度) 列级约束条件,
列名c 数据类型(数据长度) 列级约束条件,
...
表级约束条件(约束条件涉及到多个属性列,则须定义在表级上)
);

CREATE TABLE `runoob_tbl`(
   `runoob_id` INT UNSIGNED AUTO_INCREMENT,
   `runoob_title` VARCHAR(100) NOT NULL,
   `runoob_author` VARCHAR(40) NOT NULL,
   `submission_date` DATE,
   PRIMARY KEY ( `runoob_id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
常见的列属性(约束条件CONSTRAINTS)
列属性说明
NULL没有约束条件的默认值
NOT NULL不允许为空
DEFAULT默认值
UNIQUE唯一值
PRIMARY KEY主键
FOREIGN KEY外键
AUTO_INCREMENT自增
COMMENT注释
一、NOT NULL
字段名 数据类型(数据长度) NOT NULL

phone INT(12) NOT NUL
二、DEFAULT
字段名 数据类型(数据长度) DEFAULT 默认值

age INT(10) DEFAULT 18
三、UNIQUE

1、列级

字段名 数据类型(数据长度) UNIQUE

id INT(4) UNIQUE

2、表级

UNIQUE (字段名)

CREATE TABLE department
(
  dpt_name   CHAR(20) NOT NULL,
  people_num INT(10) DEFAULT '10',
  UNIQUE (dpt_name),
 );
四、PRIMARY KEY

1、列级

字段名 数据类型(数据长度) PRIMARY KEY

id INT(4) PRIMARY KEY

2、表级

PRIMARY KEY(列a,列b,...)

create table my_pri(
number char(10),
course char(10),
score TINYINT,
PRIMARY KEY(number,course)--复合主键
)charset utf8;

3、追加主键。有两种方式:

# 第一为修改表字段属性;
alter TABLE my_pri MODIFY number char(11) PRIMARY KEY;

# 第二直接追加
alter table table_name add PRIMARY KEY(column) ;

alter TABLE my_pri add PRIMARY KEY(number,course);--增加复合主键

alter table my_pri add CONSTRAINT pk_score PRIMARY KEY(score)--使用关键字CONSTRAINT 且指定主键名字pk_score 

alter table my_pri add CONSTRAINT  PRIMARY KEY(score)--使用关键字CONSTRAINT 且使用默认名字

五、FOREIGN KEY
CONSTRAINT 外键名(自定义) FOREIGN KEY(外键列)REFERENCES 表名(外键列指向的列)

CREATE TABLE department
(
  dpt_name   CHAR(20) NOT NULL,    --外键列指向的列
  people_num INT(10) DEFAULT '10',
 );

CREATE TABLE employee
(
  id INT(10) PRIMARY KEY,
  name CHAR(20),
  in_dpt CHAR(20) NOT NULL,    --外键列
  CONSTRAINT emp_fk FOREIGN KEY (in_dpt) REFERENCES department(dpt_name)
 );
六、AUTO_INCREMENT
字段名 数据类型(数据长度) AUTO_INCREMENT,

id INT(10) AUTO_INCREMENT,
七、注释

1、# 单行注释

SELECT 1+1;     # This comment continues to the end of line

2、-- 单行注释(注意,-- 后要跟一个空格)

SELECT 1+1;     -- This comment continues to the end of line

3、/* */ 多行注释

mysql> SELECT 1 /* this is an in-line comment */ + 1;

mysql> SELECT 1+
/*
this is a
multiple-line comment
*/
1;
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值