master 系统数据库
model 模型数据库
tempdb 临时数据库
msdb 警报日志信息
数据库当中需要记住常用的几个数据类型:
varchar 字符串
text 文本
int 整数
float 小数
datetime 日期时间
bit 布尔类型
--创建表:create table 表名(
字段名 数据类型
)
--增删改查
--添加数据
--insert into 表名 values(字段1值,字段2值..);
insert into Student values('阿蛋','男',18,'嘻嘻','长沙','嘿嘿嘿')
--给指定字段添加数据:
--insert into 表名(字段,字段。。) values(字段1值,字段2值....);
insert into Student(sname,sage) values('阿昊',17)
--案例1:添加一个学生,添加姓名、性别、地址
insert into Student(sname,ssex,saddress)values('阿俊','女','娄底')
insert into Student(sname,sage,saddress)values('阿辉','18','娄底')--查询数据
--查询所有:*
select * from Student
--查询指定字段的值
--select 字段名,字段名,字段名.. from 表名
--案例:查询学生学号 和 姓名
select sid,sname from Student
--条件查询:where
--查询所有的男生信息
select * from Student where ssex='男';
--案例:查询所有地址是长沙的 学生信息
select * from Student where saddress='长沙'--and:且 &&
--查询年龄在16到18岁之间的学生信息
select * from Student where sage>=16 and sage<=18
--between and:从。。。到。。。
select * from Student where sage between 17 and 18--like 模糊查询
--占位符:_:表示一个字符位置,%:表示任意个字符位置
--找到刘姓的学生
select * from Student where sname like '刘%';
--找到蛋字结尾的两个字姓名的学生信息
select * from Student where sname like '_蛋'
--查询所有
select * from Student where sname like '__' or sname like '_'
--单纯不显示两个字的
select * from Student where sname like '_' or sname like '___%'--排序:order by 默认:升序,asc:升序,desc:降序
select * from Student order by sid desc
--len()求字符串长度
select sname,len(sname) '长度' from Student--起别名
select sid '学号',sname '姓名',ssex '性别' from Student;
select sid as '学号',sname as '姓名',ssex as '性别' from Student;
select '学号'=sid,'姓名'=sname,'性别'=ssex from Student;select * from Student
--修改数据
--update...set
--update 表名 set 字段名=值,字段名=值.. where 条件
--把阿昊的 性别改为男
update Student set ssex='男' where sname='阿昊'
--把名字为 阿俊的 年龄改为19,爱好改为敲代码 介绍改为 嗨嗨嗨
update student set sage=19,slike='敲代码',sinfo='嗨嗨嗨' where sname='阿俊'
--把所有人的年龄都加1岁
update Student set sage=sage+1;
--问:空值可以加1吗? 答:可以运行不报错 但是不会加值--把学号5 的 学生姓名改为张三
update Student set sname='张三' where sid=5--删除数据delete
--delete Student [where 条件]
--删除学生的所有信息
delete Student
--删除名字叫狗蛋的
delete Student where sname='狗蛋'
--删除所有名字包含蛋字的
delete Student where sname like '%蛋%'--删除表
--drop table 表名
--字符串函数
--找第一次出现的位置(不区分大小写),如果没找到结果为0
select charindex('a','AMySaqalserCourse')
--从指定位置开始往后找第一次出现的位置,如果没找到结果为0
select charindex('a','aMySaqalserCourse',5)
--len:返回字符串的长度
select len('小阿俊')
--lower:转小写
select LOWER('SQL')
--upper:转大写
select upper('sql')
--ltrim:去除左边的空格
select LTRIM(' 1 阿欢 ')
--rtrim:去除右边的空格
select rtrim(' 小 雄 业 ')
--right();从右边获取指定个字符
select right('何永琪',1);
--left();从左边获取指定个字符
select LEFT('嘻嘻嘻,嘿嘿嘿',5)
--replace:替换
select replace('今天是个好日子的是','子','老父亲')
--日期函数
--获取当前系统时间
select getdate()
--给时间1999-12-31 添加10天
select dateadd(dd,10,'1999-12-31')
--给当前系统时间添加5个月
select dateadd(mm,-5,getdate())
--求出两个日期之间相差的日期
--相差的日
select datediff(dd,'1999-12-31','1999-12-1')
select datediff(mm,'1999-1-13','1999-12-1')
select datediff(yy,'1999-12-31',getdate())
--字符串日期:这里不能自动转换(日期不对不能自动转换 11月没有31号)
select datediff(mm,'1990-11-31','1999-12-31')
--获取指定日期(年、月、日)
select datename(mi,'1999-1-1 10:12:32')
--获取日期的整数形式
select datepart(mm,getdate())
--获取当前系统时间
select year(getdate())--年
--查询当前系统时间的月
select month(getdate())
--查询当前的系统时间中的天
select day(getdate())
--使用函数格式:
--select 函数名([参数])
select 10+10
--字符串数字会自动转换为数值进行运算
select '10'+10
select '10a'+10
select convert(int,'123a')
--求出字符串字节长度(字母占1个、汉字:2)
select datalength('阿旭')
--字符长度(字符个数)
select len('阿旭')