6-12代码


--1.创建一个数据库
create database School;

--删除数据库
DROP DATABASE SCHOOL;

--创建数据库的时候,指定一些数据库的相关参数,比如大小,增长方式i、文件保存路径的。
create database School
on primary --主数据文件*.mdf
(
     --数据库的逻辑名称
     name='School',
     size=10mb,
     filename='c:\school.mdf',
     filegrowth=10%,
     maxsize=100mb
    
)
log on --日志文件*.ldf
(
     name='School_log',
     filename='c:\school.ldf',
     size=5mb,
     filegrowth=2mb,
     maxsize=50mb
)
go

--切换数据库
use School
go
--点击F5执行sql语句,先选中,就会只执行选中的代码,如果没有选中,直接f5会将当前打开的代码都执行一遍


--==================================为数据库创建表===========


--1.创建一个班级表
create table TblClass
(
     --创建好了一列
     --列名,数据类型、约束(自动编号、主键、外键、默认值等等)
     ClsId int identity(1,1) primary key,
     ClsName varchar(50) not null,
     ClsDesc varchar(500)
)
go

--删除TblClass表
drop table TblClass


--tSId
--     tSName
--     tSGender
--     tSAddress
--     tSPhone
--     tSAge
--     tSBirthday
--     tSCardId
--     tSClassId

--创建一个TblStudent表
create table [TblStudent]
(
     stuId int identity(1,1) primary key,
     stuName nvarchar(50) not null,
     stuGender bit not null,
     stuAddress varchar(200),
     stuPhone varchar(50),
     stuAge int,
     stuBirthday datetime,
     stuIdNumber varchar(20),--身份证号码
     stuClsId int
)
go

--通过sql语句向TblClass表中插入数据
insert into TblClass(ClsName,ClsDesc)
values('黑马三期','没有有二期NB')
go

--通过select语句来查询表中的数据
select ClsName,ClsDesc,ClsId from TblClass
select * from TblClass


--控制结果窗口的显示与隐藏
--ctrl +R


--======================
create database TestSchool
on primary
(
     name='TestSchool',
     filename='c:\db\TestSchool.mdf',
     size=100mb,
     maxsize=1024mb,
     filegrowth=10%
)
log on
(
     name='TestSchool_log',
     filename='c:\db\TestSchool.ldf',
     size=10mb,
     maxsize=50mb,
     filegrowth=10mb
)
Go



--创建学生成绩表TblScore
--tScoreId(成绩id,主键,自动编号)、tSId(学生编号)、tEnglish(英语成绩)、tMath(数学成绩)
create table TblScore
(
     tScoreId int identity(1,1) primary key,
     tsid int not null,
     tEnglish float,
     tMath float,
)
Go

--创建老师表TblTeacher
--tTId、tTName、tTGender、tTAge、tTSalary、tTBirthday
create table TblTeacher
(
     tid int identity(1,1) primary key,
     tname varchar(50),
     tGender bit default(1),
     tage int,
     tsalary money,
     tbirthday datetime
)
Go

use TestSchool

--跨数据库访问: 数据库..表名
select * into myteacher from School..TblTeacher


use School
sp_tables

select * from TblTeacher


--1.最基本的插入
insert into TblTeacher(tname,tgender,tage,tsalary,tbirthday)
values('杨中科',1,18,1000000,'2010-09-9')

--2.只向某些列插入数据,这时的前提是其他列可以为null或者是有默认值的情况
insert into TblTeacher(tname,tsalary)
values('苏坤',500000)

insert into TblTeacher(tname,tgender,tage,tsalary,tbirthday)
values(N'牛亮亮',1,18,100,'2010-09-9')

--当向表中的除自动编号外的所有其他列都插入数据的时候,这时可以省略列名
insert into TblTeacher
values('牛亮亮11',1,18,100,'2010-09-9')

--3.为自动编号插入数据
set IDENTITY_INSERT TblTeacher on
insert into TblTeacher(tid,tname,tsalary)
values(100,'bob',500000)
set IDENTITY_INSERT TblTeacher off

insert into TblTeacher(tname,tsalary)
values('bob',500000)
--insert into ... vlaues 这种写法每次只能插入一条数据
insert into TblTeacher
select 'Chris',1,20,2000000,'1999-9-9' union
select 'James',1,20,2000000,'1990-9-9' union
select 'Tom',1,20,2000000,'1920-9-9'


--union关键字本身就具有去掉重复的意思。
--union \ union all
insert into TblTeacher
select 'Chris',1,20,2000000,'1999-9-9' union all
select 'James',1,20,2000000,'1990-9-9' union all
select 'James',1,20,2000000,'1990-9-9' union all
select 'James',1,20,2000000,'1990-9-9' union all
select 'Tom',1,20,2000000,'1920-9-9' union all
select 'Tom',1,20,2000000,'1920-9-9' union all
select 'Tom',1,20,2000000,'1920-9-9' union all
select 'Tom',1,20,2000000,'1920-9-9'


--将一个表中的数据备份到另外一个表中

select * from TblTeacher

--将TblTeacher表中的数据备份到NewTblTeacher

--这种写法会将TblTeacher表中的所有数据都插入到NewTblTeacher表中
--前提是NewTblTeacher表不存在,如果这个表存在则报错。
select * into NewTblTeacher from TblTeacher

select * from NewTblTeacher
select * from TblTeacher

--向一个已经存在的表中插入数据,数据的来源是另外一张表。
insert into NewTblTeacher(tname,tage)
select tname,tage from TblTeacher



create table T3
(
     autoId int identity(1,1),
     userName varchar(40)
)

--修改表,中的列
alter table T3 alter column userName nvarchar(50)

drop table t2



--=========================更新语句---------------

select * from TblTeacher
--将所有年龄小于20岁的人的年龄都改成19
update TblTeacher set tage=19 where tage<20

--将年龄为20岁的人的年龄+1
update TblTeacher set tage=tage+1 where tage=20

--=把所有人的工资都改成2000.
--如果不加where条件会将所有数据都修改数据。
update TblTeacher set tsalary=2000


--1.对数据操作前,一定要做备份。

--2.细心。

--把表中所有的年龄为19岁的同学的姓名两边加个★,性别=女,工资都+500,
--SQL 2008 可以写成tsalary+=500,但是尽量用通用的语法 tsalary=tsalary+500
update TblTeacher set tname='★'+tname+'★',tgender=0,tsalary=tsalary+500
where tage=19

select * from TblTeacher

--将年龄为19岁的,并且性别为0的,人的姓名两边再加两个☆
update TblTeacher set tname=replace(tname,'★','☆') where tage=19 and tgender=0

--REPLACE ( string_expression , string_pattern , string_replacement )

--逻辑运算符
--not
--and
--or
--逻辑运算符的优先级问题:not > and > or

tsage>10 and tsage<50 or tname='zs' and ( not (tbirthday>'2000-10-10'))

select * from TblTeacher

delete from TblTeacher where  tage=19 or tage is null


--删除所有数据
delete from TblTeacher


insert into TblTeacher values('张三',1,20,10000,'2000-10-10')

truncate table TblTeacher

--=======使用delete from 表名 与truancate table 表名,都能把表中的数据全部删除-======
--区别:
--1.delete 语句删除数据的时候,自动编号没有恢复到默认值。但是truancate语句重新设置了自动编号
--2.通过truncate语句删除表中的数据的时候,只能一次性都清空,不能根据条件来删除,而delete可以根据条件来删除。
--3.truncate语句清空表中的数据时,速度(性能)比delete语句快的多的多的多。
--4..truncate语句不触发delete触发器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值