赞
踩
从这里开始使用SQLyog工具对MySQL进行操作,下面操作都是在有数据库mydb1下进行建立的
create database mydb1; -- 创建mydb1数据库
表在设计的时候加入约束的目的就是为了保证表中的记录完整性和有效性。
比如用户表有些列的值(手机号)不能为空,有些列的值(身份证号)不能重复。
-- 在 create table 语句中,通过 PRIMARY KEY 关键字来指定主键。
--在定义字段的同时指定主键,语法格式如下:
create table 表名(
...
<字段名> <数据类型> primary key
...
)
use mydb1;
create table emp1(
eid int primay key, -- 主键
name VARCHAR(20),
deptId int,
salary double
);
--在定义字段之后再指定主键,语法格式如下:
create table 表名(
...
[constraint <约束名>] primary key [字段名]
);
use mydb1;
create table emp2(
eid INT,
name VARCHAR(20),
deptId INT,
salary double,
constraint pk1 primary key(eid)
);
注意:
当主键是由多个字段组成时,不能直接在字段名后面声明主键约束。
一张表只能有一个主键,联合主键也是一个主键
create table 表名(
...
primary key (字段1,字段2,…,字段n)
);
use mydb1;
create table emp3(
name varchar(20),
deptId int,
salary double,
primary key(name,deptId)
);
create table 表名(
...
);
alter table <表名> add primary key(字段列表);
-- 添加单列主键
use mydb1;
create table emp4(
eid int,
name varchar(20),
deptId int,
salary double
);
首先查看创建的表
修改表之后
alter table emp4 add primary key(eid);
alter table <数据表名> drop primary key;
-- 删除单列主键
alter table emp1 drop primary key;
-- 删除联合主键
alter table emp3 drop primary key;
在 MySQL 中,当主键定义为自增长后,
通过给字段添加 auto_increment 属性来实现主键自增长
字段名 数据类型 auto_increment
use mybd1;
create table t_user1(
id int primary key auto_increment,
name varchar(20)
);
默认情况下,auto_increment的初始值是 1,每新增一条记录,字段值自动加 1。
一个表中只能有一个字段使用 auto_increment约束,且该字段必须有唯一索引,以避免序号重复(即为主键或主键的一部分)。
auto_increment约束的字段必须具备 NOT NULL 属性。
auto_increment约束的字段只能是整数类型(TINYINT、SMALLINT、INT、BIGINT 等。
auto_increment约束字段的最大值受该字段的数据类型约束,如果达到上限,auto_increment就会失效。
-- 方式1,创建表时指定
use mydb1;
create table t_user2 (
id int primary key auto_increment,
name varchar(20)
)auto_increment=100;
-- 方式2,创建表之后指定
use mydb1;
create table t_user3 (
id int primary key auto_increment,
name varchar(20)
);
修改前
修改后
alter table t_user3 auto_increment=100;
方式1:<字段名><数据类型> not null;
方式2:alter table 表名 modify 字段 类型 not null;
-- 方式1,创建表时指定
use mydb1;
create table t_user6 (
id int ,
name varchar(20) not null,
address varchar(20) not null
);
use mydb1;
create table t_user7 (
id int ,
name varchar(20) , -- 指定非空约束
address varchar(20) -- 指定非空约束
);
alter table t_user7 modify name varchar(20) not null;
alter table t_user7 modify address varchar(20) not null;
-- alter table 表名 modify 字段 类型
alter table t_user7 modify name varchar(20) ;
alter table t_user7 modify address varchar(20) ;
方式1:<字段名> <数据类型> unique
方式2: alter table 表名 add constraint 约束名 unique(列);
-- 创建表时指定
use mydb1;
create table t_user8 (
id int ,
name varchar(20) ,
phone_number varchar(20) unique -- 指定唯一约束
);
use mydb1;
create table t_user9 (
id int ,
name varchar(20) ,
phone_number varchar(20) -- 指定唯一约束
);
alter table t_user9 add constraint unique_ph unique(phone_number);
-- alter table <表名> drop index <唯一约束名>;
alter table t_user9 drop index unique_ph;
MySQL默认值约束用来指定某列的默认值
方式1: <字段名> <数据类型> default <默认值>;
方式2: alter table 表名 modify 列名 类型 default 默认值;
use mydb1;
create table t_user10 (
id int ,
name varchar(20) ,
address varchar(20) default ‘北京’ -- 指定默认约束
);
-- alter table 表名 modify 列名 类型 default 默认值;
use mydb1;
create table t_user11 (
id int ,
name varchar(20) ,
address varchar(20)
);
alter table t_user11 modify address varchar(20) default ‘北京’;
-- alter table <表名> modify column <字段名> <类型> default null;
alter table t_user11 modify column address varchar(20) default null;
use mydb1;
create table t_user12 (
id int zerofill , -- 零填充约束
name varchar(20)
);
alter table t_user12 modify id int;
图片转存中…(img-NzCMTbjQ-1640856045903)]
use mydb1;
create table t_user12 (
id int zerofill , -- 零填充约束
name varchar(20)
);
[外链图片转存中…(img-eMb2L25b-1640856045904)]
alter table t_user12 modify id int;
[外链图片转存中…(img-G1e2cKto-1640856045906)]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。