第二章《数据库的基本操作》

第二章《数据库的基本操作》

一、mysql默认安装的4个库:
1.information_schema:保存关于mysql服务器所维护的所有的其他数据库的信息,例如:数据库名、数据库中的表名;
2.mysql:记录数据库用户,权限,关键字等。mysql自己需要使用的控制和管理信息;
3.performance_schema:5.5版本新增一个库,用于手机服务器性能参数,且该库中所有的表的存储引擎均为performance_schema;
4.test:测试库,所有用户再test库里都有root权限(一般不会存储有用的信息再test库里)
二.1.创建数据库:create database databasename; databasename是指数据库名称
2.移动到指定的数据库里:use databasename;
3.删除数据库:drop database databasename;
其它用法
1、使用SHOW语句找出在服务器上当前存在什么数据库:
mysql> SHOW DATABASES;
2、创建一个数据库MYSQLDATA
mysql> CREATE DATABASE MYSQLDATA;
3、选择你所创建的数据库
mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!)
4、查看现在的数据库中存在什么表
mysql> SHOW TABLES;
5、创建一个数据库表
mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));
6、显示表的结构:
mysql> DESCRIBE MYTABLE;
7、往表中加入记录
mysql> insert into MYTABLE values (”hyq”,”M”);
8、用文本方式将数据装入数据库表中(例如D:/mysql.txt)
mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE MYTABLE;
9、导入.sql文件命令(例如D:/mysql.sql)
mysql>use database;
mysql>source d:/mysql.sql;
三,数据库的存储引擎:
1.什么是存储引擎:数据库的存储引擎是数据库的底层软件组件,数据库管理系统(Dbms)就是依赖存储引擎来对数据表进行创建,查询,更新和删除操作的。不同的存储引擎提供了不同的存储机制,索引技巧和锁定水平等功能。还可以获得某些特定的功能。现在不同的数据库的管理系统都支持多种不同的存储引擎。mysql的核心就是存储引擎。
2.MySQL的存储引擎,包括处理事务安全表的引擎和处理非事务安全表的引擎。在MySQL中不需要所有的表都使用同一种引擎,针对具体的需求每一张表都可以选择不同的存储引擎。
MySQL5.5支持的存储引擎有:InnoDB,MyiSAM,Memory,CVS等。
查看mysql中所有的存储引擎的命令:show engines\G
Engine: PERFORMANCE_SCHEMA #引擎名称
Support: YES #mysql是否支持这种引擎
Comment: Performance Schema #mysql对它的评价
Transactions: NO #是否支持事务
XA: NO #是否支持事务的分布式
Savepoints: NO #事务的保存点
1.myisam存储引擎的特点:
(1)myisam引擎读取速度快,占用资源少,不支持事务,不支持外键约束,但支持全文索引
(2)读写相互阻塞,也就是说读数据的时候就不能写数据,写数据的时候就不能读数据;
(3)myisam引擎只能缓存索引,而不能缓存数据;
(4)mysql5.5之前的默认引擎。
使用场景:
(1)不需要事务支持的业务,例如银行转账就不适合用myisam引擎;
(2)适用于读数据比较多的业务,不适用于读写频繁的业务;
(3)并发相对较低的业务(纯读或者纯写的高并发也可以),数据修改相对较少的业务;
(4)硬件资源比较差的机器可以考虑多使用myisam引擎。
2.InnoDB存储引擎的特点:
(1)事物类数据表的首选引擎,支持事物安全表,支持行级别锁定和外键,mysql5.5之后的默认引擎;
(2)具有提交,回滚和崩溃恢复能力的事物安全存储引擎,能处理巨大的数据量,性能及效率高,完全支持外键完整约束条件;
(3)具有非常高的效的缓存特性,能缓存索引也能缓存数据,对硬件要求高,
(4)使用InnoDB时,将在mysql数据目录创建一个名为ibdata的10M带大小的自动扩展文件,以及两个名为ib_logfile0和ib_logfile1的5M带大小的日志文件。
使用场景:
(1)需要事物支持的业务,高并发的业务;
(2)数据更新较为频繁的场景,比如:BBS(美国论坛网站),SNS,微博等;
(3)数据一致性要求较高的业务,比如充值转账,银行卡转账等。
memory存储引擎的特点:
(1)memory存储引擎将表中的数据存储内存中,为查询和引用其他表数据提供快速访问;
(2)memory存储引擎执行HASH和BETREE索引,不支持BLOB和TEXT列,支持AUTO_INCREMENT列,和对可包括NULL值的列的索引;
(3)当不在需要memory表的内容时,要释放memory表占用的内存,可以执行delete from或者truncate table,或者删除整个表。
DELETE FROM table_name: 清空表数据,但是不清空表空间;
TRUNCATE TABLE table_name: 清空表数据,同时清除表空间
CSV:将数据保存为CSV格式文件,可以导入到其它数据库中;
CSV引擎的特点:
(1)以csv格式进行数据存储
(2)所有列必须都是不能为NULL的
(3)不支持索引
(4)可以对数据文件直接编辑
ARCHIVE:归档,将数据zlib进行压缩,被当做仓库使用,一般对他只进行insert和select操作,他适合存储日志。
mrg_myisam:相当于将多个myisam的合并版,将多个myisam表合并为一个。
SHOW GLOBAL VARIABLES LIKE ‘%datadir%’ ; #查询数据存储路径
存储引擎的选择:
(1)如果要提供提交、回滚和崩溃恢复能力的事务安全能力,并要求实现并发控制,InnoDB是个很好的选择
(2)如果数据表用来插入或者是查询记录,则MyISAM引擎能提供较高的处理效率
(3)如果只是临时存放数据,数据量不大,并且不需要较高的安全性,可以选择将数据保存在内存中的memory引擎,MySQL使用该引擎作为临时表,存放查询的中间结果;
(4)如果只有INSERT和SELECT操作,可以选择Archive引擎,支持高并发的插入数据操作,如记录日志信息可以使用Archive引擎;
在这里插入图片描述
MySQL 修改root密码的四种方法
1 用set password命令
首先登陆MySQL
格式 MySQL > set password for 用户名@localhost=password(‘新密码’)
例子 MySQL > set password for root@localhost=password(‘123’);
2 在命令行用 mysqladmin
格式 mysqladmin -u 用户名 -p 旧密码 password 新密码
列子mysqladmin -uroot -p123456 password 123
方法3 用update直接编辑user表
首先登陆MySQL
MySQL>use MySQL;
MySQL> update user set password=password(‘123’)where user=‘root’ and
host=‘localhost’;
mysql>flush privileges;
方法4 :忘记root密码的时候
vim /etc/my.cnf
在[mysqld]下面添加一行skip-grant-tables
然后重启,在登陆MySQL(此时密码为空)使用命令 update mysql.user set password=password(‘密码’)where user=root host=‘localhost’;
回到配置文件,删除刚刚添加的那行,在重启服务就可以用新密码登陆了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/101976.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • c++字符串转int_python中lower的用法

    c++字符串转int_python中lower的用法在做ACM题时,经常都会遇到一些比较大的整数。而常用的内置整数类型常常显得太小了:其中long和int范围是[-2^31,2^31),即-2147483648~2147483647。而unsigned范围是[0,2^32),即0~4294967295。也就是说,常规的32位整数只能够处理40亿以下的数。那遇到比40亿要大的数怎么办呢?这时就要用到C++的64位扩展了。不同的编

    2022年10月22日
  • 浅谈滴滴派单算法

    浅谈滴滴派单算法(图片付费下载自视觉中国)作者|王犇刘春阳徐哲来源|滴滴技术(ID:didi_tech)【导读】说到滴滴的派单算法,大家可能感觉到既神秘又好奇,从出租车扬召到…

  • 基于SpringBoot的JWT单点登录

    基于SpringBoot的JWT单点登录单点登录单点登录SSO,分布式架构中通过一次登录,就能访问多个相关的服务。快速入门首先引入Jwt依赖<!–JWT–><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.4&

  • 嵌入式linux系统移植实验报告_嵌入式移植的分类

    嵌入式linux系统移植实验报告_嵌入式移植的分类嵌入式Linux移植实验实验目的:1.掌握交叉编译环境的建立和使用;2.熟悉Linux开发环境,掌握Linux内核的配置和裁减;3.了解Linux的启动过程。 实验内容:1.了解Linux基础知识以及Linux开发环境;2.根据教学实验系统的硬件资源,配置并编译Linux核心;3.下载并运行Linux核心,检查运行结果。实验步骤要求:记录实验中编译Linux核心、下载运行Linux的过…

  • Object C中的数据类型表

    类型例子NSLogcharschar'a','\n'%cshortint—%hi,%hx,%hounsignedshortint%hu,

    2021年12月26日
  • 手把手教你学DSP:基于TMS320C55x[通俗易懂]

    手把手教你学DSP:基于TMS320C55x[通俗易懂]书名:手把手教你学DSP:基于TMS320C55x作者:陈泰红副书名:出版日期:2011年8月1日出版社:北京航空航天大学出版社页数:348    《手把手教你学DSP:基于TMS320C55x》是以TMS320C55x系列高性能低功耗DSP为主,主要介绍了以数字信号处理器(DSP)为核心的实时数字信号

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号