设为首页 收藏本站
查看: 475|回复: 0

[经验分享] java 从零开始,学习笔记之基础入门(二十一)

[复制链接]

尚未签到

发表于 2016-11-8 07:07:44 | 显示全部楼层 |阅读模式
  SQL_Server
  
  数据库安装完成之后,那么需要对应的启动数据库,在启动之前,需要保证数据的服务处于开启状态:在服务中-SQL server处于运行状态
  数据库创建出来之后,建议不要修改计算机名称,否则数据库在修改计算机名称之后就不能找到本地服务器名称。
  如果想链接其他在同一个ip段的数据库,那么你就应该对数据库的ip的支持进行配置,需要启用服务端和客户端的TCP/IP的设置,并且需要设置端口号,SQLServer默认的端口号为1433mysql的端口号为:3306oracle的端口号为:1521,配置过程如下:
  1
   DSC0000.jpg

  2:
   DSC0001.jpg

  3
   DSC0002.jpg

  服务器端的配置完成,客户端的配置也需要保证TCP/IP协议的启动
   DSC0003.jpg

  配置完成之后,你需要让你的配置生效,则需要重新启动Sql Server服务。
  
  如果你想链接其他人的数据库,那么你需要知道的条件:链接数据库的IP、链接的数据库名,链接数据库的密码
  如果数据库安装不成功,或者需要重装?
  1.重装系统重装数据库(不推荐)
  2. 重装数据库步骤如下:
  ²停止数据库的所有服务,在添加和删除程序中,卸载sqlserver程序
  ²卸载完成之后,删除sqlserver在物理磁盘的文件目录
  ²卸载服务
  ²卸载注册表信息,regedit打开注册表编辑器找到HKEY_CURRENT_USERHKEY_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
  CREATEALTER DROP
  数据操纵DML
  INSERTUPDATEDELETE
  权限控制DCL
  GRANTREVOKE
  
  
  
  
  
  
  
  
  
  
  
  
  数据库语言的常用操作:
  --一个数据库,数据库名叫ibm
  create database ibm;
  --如果你需要对哪个数据库进行操作,在操作之前需要将数据库处于选定状态
  use ibm;
  --删除一个数据库ibm
  --正在使用的数据库不能够被删除
  drop database ibm
  --ibm这个数据库中创建表
  --那么你就应该知道表中的数据类型
  --表中包括:字段名、字段类型、主键、唯一健、外键、是否为空、默认值
  --字段名:在一张表中字段名不能有重复、字段名不能为数据库关键字、字段名中不能包含非法字符
  --数据类型:intvarchar()datemoney()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)notnull,
  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 sageint;
  --删除表中的一个字段
  alter table tb_studentdropcolumn sage;
  select * from tb_student;
  --查询表中的某一列的信息
  select sname from tb_student;
  --根据id查询某一列的记录
  select *from tb_studentwhere sid=3;
  --查询java1000班的学生
  select *from tb_studentwhere sclass='java1000';
  --根据sid值的大小查询出来的结果倒序显示 desc(降序)asc(升序)
  select *from tb_studentorderby sid desc;
  select *from tb_studentorderby sid asc;
  
  --模糊查询 like %(匹配所有) _(占有符号)
  --查询班级名为java开头的所有班级
  select *from tb_studentwhere sclasslike 'java%';
  --查询以命名的班级
  select *from tb_studentwhere sclasslike '%1002';
  select *from tb_studentwhere sclasslike '____1002';
  select *from tb_studentwhere 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)notnull,
  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 unameon tb_student(sname);
  --如果想一次建立多个列的唯一索引则只需要在sname后面添加即可
  create uniqueindex unameon 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 onlyindexon tb_student(sid);
  
  --删除一个索引删除指定表的索引
  --drop index 表名.索引名
  --删除刚刚建立的聚簇索引
  drop index tb_student.onlyindex;
  --索引不能够进行修改,所以你要修改一个表上的索引,是先删除索引,再创建对应的索引
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-297062-1-1.html 上篇帖子: Tip 下篇帖子: SQL Server管理,你做得好吗? 有错误的地方欢迎大家拍砖
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表