2017-3-10 SQLserver增,删,改,查语句,主外键约束,多数据的插入
(一)
1.创建数据库 create database 数据库名称 ----不能数字开头,不能中文,不能符号开头
删除数据库 drop database 数据库名称
注释:/* */ 一段注释 --一行注释
2.创建表 create table 表名称
(
列名 数据类型,
…… ,
列名 数据类型,
)
3 设置主键列:primary key 设置唯一列:unique 设置非空:not null 设置自然增长列:identity(1,1)从一开始,每次增加1
删除表:drop table 表名
添加列:alter table 表名 add 列名 数据类型
删除列:alter table 表名 drop column 列名
4.添加数据 insert into 表名 values(字符串,时间,布尔类型需要用单引号 数字不需要)
insert into Student values('s001','张三','true','n001','1995-2-2',99)
5.修改数据:update 表名 set 列名 = 值 ----- 这样是修改这一列的全部值
update Student set Score =100
6.删除数据:delete from 表名 或者truncate table 表名
区别:delete删除的数据是可以恢复的,留言删除日志 truncate 删除是清空,没有日志,释放存贮地址,无法恢复
7.查询语句:select * from 表名
(二)
1.条件修改:可以针对某个某个数据进行修改
update 表名 set 列名 = 值 where 列名 = 值
update Student set Name = '小刘' where StudId='s001' ---- 将s001的姓名改为小刘
2.条件删除:
delete from 表名 where 列名 = 值
delete from Student where StudId='s002 ---- 删除学号是s002学生的成绩
(三)高级查询
1.条件查询
+ 查列 *改为要查看的列,多列逗号隔开 select Score from Student -- 查看学生成绩列
+ 筛选条件 where 列名 = >= <= > < 值 and or
2.模糊查询
select * from 表名 where 列名 like ’%xxx%‘ %通配符,表示还有xxx的
3.排序查询
select * from 表名 order by 列名 asc--从低到高/desc--从高到低
4.去重查询
select distinct 列名 from 表名
5.分组查询
select 某一列 from 表名 group by 对应的列名
6.子查询
将查询的语句当作值来使用
(四)
1.主外键的约束:
--alter table 被约束的表名 add constraint约束名称 foreign key(被约束表的列名)references 用来约束另外表的名称(用来约束外表的列名)
如表A中的Ids是主键,要约束表B中的Aid列,那么语句应该是:
alter table B add constraint (A_B_Ids 这个是约束名称,随便写) foreign key(Aid) references A(Ids)
(五)多数据的插入
1.使用insert into 表 select ..... from 表
向一个表中插入另外一个表的数据
2.将一个表的数据全部复制到另外一个新表中(表中的各种约束不能复制),新表是在执行select into的时候建立的
select into 新表名称 from 要复制的表名称
select top 0 into 新建表名 from 要复制的表名称 ----- 只是复制表的结构,内容不复制