SQL server 基础

来源:互联网 发布:linux 日志 编辑:程序博客网 时间:2024/05/10 11:11

一、SQL语句入门

可以再右击操作的数据库名MyDB2,再弹出的上下文菜单中选择“新建查询”,写Sql语句:

1. 字符串用单引号

2.不区分大小写

3.  新建表Create table 表名(id int not null,Name nvarchar(50),Age int null;

4.删除表

Drop table表名;

5.insert into表面(字段名,)values(字段值,)

注,如果有字段设置为“标识”——自动增长,那么在插入时,可以不写该字段。有些字段是可以为空Null,有些字段不可为空(主键) not null,这时,在插入一条记录的时候,可以为空的可以不写,不可为空的必须写。

6.  Sql语句分为DDLDML语句。

DDL数据库定义语句主要包含CreateDrop

DML数据库管理语句主要:insertupdate, deleteselect…等等。

Delete删除表,使表为空。

Drop……..

二. 数据插入

insert into表面(字段名,)values(字段值,)

字段:默认值属性。

设置主键的类型为 guidunqhiefier…

将主键的默认值设为:newid()

三、数据更新

Update表名 Set字段名=N‘字段值’

Where age=50;!!等于使用=号,不是==

数据删除

Delete FROM表名 where….

五、数据检索Select who from who

1检索全部记录。

Selet * from表名

2检索需要的列

Select列名1 ,列名2 from表名

3列别名:

Select列名1 as别名,列名2 as别名 from表名

 

 

例子:

create database TestSchool--创建一个数据库TestSchool
on primary
(
name="TestSchool.mdf",
filename="D:\test\TestSchool.mdf",
filegrowth=10%
)
log on
(
name="TestSchool_log.ldf",
filename="D:\test\TestSchool_log.ldf"

)
create table TblStudent--创建一个表TblStudent
(
tSId int identity(1,1) primary key,
tSName nvarchar(10) not null,
tSGender bit default(1),
tSAddress nvarchar(1500),
tSPhone varchar(50),
tSAge int,
tSBirthday datetime,
tSCardid varchar(50),
tSClassid int


)
--drop table TblStudent--删除表

 

create table TblScore--创建表TblScore
(
tScoreId int identity(1,1) primary key,
tSId int not null,
tEnglish float,
tMath float
)

go
create table TblTeacher
(
tTId  int identity(1,1) primary key,
tTName nvarchar(50),
tTGender bit default(0),
tTAge int,
tTSalary money,
tTBirthday datetime


)
go

--跨数据库访问
use TestSchool--当前使用本数据表
select * into myteacher from  School..TblTeacher;
--myteacher这个表本来不存在,但是select * into myteacher from  School..TblTeacher就会把新建表myteacher,然后把其他数据库中的表的结构copy到中

 


--最基本的插入方式
insert into TblTeacher(tTName,tTGender,tTAge,tTSalary,tTBirthday) values('姚洪波',1,27,10000,'1980-10-10');
--只向某些列插入数据
insert into TblTeacher(tTName,tTSalary) values('李雨锦',5000);
--不建议大家使用这种方式给bit类型数据直接赋'true',这种做法只有2008版本支持,以前的版本不支持
insert into TblTeacher(tTName,tTGender,tTAge,tTSalary,tTBirthday) values('李伟','true',26,10000,'1980-10-16');
--自动编号为什么会跳转(字段中出现错误)
insert into TblTeacher(tTName,tTGender,tTAge,tTSalary,tTBirthday) values('陈红军','true',26,10000,'1980-10-16');
--为自动编号插入数据
insert into TblTeacher(tTId,tTName,tTGender,tTAge,tTSalary,tTBirthday) values(8,'陈红军','true',26,10000,'1980-10-16');


set identity_insert TblTeacher on
insert into TblTeacher(tTId,tTName,tTGender,tTAge,tTSalary,tTBirthday) values(8,'陈红军','true',26,10000,'1980-10-16');
set identity_insert TblTeacher off

--insert into 表名 [(列名1,列名2....列名n)] values()
insert into TblTeacher values('辛兴涛','true',27,10000,'1982-07-09');

--union插入多行
insert into TblTeacher
select 'Chris',1,20,1500,'1999-9-9' union
select 'James',1,20,1600,'1999-10-11' union
select 'Tom',1,20,1700,'1999-9-20' union
select 'Marry',0,20,1500,'1999-9-9'

--只显示修改一行

insert into TblTeacher
select '辛兴涛','true',27,10000,'1982-07-09' union
select '辛兴涛','true',27,10000,'1982-07-09' union
select '辛兴涛','true',27,10000,'1982-07-09' union
select '辛兴涛','true',27,10000,'1982-07-09'

--备份数据:1讲一个表中的数据备份到另一个表中
--将TblTeacher表中的数据备份到另外一个表TblTeacher表中表中,前提是TblTeacher表中不存在,如果它存在就会报错
select * from TblTeacher
select * into NewTblTeacher from TblTeacher

--向一个已经存在的表中插入数据,数据的来源是另一张表

insert into NewTblTeacher(tTName,tTAge)
select tTName,tTAge  from TblTeacher

--在写SQL语句的时候,如果有字符串常量,应该在前面加N
--前面加N表示什么?不加也不会报错为什么要加?
--编辑器将来是要把编辑器中的代码取出来交给SqlServer数据库引擎来处理,然后引擎才能对脚本进行解释
insert into TblTeacher(tTName,tTGender,tTAge,tTSalary,tTBirthday) values(N'小红','true',26,10000,'1980-10-16');

--数据更新(修改)
--将表中年龄为20岁的人都修改为19岁
select * from TblTeacher
update TblTeacher set tTAge=19 where tTAge=20

--将所有人的工资都改为2000
update TblTeacher set tTSalary=2000


--update TblStudent set tSGender=0 where tSName='anna';
--练习3:所有女学生的年龄减1岁
update TblStudent set tSAge=tSAge-1 where tSGender=0;
select * from TblStudent
--删除工资大于2000的老师
delete from TblTeacher where tTSalary>2000;

  --更新一个列
select * from TblStudent
update TblStudent set tSGender=1
update TblStudent set tSGender=0,tSAge=19,tSBirthday='1905-05-17'

--练习2:考试题偏难,所有人的成绩加5分

update T_Score set english=english+5 where english+5

<100;

update T_Score set english=100 where english+5>=100

 

原创粉丝点击