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;
列属性 | 说明 |
---|---|
NULL | 没有约束条件的默认值 |
NOT NULL | 不允许为空 |
DEFAULT | 默认值 |
UNIQUE | 唯一值 |
PRIMARY KEY | 主键 |
FOREIGN KEY | 外键 |
AUTO_INCREMENT | 自增 |
COMMENT | 注释 |
字段名 数据类型(数据长度) NOT NULL
phone INT(12) NOT NUL
字段名 数据类型(数据长度) DEFAULT 默认值
age INT(10) DEFAULT 18
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),
);
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 且使用默认名字
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,
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;