SQL_Server
数据库安装完成之后,那么需要对应的启动数据库,在启动之前,需要保证数据的服务处于开启状态:在服务中-》SQL server处于运行状态
数据库创建出来之后,建议不要修改计算机名称,否则数据库在修改计算机名称之后就不能找到本地服务器名称。
如果想链接其他在同一个ip段的数据库,那么你就应该对数据库的ip的支持进行配置,需要启用服务端和客户端的TCP/IP的设置,并且需要设置端口号,SQL Server默认的端口号为1433,mysql的端口号为:3306,oracle的端口号为:1521,配置过程如下:
1:
2:
3:
服务器端的配置完成,客户端的配置也需要保证TCP/IP协议的启动
配置完成之后,你需要让你的配置生效,则需要重新启动Sql Server服务。
如果你想链接其他人的数据库,那么你需要知道的条件:链接数据库的IP、链接的数据库名,链接数据库的密码
如果数据库安装不成功,或者需要重装?
1. 重装系统重装数据库(不推荐)
2. 重装数据库 步骤如下:
² 停止数据库的所有服务,在添加和删除程序中,卸载sqlserver的程序
² 卸载完成之后,删除sqlserver在物理磁盘的文件目录
² 卸载服务
² 卸载注册表信息,regedit打开注册表编辑器 找到HKEY_CURRENT_USER 和HKEY_LOCAL_MACHINE,对应的在Software这个文件夹下删除所有与sqlserver有关的注册表信息。
² 删除之后,重启电脑,重装安装
用户登录:
可以采用windows身份验证,用计算机名和空密码进行登录
也可以采用sqlserver身份验证,采用默认的sa用户和设置的密码进行登录
修改密码:
如果sa用户密码忘记了,则可以采用windows身份验证登录之后修改sa的密码
用户登录成功之后:
可以看到在数据库的文件夹,有数据库和数据库快照文件夹
系统数据库文件夹存放的是数据库安装完成之后,自带安装的4个数据库
Master 从整体上控制用户数据库和sqlserver操作
Msdb 用来存储作业,报警等信息
Model 模型数据库
Temp 临时数据库,用来存储临时信息
当前用户登录的时候默认的使用是master数据库
我们也可以创建自己的数据库,创建的数据库就存放在当前用户下的文件夹下,谁创建的数据库,那么创建的数据库就属于谁,其他人不能访问,除非被其他人授权。
创建用户自带的数据库:一种是使用命令 一种是使用图形化界面
在开始->运行-输入sqlcmd -H host -U sa -P 123进入的窗口是命令窗口
Sqlcmd –U sa 回车提示输入密码 123
Sqlcmd window 用户
此种操作是开启一个dos窗口,对数据库的操作都是使用的命名,没有图形化界面
SQL语言
SQL语言功能极其强大,但由于设计巧妙、语言十分简捷,完成核心功能只用了9个动词,如下表所示
SQL功能 |
动词 |
数据查询 |
SELECT |
数据定义DDL |
CREATE、ALTER、 DROP |
数据操纵DML |
INSERT、UPDATE、DELETE |
权限控制DCL |
GRANT、REVOKE |
数据库语言的常用操作:
--一个数据库,数据库名叫ibm create database ibm; --如果你需要对哪个数据库进行操作,在操作之前需要将数据库处于选定状态 use ibm; --删除一个数据库ibm --正在使用的数据库不能够被删除 drop database ibm --在ibm这个数据库中创建表 --那么你就应该知道表中的数据类型 --表中包括:字段名、字段类型、主键、唯一健、外键、是否为空、默认值 --字段名:在一张表中字段名不能有重复、字段名不能为数据库关键字、字段名中不能包含非法字符 --数据类型:int、varchar()、date、money()、varchar2()、float --主键用来标示表中字段的唯一健,一般和外键关联,达到链接两张表的操作主键一般设置自动增长 --唯一健用来标示表中字段插入的值在表中唯一存在 --外键,是用来关联两张表 --是否为空,是用来对某一个字段设置能不能为空 --默认值是指如果你不给某一个字段赋值,那么该字段就采用默认设置的值
--创建一张表表名 tb_student --sid 整型(int)主键自增长 --sname 字符型varchar(n)不能为空 --sbirth datatime 可以为空 --sclass varchar 可以为空如果班级不设置则默认为java1000班
--创建表的语法格式 create table表名(字段类型修饰,字段类型修饰... ...);
create table tb_student( sid int identity(1,1), sname varchar(16)not null, sbirth datetime, sclass varchar(16)default 'java1000',primarykey(sid) );
--往创建的表中插入条语句 --插入语句的格式insert into表名(字段,字段,字段) values('值','值','值') --如果一个表中存在主键,主键自动增长之后,主键不需要插入值会自动的添加 insert into tb_student(sname,sbirth,sclass)values('admin',getdate(),'java1002');
--在tb_student表中增加一个字段aage int 此时增加的字段的值全部为空 alter table tb_studentadd sage int; --删除表中的一个字段 alter table tb_studentdrop column sage; select * from tb_student; --查询表中的某一列的信息 select sname from tb_student; --根据id查询某一列的记录 select *from tb_student where sid=3; --查询java1000班的学生 select *from tb_student where sclass='java1000'; --根据sid值的大小查询出来的结果倒序显示 desc(降序) asc(升序) select *from tb_student orderby sid desc; select *from tb_student orderby sid asc;
--模糊查询 like %(匹配所有) _(占有符号) --查询班级名为java开头的所有班级 select *from tb_student where sclasslike 'java%'; --查询以命名的班级 select *from tb_student where sclasslike '%1002'; select *from tb_student where sclasslike '____1002'; select *from tb_student where sclasslike 'net____';
--更新 update表名set 字段名= '修改之后的值',字段名='修改之后的值' where 条件 --将id为的那条记录的sclass改为net1205 update tb_student set sclass = 'net1205' where sid = 5; --一次将一条记录中的所有的字段都改主键的值可不可以改? update tb_student set sname = 'IBM',sbirth= getdate(),sclass='aaaa'where sid =1;
--删除delete from表名where 条件表示删除表中符合条件的记录 --删除sid=8的那条记录 delete from tb_studentwhere sid=8; --删除多条删除id>5的记录 delete from tb_studentwhere sid>=3; --清空表中的数据表还存在知识数据没了 truncate table tb_student; --删除一张表,表中的数据和表在数据库中都删除 drop table tb_student;
select *from tb_student;
|
SQL Server的常用函数
索引
--创建一张表tb_student(sid name,score,sclass,startschool); create table tb_student( sid int identity(1,1), sname varchar(32)not null, score int default 0, sclass varchar(32), startschool datetime, primary key(sid),
); --往其中插入条记录 insert into tb_student(sname,score,sclass,startschool) values('es',80,'天灾',getdate()); insert into tb_student(sname,score,sclass,startschool) values('bs',90,'天灾',getdate()); insert into tb_student(sname,score,sclass,startschool) values('cs',30,'近卫',getdate()); insert into tb_student(sname,score,sclass,startschool) values('as',40,'近卫',getdate()); --聚合函数 --count 用来取出表中有多少条记录 select count(*)from tb_student; select count(*) as'数据条数'from tb_student; select count(1) from;
--sum求和函数对某一列的值进行求和 select sum(score)as '总成绩'from tb_student; --avg求平均数的函数,对某一列的值进行求平均数 select avg(score) as '平均成绩'from tb_student; --max求最大值对某一列的值进行求最大值运算 select max(score)as '最高分'from tb_student; --min 求最小值对某一列的值进行求最小值运算 select min(score)as '最低分'from tb_student; --日期和时间函数 --取到系统时间 select getdate() as'时间'; --取到系统时间的部分事件 select DATEPART(yyyy,getdate())as '年份'; select DATEPART(MM,getdate())as '月份'; select DATEPART(hh,getdate())as '小时'; select DATEPART(minute,getdate())as '分钟';
--用来改变取到的系统的时间 select DATEADD(yyyy,-20,getdate())as '20年前'; select DATEADD(dd,-1,getdate())as '昨天';
--DATEDIFF select DATEDIFF(dd,'2012-1-28','2012-2-28'); --求你出生到现在有多少天 select DATEDIFF(dd,'2000-2-1','2012-2-28')as '你出生的天数';
--字符函数 --CHAR 返回对应的字符的ASSIC码值 select char(68); --将ASCII装换成数字 select ASCII('A');
--LEET('',N); select LEFT('IBM',3)as '333'; select RIGHT('IBM',3)
--返回指定字符串的长度(字符串尾随空格不计算) select len('IBM'); select len(' i b m ');
--字符串的截取(表示从第三个位置开始截取两个长度的字符串,包括开始位置) select substring('IBM',3,2);
--索引的用处: --索引的创建一般是用来提高数据的查询效率, --设置数据的合法性
--唯一索引:读表中的某一个或者多个字段设置成唯一索引,那么设置的字段不能有重复的数据 --创建唯一索引的语法格式: --create unique index 唯一索引名on -- 表名(字段,字段); --在表的sname列上建立唯一索引 create uniqueindex uname on tb_student(sname); --如果想一次建立多个列的唯一索引则只需要在sname后面添加即可 create uniqueindex uname on tb_student(sname,sclass); --建立唯一索引之后无法插入有相同值的列索引名不能重复 insert into tb_student(sname,score,sclass,startschool) values('es',80,'中立一班',getdate()); delete from tb_studentwhere sid=5;
--聚簇索引:聚簇索引的顺序与表中的物理顺序一致 --聚簇索引一般建立在最常查询的列上,但是列中纪录的改变会改变纪录的顺序值 --聚簇索引一般建立在主键上 --一张表中最多只能存在一个聚簇索引 --建立一个聚簇索引的语法格式 --create CLUSTERED index 聚簇索引名on表名(主键列名); create clusteredindex onlyindex on tb_student(sid);
--删除一个索引删除指定表的索引 --drop index 表名.索引名 --删除刚刚建立的聚簇索引 drop index tb_student.onlyindex; --索引不能够进行修改,所以你要修改一个表上的索引,是先删除索引,再创建对应的索引
|