SQL Server 笔记

1、将一张表的部分字段传入另一张表(未建立),同时创建这张表
必须选整张表,不能只选部分字段,
可以用FROM嵌套语句实现选取原表部分字段

SELECT	* INTO 库名.新表名
FROM ( SELECT ... FROM 库名.原表名) 临时表名; 

2、在表中添加新的字段/删除字段/更新字段
更新时,”=“只能一一对应,可以用WHERE语句用唯一标识值(eg.id)进行比对,一条一条选入

--插入
ALTER TABLE ADD 字段名 类型 [特殊规范(NULL,IDENTITY...)]
--删除
ALTER TABLE 表名 DROP COLUMN 字段名
--更新
UPDATE 表名 SET 列名=数值

3、取INT型数据中的几位
CAST()函数转换类型
CAST (字段名 AS 要转换的类型)
先转换为字符型CHAR,用SUBSTRING()函数截取后,在转换回整数型INT

CAST (
		SUBSTRING (CAST(CANTON_ID AS CHAR), 1, 6) AS INT
)

4、默认值
(1)SELECT临时表默认值

SELECT  '默认值' AS 字段名

(2)CREATE创表时设置默认值

CREATE TABLE 表名 
(字段名 字段类型 DEFAULT('默认值'))

5、JOIN
left join :左连接,返回左表中所有的记录以及右表中连接字段相等的记录。

right join :右连接,返回右表中所有的记录以及左表中连接字段相等的记录。

inner join: 内连接,又叫等值连接,只返回两个表中连接字段相等的行。

full join:外连接,返回两个表中的行:left join + right join。

cross join:结果是笛卡尔积,就是第一个表的行数乘以第二个表的行数。

在使用left jion时,on和where条件的区别如下:

1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。

2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。

具体例子
6、查找id以1024开头的记录

SELECT * FROM 表名 WHERE id='1024%'

7、插入/更新记录

--插入
insert INTO 表明(字段名,...)
VALUES('值1','值2',...);
--更新
update 表名 set 字段名='值'
where 更新条件

8、系统表

--系统表的字段表
select * from sys.columns;
--
select * from sys.tables;
--
select * from sys.types;

字段表:
object_id 对象的ID
name 字段名称
column_id 字段排序
system_type_id 字段的类型ID
user_type_id 字段的类型ID
max_length 最大长度
is_nullable 是否可以为空,1可为空,0不可为空
is_identity 是否为自增列,1是,0不是

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值