① sql我想定义一个 id 的字段 让他 非空 和 唯一 怎么写
一种是主键 建表的时候加上primary key 就满足,另一种不是主键但是需要唯一,创建唯一索引alter table 表名 add constraint UQ_UNIQUE(id)
② mysql在建表时,如何能保证除了主键以外的某个键值是唯一的
create table tablename(
id not null primary key auto_increment,
这样定义的就是唯一的!!
③ SQL中如何设置唯一性约束
alter table [protectionZone]add constraint cons_02 unique (zoneName)。
约束用于限制加入表的数据的类型。可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句)。
(3)sql唯一id除了主键扩展阅读:
SQL具有数据定义、数据操纵和数据控制。
1、SQL数据定义功能:能够定义数据库的三级模式结构,即外模式、全局模式和内模式结构。在SQL中,外模式有叫做视图(View),全局模式简称模式( Schema),内模式由系统根据数据库模式自动实现,一般无需用户过问。
2、SQL数据操纵功能:包括对基本表和视图的数据插入、删除和修改,特别是具有很强的数据查询功能。
3、SQL的数据控制功能:主要是对用户的访问权限加以控制,以保证系统的安全性。
④ SQL表内除了主键其他数据重复的如何删除只保留一条
delete from table where exists (select 1 from table where tr_date=table.tr_date and tr_num=table.tr_num and tr_id=table.tr_id and tr_note=table.tr_note group by tr_date,tr_num,tr_id,tr_note having count(*)>1)
and id not in (select max(id) from table group by tr_date,tr_num,tr_id,tr_note having count(*)>1)
⑤ SQL中什么叫主键,什么是外键,有啥关系
说简单点就是,主键就是唯一标识一列的约束,外键就是数据引用主键的一个约束两者的关系就是,主键值必须是唯一的,也就是不能重复,外键引用了主键,那么它的值就只能是主键中出现过的值,不能是主键未出现的值
⑥ sql复制一条记录,除了主键
假设你的表名为A,主键为ID,要复制ID为1的记录,新纪录ID为999,要复制的记录有多少个字段都不用关心
select*into#tmpfromAwhereID=1
update#tmpsetID=999
insertintoAselect*from#tmp
⑦ 在sql中如何提高除主键外其他列的查询效率
1.select 语句 只返回需要字段,尽量不用要select * from table
2. where 条件先优先使用索引字段, 非必要时不要使用非索引字段
3 避免使用临时表(#temp),如需要,可考虑使用变量表(@table),使用临时表时,最后要删除掉(drop table #temp)。
4 避免使用游标(Cursors), 如需要,可考虑使用while 循环.
5 避免使用if else 来分隔大查询。
6 避免大查询嵌套大查询( in (select ….))
7.避免where 条件字段使用函数 ,如 convert(varchar(10), charge_date, 121) = '2010-10-10' 可以修改为 charge_date between '2010-10-10 00:00:00' and '2010-10-10 23:59:59'
8 .避免where 条件使用charindex, 可以使用in 或 <> (不等于)替换。
9.避免Where 条件使用charindex; or 等
10. 可以用 = (等于)的不要使用 like
11.Like 可以左模糊或右模糊的,不要使用同时左右模糊.
12.In 和 exists 使用 子查询数量级比主查询小时,使用in 反之使用 exists
13.尽量避免使用case when then end; group by; distinct; order by ; sum; max; min 等函数。
14.可用Union all 时不要使用 union
⑧ mysql数据库怎么让id自动增长,但ID不是主键。难道只有ID为主键时,才可以自增的么
从零蛋娃娃的回复中得到启示,解决问题。
重新表述需求: id自增长,同时需要一个键uniquekey是唯一键。
解决方法就是:
把id在索引中设置索引类型为任意一个类型,比如normal,然后unique就可以设置为主键了。
或者反过来,id自增长,同时作为主键。 uniquekey在索引中索引类型设置为unique即可。
补充:考虑到主键能设置成外键,所以建议用以上第一种方式。
⑨ 数据库设计中,如果一个表中除了唯一的主键外,没有其他字段,是保留这个表,还是把它作为其他表的属性
主键是惟一的,但是主键可以是个集合,比如 学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一的,学号就是一个主键 课程表(课程编号,课程名,学分) 其中课程编号是唯一的,课程编号就是一个主键