欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SQL Server 笔记

程序员文章站 2022-06-01 22:41:11
...

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不是