创建数据库,表,插入,更新,删除
1 --1.创建一个数据库 2 create database School ; 3 4 --删除数据库 5 DROP DATABASE SCHOOL 6 7 --创建数据库的时候,指定一些数据库的相关参数,比如大小,增长方式、文件保存的路径 8 create database School 9 on primary --主数据文件 *.mdf 10 ( 11 --数据库的逻辑名称 12 name='School' , 13 size = 10M , 14 filename = 'c:\school.mdf' , 15 filegrowth = 10% , 16 maxsize = 100mb 17 ) 18 log on --日志文件 *.ldf 19 ( 20 name='School_log' , 21 filename = 'c:\school.ldf', 22 size = 5mb, 23 filegrowth = 2mb, 24 maxsize = 50mb 25 ) 26 go --批处理执行 27 --切换数据库 28 use School --点击F5执行sql语句,先选中,就会执行选中的代码,如果没有选中,直接F5会将当前打开的代码都执行 29 30 --为数据库创建表 31 --创建一个班级表 32 create table TblClass 33 ( 34 --创建好了一列 35 --列名,数据类型,约束(自动编号、主键、外键、默认值等等) 36 ClassId int identity(1,1) primary key, 37 ClaName varchar(50) not null, 38 ClaDesc varchar(500) 39 ) 40 go 41 --删除 TblClass表 42 drop table TblClass 43 go 44 --创建一个TblStudent表 45 create table TblStudent 46 ( 47 stuId int identity(1,1) primary key, 48 stuName nvarchar(50) not null, 49 stuGender bit not null, 50 stuAddress varchar(200), 51 stuPhone varchar(50), 52 stuAge int, 53 stuBirthday datetime, 54 stuIdNumber varchar(20),--身份证号码 55 stuClsId int 56 ) 57 go 58 --通过sql语句向TblClass表中插入数据 59 insert into TblClass(ClsName,ClsDesc) 60 values('黑马三期','没有二期NB') 61 go 62 --通过select 语句来查询表中的数据 63 select ClaName,ClsDesc,ClsId from TblClass 64 select * from TblClass 65 --ctrl + R 66 --控制结果窗口的显示与影藏
二、显示数据库中有多少表
sp_tables
三、插入语句
1 --1.最基本的插入 2 insert into TblTeacher(tname,tgender,tage,tsalary,tbirthday) 3 values('杨中科',1,18,100000,'2010-09-9') 4 5 --2.只想某些列插入数据,这时的前提是其他列可以为null或者是有默认值的情况 6 insert into TblTeacher(tname,tsalary) 7 values ('苏坤',500000) 8 9 --当向表中的除自动编号外的所有其他列都插入数据的时候,这是可以省略列名 10 insert into 11 values('杨中科',1,18,100000,'2010-09-9') 12 13 --3.为自动编号插入数据 14 set IDNETITY INSERT TblTeacher on 15 insert into TblTeacher(tid,tname,tsalary) 16 values (100,'bob',500000) 17 18 --insert into ...values 这种写法每次只能插入一条数据 19 insert into TblTeacher 20 select 'Chris',1,20,2000000,'1999-9-9' union 21 select 'James',1,20,2000000,'1990-9-9' union 22 select 'Tom',1,20,2000000,'1990-9-9' 23 24 --union关键字本身就具有去掉重复的意思 25 --union(去掉重复)\union all(不去掉重复) 26 select 'Chris',1,20,2000000,'1999-9-9' union 27 select 'James',1,20,2000000,'1990-9-9' union 28 select 'James',1,20,2000000,'1990-9-9' union 29 select 'James',1,20,2000000,'1990-9-9' union 30 select 'Tom',1,20,2000000,'1990-9-9' union 31 select 'Tom',1,20,2000000,'1990-9-9' union 32 select 'Tom',1,20,2000000,'1990-9-9' 33 34 select 'Chris',1,20,2000000,'1999-9-9' union all 35 select 'James',1,20,2000000,'1990-9-9' union all 36 select 'James',1,20,2000000,'1990-9-9' union all 37 select 'James',1,20,2000000,'1990-9-9' union all 38 select 'Tom',1,20,2000000,'1990-9-9' union all 39 select 'Tom',1,20,2000000,'1990-9-9' union all 40 select 'Tom',1,20,2000000,'1990-9-9' 41 42 --将一个表中的数据备份到另外一个表中 43 --将TblTeacher表中的数据备份到NewTblTeacher 44 --这种写法会将TblTeacher表中的所有数据都插入到NewTblTeacher表中 45 --前提是NewTblTeacher表不存在,如果这个表存在则报错 46 select * into NewTblTeacher from TblTeacher 47 48 --修改表中的列 49 alter table t2 alter column userName nvarchar(50) 50 51 --向一个已经存在的表中插入数据,数据的来源是另外一张表 52 insert into NewTblTeacher(tname,tage) 53 select tname,tage from TblTeacher
四、更新语句
1 --将所有年龄小于20岁的人的年龄都改成19 2 update TblTeacher set tage = 19 where tage < 20 3 4 --将年龄为20岁的人的年龄+1 5 update TblTeacher set tage = tage + 1 where tage = 20 6 7 --把所有人的工资都改成2000 8 update TblTeacher set tsalary = 2000 9 --1.对数据库操作前,一定要做备份 10 --2.细心 11 --数据库备份和还原 12 --数据库右键->任务->备份->还原 13 --把表中所有的年龄为19岁的同学的姓名两边加个☆,姓名=女,工资都+500 14 --SQL 2008 可以写成+=,但是尽量用通用的语法 tsalary = tsalary+500 15 update TblTeacher set tname ='☆'+tname+'☆',tgender=0,tsalary = tsalary+500 16 where tage = 19 17 18 --将年龄为19岁的,并且性别为0的,把☆换成★ 19 update TblTeacher set tname=REPLACE(tname,'☆','★') where tage = 19 and tgender = 0 20 21 --l逻辑运算符的优先级问题:not > and > or 22 tsage>10 and tsage<50 or tname='zs' and (not(tbirthday>'200-10-10'))
五、删除数据
1 --根据条件删除数据 2 delete from TblTeacher where tage=19 or tage is null 3 4 --删除所有数据 5 delete from TblTeacher 6 --删除所有数据并且恢复自动增长,最开始的值 7 truncate table TblTeacher 8 --区别: 9 --1.delete 语句删除数据的时候,自动编号没有恢复到默认值,但是truncate语句重新设置了自动编号 10 --2.通过truncate 语句删除表中的数据的时候,只能拿一次性都清空,不能根据条件删除,而delete可以根据条件来删除 11 --3.truncate语句清空表中的数时,速度(性能)比delete语句快的多的多