发表于: 2018-04-24 23:35:49
1 486
今天完成的事
用navicat 创建数据库,更改宣言 update task1 set desire='老大最帅' where name='方广辉';
检索数据
表的导入与导出
navivat 中点击转储sql文件即可
mysql导出表(无需进入mysql)
mysqldump -uroot -p text task1 > D:\t.sql
mysql提示符中,无论你所使用的Linux还是Windows,都要使用斜杆【“/”】分隔目录名
导入表
use datebase;
SOURCE d:/t.sql;
索引相关类型:Mysql常见索引有:主键索引、唯一索引、普通索引、全文索引、组合索引
1. 普通索引
在创建普通索引时,不附加任何限制条件。这类索引可以创建在任何数据类型中,其值是否唯一和非空由字段本身的完整性约束条件决定。建立索引以后,查询时可以通过索引进行查询。例如,在student表的stu_id字段上建立一个普通索引。查询记录时,就可以根据该索引进行查询。
2.唯一性索引
使用UNIQUE参数可以设置索引为唯一性索引。在创建唯一性索引时,限制该索引的值必须是唯一的。例如,在student表的stu_name字段中创建唯一性索引,那么stu_name字段的值就必需是唯一的。通过唯一性索引,可以更快速地确定某条记录。主键就是一种特殊唯一性索引。
3.全文索引
使用FULLTEXT参数可以设置索引为全文索引。全文索引只能创建在CHAR、VARCHAR或TEXT类型的字段上。查询数据量较大的字符串类型的字段时,使用全文索引可以提高查询速度。例如,student表的information字段是TEXT类型,该字段包含了很多的文字信息。在information字段上建立全文索引后,可以提高查询information字段的速度。只有MyISAM存储引擎支持全文检索。在默认情况下,全文索引的搜索执行方式不区分大小写。但索引的列使用二进制排序后,可以执行区分大小写的全文索引。
4.组合索引
多列索引是在表的多个字段上创建一个索引。该索引指向创建时对应的多个字段,可以通过这几个字段进行查询。但是,只有查询条件中使用了这些字段中第一个字段时,索引才会被使用。例如,在表中的id、name和sex字段上建立一个多列索引,那么,只有查询条件使用了id字段时该索引才会被使用。
创建索引
ALTER TABLE table_name ADD INDEX index_name (colums_list)
CREATE INDEX index_name ON table_name (colums_list) 不能用于创建主键索引
PRIMARY KEY(主键索引)ALTER TABLE `table_name` ADD PRIMARY KEY ( `col` )
UNIQUE(唯一索引) ALTER TABLE `table_name` ADD UNIQUE (`col`)
INDEX(普通索引) ALTER TABLE `table_name` ADD INDEX index_name (`col`)
FULLTEXT(全文索引) ALTER TABLE `table_name` ADD FULLTEXT ( `col` )
组合索引 ALTER TABLE `table_name` ADD INDEX index_name (`col1`, `col2`, `col3` )
可利用ALTER TABLE或DROP INDEX语句来删除索引。类似于CREATE INDEX语句,DROP INDEX可以在ALTER TABLE内部作为一条语句处理,语法如下。
DROP INDEX index_name ON talbe_name
ALTER TABLE table_name DROP INDEX index_name
创建索引
插入10条数据后,带索引的检索速度比没有索引的快0.001s
关于后面的一些问题,查了写资料,不知道对不对
5.为什么DB的设计中要使用Long来替换掉Date类型?
date获取是服务端的时间,而不是本地时间,如果需要使用还需要进行处理
有利于计算时间差
6.自增ID有什么坏处?什么样的场景下不使用自增ID?
数据库迁移不保证ID唯一
有能唯一标识数据的列就不需要使用自增ID
ID需要作为外键
7.什么是DB的索引,多大的数据量下建索引会有性能的差别,什么样的情况下该对字段建索引?
索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。
经常与其他表进行连接的表,在连接字段上应该建立索引;
频繁搜索的字段,特别是大表的字段,应该建立索引
8.唯一索引和普通索引的区别是什么,什么时候需要建唯一索引。
普通索引时,不附加任何限制条件。
如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该用关键字UNIQUE把它定义为一个唯一索引。一是简化了MySQL对这个索引的管理工作,这个索引也因此而变得更有效率;二是MySQL会在有新记录插入数据表时,自动检查新记录的这个字段的值是否已经在某个记录的这个字段里出现过了;如果是,MySQL将拒绝插入那条新记录。也就是说,唯一索引可以保证数据记录的唯一性。
9.如果对学员QQ号做了一个唯一索引,在插入数据的时候,是否需要先判断这个QQ号已经存在了?
唯一索引会自动判断数据是否存在,如果存在无法插入。
10.CreateAt和UpdateAt的意义分别是创建时间和修改时间,这两个时间应该在什么情况下赋值?是否应该开放给外部调用的接口?
create_at是在行插入时以当时的时间为值插入。
update_at实在行一旦被修改的时候,以当时时间为值插入。
11.修真类型应该是直接存储Varchar,还是应该存储int?
可以用int ,把修真类型单列出一张表,用数值对应类型
12.varchar类型的长度怎么确定?有什么样的原则,和Text和LongText的区别是什么?
varchar类型5.0以上版本支持65535字节长度,不会自动填充空格,varchar类型的实际长度是它的值的实际长度+1,这一个字节用于保存实际使用了多大的长度。
TEXT 最大64K变长文本,LongText 最大4GB,都不可以有默认值
14.为什么不可以用Select * from table?
检索全部数据,其中肯能会有我们不需要的部分,降低检索速度
java下载安装配置环境变量
明天计划的事情
安装maven3,配置环境变量
下载Eclipse或者是IDEA,配置好Maven。
了解JDK和JRE的区别,java基础概念
遇到的问题
sql文件导入失败,显示failed to open file错误,就是因为文件路径斜杠写反了,应该用“/”,在Windows中路径使用“\”。
收获
navicat基本操作,数据库的创建、增改删除。
索引的类型、他们之间的区别。
评论