① sql怎么添加自定义列并且将此列的数据作为条件查询
经过测试:我的方法可行。不行再找我。
select Time as 日期 ,sum(Num) as 月份总和
from Warning
group by Time
order by Time asc
/*---- 不写asc结果是一样的,因为默认是asc 升序,从1,2,3号这样开始升序排序。如果倒序则 desc
特别说明:依据楼主的提问:Time里面的日期不一定是连贯的,
1: 利用 group by Time 分组----解释:我把日期列Time 进行分组 如,1月, 2月, 3月, 4月, 5月
也就是说不管1月份的数据出现几次都归为一组,所有2月的都归为一组。到这里聪明点的人就知道了,把归为一组的 Num列 相加就可以实现要求了。
2:利用求和函数 sum (Num)把分组好的列求出他们的和就行了,这里就是所有1月为一组的会自动相加 (其他组的不相加),所有2月归为一组的会自动相加。。。。。。
3:利用 order by Time asc 升序产生连贯1月,2月,3月,这样升序排序。
4:特别说明:这里如果Time 列 数据类型是 datatime 的值是精确到时分秒的话,必须截取字符串,得到年月日或者只得到月份,因为时分秒分组的话就非常多了,1月份的时分秒都参与分组会有很多的,到时候得到1月份的和就变成1月份1号8点8分06秒 这个时间的都分组再求和。
5:楼主的要求:对应日期没有数据则显示0,isnull(你的列,0) 这个函数来转换成为0 在求和。0的总和还是0。
所以最终写成
select Time as 月份 ,sum(isnull(Num,0)) as 月份总和
from Warning
group by Time
order by Time asc
6:这个要求——因为第一列是表里面原本没有的,现在必须强行列出来,说得不太明确啊。
alter table 表名 add 列名 类型和属性等 这语句是创建一个新的列。
----*/
② SQL怎么限定已经赋值的列名做条件
--1.建表create table 表(data date,name varchar(10)) --2.插入数据 insert into 表 values('2010-1-1', '老李') insert into 表 values('2011-1-1', '小王') insert into 表 values('2011-1-1', '老李') insert into 表 values('2012-1-1', '小王') insert into 表 values('2012-1-1', '老李') insert into 表 values('2012-1-1', '张大') insert into 表 values('2013-1-1', '小王') insert into 表 values('2013-1-1', '老李') insert into 表 values('2013-1-1', '张大') insert into 表 values('2014-1-1', '小王') insert into 表 values('2014-1-1', '老李') insert into 表 values('2014-1-1', '张大') insert into 表 values('2015-1-1', '小王') insert into 表 values('2015-1-1', '老李') insert into 表 values('2015-1-1', '张大')
③ sql语句中如何为新增列指定为NOT NULL
主键肯定不能为not null了- -
还有就是看看有没约束
ALTER TABLE 只允许添加满足下述条件的列: 列可以包含空值;或者列具有指定的 DEFAULT 定义;或者要添加的列是标识列或时间戳列;或者,如果前几个条件均未满足,则表必须为空以允许添加此列。不能将列"xxx"添加到非空表"xx"中,因为它不满足上述条件。
alter table xx add 添加列表要是空的
指定列是否可接受空值。如果列不允许空值,则只有在指定了默认值或表为空的情况下,才能用 ALTER TABLE 语句添加该列。只有同时指定了 PERSISTED 时,才能为计算列指定 NOT NULL。如果新列允许空值,但没有指定默认值,则新列在表中的每一行都包含一个空值。如果新列允许空值,并且指定了新列的默认值,则可以使用 WITH VALUES 将默认值存储到表中每个现有行的新列中。
如果新列不允许空值,并且表不为空,那么 DEFAULT 定义必须与新列一起添加;并且,加载新列时,每个现有行的新列中将自动包含默认值。
在 ALTER COLUMN 语句中指定 NULL,可以强制 NOT NULL 列允许空值,但 PRIMARY KEY 约束中的列除外。只有列中不包含空值时,才可以在 ALTER COLUMN 中指定 NOT NULL。必须将空值更新为某个值后,才允许执行 ALTER COLUMN NOT NULL 语句,例如:
因为新建不能为空所以要先新建个可以为空的列
然后强制为空
下面代码以测试
alter table 表名 add 列名 nvarchar(20) null
go
UPDATE 表名 SET stuName = N'some_value' WHERE 列名 IS NULL
ALTER TABLE 表名 ALTER COLUMN 列名 NVARCHAR(20) NOT NULL
go
④ SQL server语句所有的约束条件
1、主键约束(Primary Key constraint):要求主键列数据唯一,并且不允许为空。
2、唯一约束(Unique constraint):要求该列唯一,允许为空,但只能出现一个空值。
3、检查约束(Check constraint):某列取值范围限制,格式限制等,如有关年龄、邮箱(必须有@)的约束。
4、默认约束(Default constraint):某列的默认值,如在数据库里有一项数据很多重复,可以设为默认值。
5、外键约束(Foreign Key constraint):用于在两个表之间建立关系,需要指定引用主表的哪一列。
(4)sql的列定义条件扩展阅读:
对于存在外键约束的表,如果进行删除非空的外键,可能会出现错误。 如果在 FOREIGN KEY 约束的列中输入非 NULL 值,则此值必须在被引用的列中存在,否则将返回违反外键约束的错误信息。
列级 FOREIGN KEY 约束的 REFERENCES 子句仅能列出一个引用列,且该列必须与定义约束的列具有相同的数据类型。表级 FOREIGN KEY 约束的 REFERENCES 子句中引用列的数目必须与约束列列表中的列数相同。每个引用列的数据类型也必须与列表中相应列的数据类型相同。
⑤ 怎样用SQL语句把列定义在某一指定位置
SQL 是不可以的,这个SQL 查询分析器 只负责显示.假如要指定位置.只能在程序里面写 .
这个问题我没有碰到过....不过我看很难...其实我们可以在程序里面控制排序顺序就可以了啊.比如说先显示哪一列 .后显示哪一列..... 表在客户那里有没有关系啊.你自己改下程序就可以了.... 你让 客户可以自己修改显示的字段...全局变量..以及显示的顺序....就是在ListCtrl的列显示循序就可以了...呵呵 ..增加还是增加到最后一个字段.假如你要 全部让客户自己控制的话.则必须增加中文注释... 用中文来建立表列名 ...增加一列可以.但是不能修改列之间的循序....很难...
这个很容易,你写sql的时候注意下就可以了.可以通过临时表来建立字段啊..有两种方法.一种是升级的时候查询有没有该字段.假如有该字段.则不建立该字段.假如没有该字段 ,则执行 增加该字段..对于每个字段都这么设置.当然,前期要可以为空.或者设置默认值 .要不就会出错...
SQL Server:
判断字段:
if not exists(
select * from syscolumns where name='列名'
and id= (
select id from sysobjects where xtype='u' and name ='表名'
)
)
--这里写修改表结构的语句....
alter table 表
add id int default 0
⑥ 什么是SQL里面的约束条件请通俗一点,最好有列子
约束是SQL Sever自动强制数据库完整的方式,约束定义了列中允许的取值。在SQL Sever中提供五种类型的完整性约束。1、NULL/NOT NULL 约束;2、UNIQUE约束(唯一约束);3、PRIMARY KEY 约束(主键约束);4、FOREIGN KEY 约束(外键约束)5、CHECK 约束
例如:1、create table s(Sno char(6) not null,
Sname char(10))
2、create table s(Sno char(6) ,
Sname char(10) unique)
3、create table s(Sno char(6) primary key,
Sname char(10))
4、create table SC(Sno char(6) not null foreign key references S(Sno))
5、create table SC(Sno char(6),
Cno char(6),
Score double check(Score>=0 and Score<=100))
以上这些如果你要看数据库的书,里面会详细告诉你它们是如何使用的
⑦ SQL SEVER的列定义该怎么设置
UIN定义成自增长,从10000开次,每次自增长1。FOOD MONEY你要自动输入的值是什么?在定义的时候,可以设置默认值为0。
⑧ SQL中规定某列值只能是0或者1的约束该怎么写
SQL CHECK约束。
CHECK约束用于限制列中的值的范围。
如果对单个列定义CHECK约束,那么该列只允许特定的值。
如果对一个表定义CHECK约束,那么此约束会在特定的列中对值进行限制。
--删除表
drop table temp;
--创建表
CREATE TABLE temp (flag NUMBER(1));
--增加约束
ALTER TABLE tempADDCONSTRAINTck_temp_flag CHECK
(flag=1 or flag=0);
--测试效果版
insert into temp values(1);
insert into temp values(0);
insert into temp values(1);
--测试效果(约束禁止插入数据),提示权:违反检查约束条件
insert into temp values(2);
insert into temp values(3);
SQL CHECK Constraint on CREATE TABLE。
下面的SQL在"Persons"表创建时为"Id_P"列创建CHECK约束。CHECK约束规定"Id_P"列必须只包含大于0的整数。
My SQL:
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CHECK (Id_P>0)
)
(8)sql的列定义条件扩展阅读:
不同数据库的约束写法:
SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
Id_P int NOT NULLCHECK (Id_P>0),
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
如果需要命名CHECK约束,以及为多个列定义CHECK约束,请使用下面的SQL语法:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')
)
SQL CHECK Constraint on ALTER TABLE.
如果在表已存在的情况下为"Id_P"列创建CHECK约束,请使用下面的SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CHECK (Id_P>0)
如果需要命名CHECK约束,以及为多个列定义CHECK约束,请使用下面的SQL语法:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')
撤销CHECK约束。
如需撤销CHECK约束,请使用下面的SQL:
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT chk_Person
⑨ 什么是SQL里面的约束条件
约束是SQL Sever自动强制数据库完整的方式,约束定义了列中允许的取值。在SQL Sever中提供五种类型的完整性约束。1、NULL/NOT NULL 约束;2、UNIQUE约束(唯一约束);3、PRIMARY KEY 约束(主键约束);4、FOREIGN KEY 约束(外键约束)5、CHECK 约束
例如:1、create table s(Sno char(6) not null,
Sname char(10))
2、create table s(Sno char(6) ,
Sname char(10) unique)
3、create table s(Sno char(6) primary key,
Sname char(10))
4、create table SC(Sno char(6) not null foreign key references S(Sno))
5、create table SC(Sno char(6),
Cno char(6),
Score double check(Score>=0 and Score<=100))
⑩ 什么是SQL里面的约束条件
SQL 约束(Constraints)
SQL 约束用于规定表中的数据规则。
如果存在违反约束的数据行为,行为会被约束终止。
约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTER TABLE 语句)。
本回答来自:SQL 约束(Constraints)_树懒学堂
SQL CREATE TABLE + CONSTRAINT 语法