数据库知识整理<二>

  又继续写的博客,希望自己能坚持每天写博客。分享自己的点滴,对自己成长有帮助。今天下午高强度打了三个小时篮球,小腿都抽筋了。很爽,失落的心情似乎变得开明了一些。想到了一句话:“像SB式的坚持总会有好的收获”,因为坚定了目标,不达目标不罢休。其他的就没什么了。好吧,不多说这些了。继续数据库知识总结吧。

 

二,管理数据库和表:

2.1管理数据库:

  • 创建和使用数据库:
  1. 创建数据库的SQL语句:create database 数据库名;
  2. 需要注意的是:数据库名在服务器中必须是唯一的并且遵循合法的标识符规则:
  3. 第一个字符必须是:a-z和A-Z;下划线(_)、at符号(@)、数字符号(#)。
  4. 后面的字符可以是:字母、十进制数字、@、$、#、_。不能是RDBMS的保留字、不允许空格或其他特殊字符。
  • 链接到数据库:
  1. 使用那个数据库即用SQL语句:use 数据库名;
  • 删除数据库:
  1. 删除数据库的SQL语句:drop database 数据库名;

2.2数据类型:

  • 整数数据类型:
  1. TINYINT:存储范围0-255,此类型数据占用1个字节的存储空间。
  2. SMALLINT:2个字节。
  3. INT:4个字节。
  4. BIGINT:8个字节。
  • 浮点型数据类型:
  1. REAL型
  2. FLOAT型
  3. DECIMAL型
  4. NUMERIC型:与上者完全相同。
  • 字符串类型:char、vchar、text
  • 二进制数据类型:BINARY、VARBINARY。(使用时必须在前面加上OX标识才能是二进制数据类型)
  • 逻辑数据类型:BIT-0或1。如果输入0或1以外的值,统一将被视为1。且不能为空为空毫无意义。
  • 图形数据类型:IMAGE
  • 日期时间数据类型:DATETIME、SMALLDATETIME。
  • 货币数据类型:MONEY、SMALLMONEY。使用货币数据类型必须在数据前面加上货币符号,系统才能辨识是哪国的货币。如果不加没认为¥。
  • 特殊数据类型:TIMESTAMP、UNIQUEIDENTIFIER。

2.3管理表:

  • 创建表的SQL语句:create table<表名>(<列名><列的数据类型>[<列的约束>]);
  • 删除表的SQL语句:drop table<表名>;(注意:在删除表时要注意是否有外键关联,如果有外键关联的就先删除外键关联表在删除本表,还要看是否有权限删除此表)
  • 创建临时表:所谓临时表是指在有限的时间内存在的表,创建临时表的方法与普通表一样只是需要在表名前面加上#和##。本地表加#,全局的表加##。
  • 复制表:在数据库中创建一个新的表的方法仅是复制一个已经存在的表。SQL语句如:select * into My_Friends from Friends;复制表的同时表的约定并不能复制过来,所以还是推荐使用creat的方式创建表和数据。复制表过来的时候可以通过alter的方式手动改变表的约束。如果我们只是想复制表的结构而不是数据的话我们可以这样使用SQL语句:select * into My_Friends from Friends where 1=0;让后面的条件永远为false。
  • 修改表,alter table语句同其他选项一起可以更改表的数据结构:
  1. 添加一个表中没有的字段Address:alter table Friend add Address varchar(50);
  2. 如果要添加多个列的话:alter table Friend add Address varchar(50),Email varchar(30);
  3. 如果要更改列定义,可以使用SQL语句,比如给Phone列添加一个默认值约束,默认为‘不知道电话号码’:alter table Friend modify Phone default('不知道电话号码');
  4. 要删除表中的PhoneNo列:alter table Friend drop column PhoneNo;

2.4管理索引(非常重要,经常会被面试官问到):

  索引的意义:索引是一个设计用来提供整个数据库操作速度的数据库对象,它通过创建一个内部的索引表来达到快速搜索的目的。索引是依赖于表建立的,在一个表上创建索引可以提高在该表上执行select语句的速度,因为索引被用于快速找到想要的记录而不是执行一个全表扫描,但是会降低delete、update、insert语句的执行速度,因为每次执行这些操作时内部索引结构需要被更新,大多数情况下带来的好处远大于坏处。

  注意的是:索引可以是唯一的和非唯一的。唯一索引不允许在索引列上出现重复值。唯一索引通常创建在有主键或唯一约束的列上。由设置主键或唯一约束而自动创建的索引在约束被删除后,会自动删除,并且不能单独被删除。

  1. 创建索引:SQL语句—create index <索引名> on <表名>(<列名一>,[<列名二>],...);  
  2. 删除索引:SQL语句—drop index。例如:drop index Friend.PhoneIndexNo;

  

总结:

  1. 数据库表的建立索引是非常重要的,会被大多面试官青睐。
  2. 记得上次面试时,面试官就问了我一个关于查询的知识,他说:我们查询10条数据很快加入只需要0.03秒,照此速度成上千万的数据我们那不得查到猴年马月了,问我怎样提高查询速度??其实这个问题真TM问的直白了,就别怪面试官故意刁难我了。这不就是把索引的功能赤裸裸的告诉我了,就差没给我明说了。所以我活该被刷下来啊。打死我我也不会忘了它—索引。有了它妈妈再也不担心我查大量数据了。接下来我就得再去感受感受它的魅力了。

转载于:https://www.cnblogs.com/tyhJava/p/5576092.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值