mysql怎么为约束起名,MySQL约束名
怎样在mysql 建表时约束属性类型为汉字
1.约束主要有一下几种:
站在用户的角度思考问题,与客户深入沟通,找到江宁网站设计与江宁网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站制作、网站设计、企业官网、英文网站、手机端网站、网站推广、域名申请、网络空间、企业邮箱。业务覆盖江宁地区。
NOT NULL : 用于控制字段的内容一定不能为空(NULL)。
UNIQUE : 控件字段内容不能重复,一个表允许有多个 Unique 约束。
PRIMARY KEY: 也是用于控件字段内容不能重复,但它在一个表只允许出现一个。
FOREIGN KEY: FOREIGN KEY 约束用于预防破坏表之间连接的动作,FOREIGN KEY 约束 2. 也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。
CHECK: 用于控制字段的值范围。
DEFAULT: 用于设置新记录的默认值。
3. not null : 用于控制字段的内容一定不能为空(NULL)。
用法 :Create table MyTable
(
id varchar(32) not null,
name varchar (32)
)
4. Primary Key :也是用于控件字段内容不能重复,但它在一个表只允许出现一个。
在Sql Server、Orcale、MS Access 支持的添加Primary Key语法:
Create table myTB1
(
id nvarchar(32) not null primary key,
name nvarchar(32)
)
MySQL数据表的修改:添加约束
4.4.7添加约束
语句格式:ALTER TABLE 表名ADD CONSTRAINT 约束名 约束类型(字段名)
上面语句格式中,“表名”指定要添加约束的是哪个表,“ADD CONSTRAINT”表示要在表中增加约束,其后的“约束名”是拟增加约束的名字,“约束类型”是拟增加约束的类型,其后括号里的“字段名”是指约束是在哪一个字段上建立起来的。
下面截图中的“ALTER TABLE”语句在t_dept表中新增加了一个约束名为unidept的约束,它是在对字段deptno进行的唯一性约束。
mysql如何对现有字段增加auto increment 约束?
1、创建表格时添加: create table table1(id int auto_increment primary key,…)
2、创建表格后添加: alter table table1 add id int auto_increment primary key 自增字段,一定要设置为primary key.
附:mysql 中的alter table mysql alter table employee change depno depno int(5) not null;
加索引 mysql alter table 表名 add index 索引名 (字段名1[,字段名2 …]);
例子: mysql alter table employee add index emp_name (name);
加主关键字的索引 mysql alter table 表名 add primary key (字段名);
例子: mysql alter table employee add primary key(id);
加唯一限制条件的索引 mysql alter table 表名 add unique 索引名 (字段名);
例子: mysql alter table employee add unique emp_name2(cardnumber);
查看某个表的索引 mysql show index from 表名; 例子: mysql show index from employee;
删除某个索引 mysql alter table 表名 drop index 索引名; 例子: mysqlalter table employee drop index emp_name;
修改表:增加字段:mysql ALTER TABLE table_name ADD field_name field_type;
查看表:mysql SELECT * FROM table_name;
修改原字段名称及类型:mysql ALTER TABLE table_name CHANGE old_field_name new_field_name field_type;
删除字段:ALTER TABLE table_name DROP field_name;
SQL在设置约束和索引时,有时会取个名字,请问这个名字是干嘛用的?怎么使用?它存在哪里了?
给约束取名字, 目的是将来你可以比较容易的删除掉.
否则你要自己去查询数据字典表.
例如下面的例子.
唯一约束的名字, 是 t_123, 那么当我不需要这个约束的时候
如果我知道名字, 那么可以直接去删除掉.
-- 创建测试表.
CREATE TABLE test_123 (
id INT,
value VARCHAR(10)
);
GO
-- 创建 UNIQUE 约束.
ALTER TABLE test_123
ADD CONSTRAINT t_123 UNIQUE (value);
GO
-- 删除 UNIQUE 约束.
ALTER TABLE [test_123]
DROP CONSTRAINT [t_123];
GO
如果我不指定约束名称, 例如:
1 ALTER TABLE test_sub
2 ADD UNIQUE (value)
3 go
那么这种情况下, 如果我要删除这个约束, 就需要去查询数据字典表。
由于各个数据库厂商的数据字典表各有不同, 下面简单列一些常用的数据库。
Oracle 参考 USER_CONSTRAINTS 视图
SQL Server
对于 唯一约束, 参考 sys.indexes 视图里面的 is_unique_constraint = 1 的数据
对于外键约束,参考 sys.foreign_keys 视图里面的数据
对于 Check约束, 参考 sys.check_constraints 视图里面的数据
对于 MySQL
可以参考 INFORMATION_SCHEMA.TABLE_CONSTRAINTS 里面的数据。
在mysql 中为表的字段添加唯一性约束的语句怎么写
建表时加上唯一性约束:
CREATE TABLE `t_user` (
`Id` int(11) NOT NULL AUTO_INCREMENT, -- 自增
`username` varchar(18) NOT NULL unique, -- 唯一性约束
`password` varchar(18) NOT NULL,
PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=1018 DEFAULT CHARSET=gbk;
MySQL是一个关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
扩展资料:
MySQL 作为数据库,系统特性:
1、使用 C和 C++编写,并使用了多种编译器进行测试,保证了源代码的可移植性。
2、支持 AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统。
3、为多种编程语言提供了 API。这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby,.NET和 Tcl 等。
4、优化的 SQL查询算法,有效地提高查询速度。
5、提供多语言支持,常见的编码如中文的 GB 2312、BIG5,日文的 Shift_JIS等都可以用作数据表名和数据列名。提供 TCP/IP、ODBC 和 JDBC等多种数据库连接途径。
6、支持大型的数据库。可以处理拥有上千万条记录的大型数据库。支持多种存储引擎。
参考资料:百度百科-mySQL
mysql外键约束怎么写
你好朋友
1.简介
外键表示一个表中的一个字段被另外一个表中的字段应用.外键对相关表中的数据造成了限制,使MySQL 能够保证参照完整性.
在MySQL 中,InnoDB 存储引擎支持外键.在一张表中,可以存在多个外键.
外键的创建可以在创建表的时候创建,也可以在创建表之后增加(考虑数据的完整性问题).
父表:外键所指向的表.
字表:相对于父表,拥有外键的表.
2.语法
create 语法
create table table_name(
column_1,
column_2,
....
constraint constraint_name foreign key (column_name)
references parent_table(column_name)
on delete action
on update action
) engine=InnoDB default charset utf8;
constraint 子句允许为外键定义一个名称,如果不写,MySQL 自动生成一个名称
foreign key 子句指定子表中要应用父表的列.注意:MySQL 会自动创建一个基于外键的索引.
references 子句指定父表中的被引用字段.foreign key 和references 指定的列数必须相同.
on delete: 定义当父表中的记录被删除时,子表的记录应该执行的动作.action包括:
on delete restrict:(默认),父表不能删除一个已经被子表引用的记录.
on delete no action:等同与on delete restrict
on delete cascade: 级联模式,父表删除后,对应子表关联的数据也跟着被删除
on delete set null:置空模式,父表删除后,对应子表关联的外键值被设置为NULL,需要注意的是,如果子表的外键设置not null ,则不能使用这种模式,因为会相互冲突.
on update:定义父表中的记录更新时,子表的记录应该执行的动作.action 包括:
on update restrict:(默认),父表不能更新一个已经被子表引用的记录.
on update no action:等同与on delete restrict
on update cascade: 级联模式,父表更新后,对应子表关联的数据也跟着被更新
on update set null:置空模式,父表更新后,对应子表关联的外键值被设置为NULL,需要注意的是,如果子表的外键设置not null ,则不能使用这种模式.
alter 语法
-- 添加外键
alter table table_name add constraint constraint_name
foreign key column_name
references parent_table(column_name)
on delete action
on update action
-- 删除外键
alter table table_name drop constraint_name;
-- 如果没有显式的定义名字,可以使用如下命令获取
show create table table_name;
3.演示
构造两张表categoryes 和products.每个类别有多种产品,而每个产品只属于一个类别.
-- 设置 类别表 categoryes 和产品表 products
create table categoryes(
c_id int not null auto_increment,
c_name varchar(45) not null,
c_description text,
primary key (c_id)
) engine=InnoDB default charset utf8 comment '类别表';
create table products(
p_id int not null auto_increment,
p_name varchar(45) not null,
p_price decimal(8,4),
c_id int,
primary key (p_id),
constraint fk_products_categoryes
foreign key (c_id)
references categoryes(c_id)
on delete set null
on update cascade
) engine=InnoDB default charset utf8 comment '产品表';
在这两张表的基础上,新生成一张vendors 供应商表,并更新products字段
-- 新生成一张表 供应商 vendors ,并为 products 新添加字段 v_id 外键
-- 引用 vendors.v_id
create table vendors(
v_id int not null auto_increment,
v_name varchar(45),
primary key (v_id)
) engine=InnoDB default charset utf8 comment '供应商';
alter table products add column v_id int not null;
alter table products add
constraint fk_products_vendors foreign key (v_id)
references vendors(v_id)
on delete no action
on update cascade;
望采纳祝你好运
分享名称:mysql怎么为约束起名,MySQL约束名
本文来源:http://scyanting.com/article/hssjgj.html