数据插入
1. 向表中插入一行(该行的每一列都有数据)
Insert into 表 values( 值 1 ,值 2)
2.插入数据时,只向某些列插入数据:如果插入的行中有些字段的值不确定,那么 Insert 的时候不指定那些列即可。
Insert into 表 ( 列 1) values( 值 1)
• 自动编号列不需要手动插入。 【SET IDENTITY_INSERT 表名 ON 】
• 注意:主键不能有重复值。
• 插入数据时的单引号问题。
• Insert into 表(列) select 列 1 ,列 2 union --可一次性插入多行记录
• Insert into 表(列) select 列 1 ,列 2 from 表
• Select 列 into 新表名 from 旧表
• N 前缀: N’ 字符串’,在服务器上执行的代码中(例如在存储过程和触发器中)显示的 Unicode 字符串常量 必须以大写字母 N 为前缀。即使所引用的列已定义为 Unicode 类型,也应如此。如果不使用 N 前缀,字符串将转换为数据库的默认代码页。这可能导致不识别某些字符。
3. 把一个表中的数据备份到另一个表中(新表)
select * into newtable from oldtable
4. 把一个表中的数据备份到另一个表中(表已经存在)
insert into newtable (列1,列2) select 列1,列2 from oldtable
5. 修改某列的数据类型
alter table tablename alter column UserName char(50)
6. 更新数据
• 更新一个列: update Student set sSex = ‘ 男’
注意where条件后面的优先级 not——>and——> or
7. 删除数据
• 删除表中全部数据:
DELETE FROM Student 。
Delete 只是删除数据,表还在,和 Drop Table 不同。
• Delete 也可以带 where 子句来删除一部分数据: DELETE FROM Student WHERE sAge > 20
• truncatetable student 的作用与 deletefrom student 一样,都是删除 student 表中的全部数据,区别在于:
– 1.truncate 语句非常高效。由于 truncate 操作采用按最小方式来记录日志,所以效率非常高。对于数百万条数据使用 truncate 删除只要几秒钟,而使用delete 则可能耗费几小时。
– 2.truncate 语句会把表中的自动编号重置为默认值。
– 3.truncate 语句不触发 delete 触发器。