创建视图可以使用createtable语句
createtable一次可以创建多个表吗?
createtable一次可以创建多个表吗?
不可以,一条语句创建一个表,要想创建多个表可以用多条create table语句,多条语句用;隔开
sql一个表中可以设置几个唯一约束?
sql一个表中设置唯一约束个数没有限制,约束用于限制加入表的数据的类型。可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句)。
扩展资料:
SQL具有数据定义、数据操纵和数据控制。
1、SQL数据定义功能:能够定义数据库的三级模式结构,即外模式、全局模式和内模式结构。在SQL中,外模式有叫做视图(View),全局模式简称模式( Schema),内模式由系统根据数据库模式自动实现,一般无需用户过问。
2、SQL数据操纵功能:包括对基本表和视图的数据插入、删除和修改,特别是具有很强的数据查询功能。
3、SQL的数据控制功能:主要是对用户的访问权限加以控制,以保证系统的安全性。
如何把两条SQL语句合并?
sql语句合并的方式要依据sql语句本身的内容而定,如果两条sql里的内容是查询同一个表的,那么可以直接合并,如果是不同的表,就要看是否有主键外键关联(join),如果完全不相干的两条sql语句要合并,就用union
举个例子:
我用Toad做演示,我先新建两张table,create table #AA(ID int,name nvarchar(10),age int)create table #BB(ID int,name nvarchar(10),age int )
分别向两张table插入三条数据,可以用两个班来理解A班有三个学生,B班也有三个学生,为下一步sql语句做准备
insert into #AA select 1,N#39;张三#39;,10
insert into #AA select 2,N#39;李四#39;,10
insert into #AA select 3,N#39;王五#39;,11
insert into #BB select 1,N#39;张A#39;,10
insert into #BB select 2,N#39;李B#39;,11
insert into #BB select 3,N#39;王C#39;,12
现在要求AB两个班找出年龄等于10岁的同学,最直接的方法就是:select * from #AA where age10
select * from #BB where age10但是这样会产生两个结果集,结果不直观!
接下来用union将这两条sql语句合并起来,F5执行之后,就会发现变成一个结果集!
select * from #AA where age10
union
select * from #BB where age10
还有一种不用union的做法,sql语句这样写:
select a.*,b.* from #AA a inner join #BB b on
where and
这种写法就是要找出主键外键的关联关系,但是结果就不好直观来阅读,因为结果集是混乱的
对比join与union,可以发现union是完全的结果累加,相当于完美合并,join是属于条件连接,要依据实例来判断什么时候该用join,什么时候该用union