SQL server从入门精通----表的复制与多表连接查询

--select into table2 from table1
--insert into  table2 select table1  讲解

create table userInformation
(
    id int identity(10001,1),
    uid int,
    name nvarchar(30),
    age int,
    birthday nvarchar(30),
    address nvarchar(50),
    country nvarchar(20),
    province nvarchar(20),
    city nvarchar(20),
    remark nvarchar(200),
    --constraint DF_uid Foreign key(uid) references Q_user(uid)
)
select * from userInformation
alter table userInformation
add constraint DF_uid Foreign key(uid) references Q_user(uid)

--将 Q_user 查询的当作表赋值给表(含结构和数据) userInformation(要求此表不存在)
select uid,uName into userInformation from Q_user 

--将Q_user查询的数据插入到 userInformation
insert into  userInformation(uid,name) select uid,uName from Q_user

--多表查询

--全连接
select *
from userInformation,Q_user 

--内连接
select *
from Q_user b,userInformation a
where a.uid=b.uid 

--内连接(两张 表向中间连接,只要相同的)
select * from Q_user a
inner join userInformation b   --inner 可以省略
on a.uId=b.uid

--左连接   (以左边的表为基础,连接右边有连接数据,没有为null)
select * from Q_user a
left join userInformation b   --inner 可以省略
on a.uId=b.uid

--右连接(以右边的表为基础)
select * from Q_user a
right join userInformation b   --inner 可以省略
on a.uId=b.uid

--自连接(就是连接自己 给一张表取不同的别名就好了)
select * from Q_user a
right join Q_user b   --inner 可以省略
on a.uId=b.uid

----------------union--------
--union 联合两张表的数据,相同数据只显示其中的一条
--union all 完全将两张表联合,不管数据的相同
--不管是union还是union all,前表与后表的列名一定要是一致的,而且不能出现text的列-----------------

select * from Q_user union select * from Q_user  

select * from Q_user union all select * from Q_user 
时间: 2024-10-13 22:39:13

SQL server从入门精通----表的复制与多表连接查询的相关文章

SQL server从入门精通----表的crud

--单表的简单crud select * from Q_user --查询所有列 select uid,uName,uPwd from Q_user --查询指定列 可以用where 指定条件 select uid,* from Q_user delete Q_user -- 会删除这张表的所有数据 (慎用) 可以用where 指定条件 insert into Q_user values('张三','123','0','0','0','') insert into Q_user(uName,uP

SQL server从入门精通---- T-sql基本语句+函数与存储过程

-----------------T_SQL------------------------------ --1.全局变量------------------------------------- print @@identity --最后一次插入的标识值 print @@language --当前使用语言 print @@version --版本号 print @@servername--服务名 --2.自定义变量 ----1.声明用declare declare @i int,@j int

SQL server从入门精通----表的操作

1 use Qzone 2 3 --select * from sysobjects where name='Q_user' 4 if OBJECT_ID('Q_user','u') is not null --obejct_id一个根据表sysobjects的方法(对象名,对象类型) 5 drop table Q_user --删除表 6 create table Q_user 7 ( 8 uId int, --identity(10001,1),--主键约束 9 uLogName nvarc

SQL server从入门精通---- 数据基础知识

数据库入门: 数据库的发展:人工管理阶段-----文件管理阶段-----数据库系统阶段 数据系统的组成: 1.数据库(数据)db 2.数据管理系统(软件)dbms 3.数据库管理人员  dba 4.硬件平台   5.软件平台        数据库的3级模式 模式   外模式   内模式   简单点说 模式就是表 外模式就是视图 内模式是物理结构和存储方式一般你是用不到的   3级模式之间的2级映射 模式/外模式映射(逻辑独立性) 外模式/内模式映射(物理独立性) 数据模型 层次模型   网状模型

SQL server从入门精通----触发器

-----触发器------------------- ---触发器:是一种特殊的存储过程,是在某个操作发生自动执行的一个操作 select * from Q_user --------------insert 触发器-------------- if(OBJECT_ID('tr_insert','tr')) is not null drop trigger tr_insert create trigger tr_insert on Q_user --基于哪个表创建的触发器(就是哪个表在发生插入

SQL server从入门精通---- 数据库相关

数据的操作 use master go IF EXISTS(SELECT * FROM sysdatabases WHERE NAME='QZone') --判断数据库是否存在 BEGIN --表示语句块的开始( DROP DATABASE QZone --如果数据库存在先删掉数据库 END --表示语句块的结束) GO CREATE DATABASE QZone --下面的不写的话使用默认配置 ON PRIMARY --创建主数据库文件 ( NAME='QZone', --文件名逻辑名 FIL

SQL server从入门精通----3种分页

--分页语句 --max id分页 select top 4 * from District where id>(select ISNULL(max(id),0) from (select top 2 id from District order by Id) a) --not id 分页 select top 4 * from District where id not in(select top 2 id from District ) --ROW_NUMBER分页 select * fro

SQL server从入门精通---- 事务

-------------事务-------------- --我的理解(执行几条语句时,只要有一条语句执行不成功,其他的语句都不够被执行) --事务:将多个操作当做一个独立的逻辑单元的执行方式为事务------ --特点:多个操作只有在都执行成功时才算成功,只要有一个执行失败那应该整体就属于失败,成功了可以提交,失败了可以回滚 语法 begin transaction tr_insert --开始事物(名称随便取 begin try insert into Q_user(uLogName) v

SQL server从入门精通----内置函数

--聚合函数的补充 --var 求某列的方差 --数学函数 select abs(-1) --绝对值 select CEILING(3.5) select floor(3.5) select round(3.5555,2) select SQRT(4) select square(2) select POWER(2,3) select RAND()*100 -- 日期时间函数 select CURRENT_TIMESTAMP --2015-09-09 22:53:12.727 select GE