数据库是我们日常工作中必不可少的产品,那我们就简单介绍下它们:
数据库产品介绍:
- Oracle,甲骨文公司的产品。 当前最流行应用最广泛的数据库软件。和java语言兼容非常好。适合中大型,中大应用。
- SQL Server: 是微软公司的产品。window平台应用非常广泛。和c#,net平台兼容非常好。
- DB2: IBM公司的产品。IBM服务器--> UNIX -> DB2- > Websphere
- MySQL:开源组织的产品。甲骨文公司的产品。免费!!!和java语言兼容非常好!适合中小企业,中小应用
- mariaDB :数据库管理系统是MySQL的一个分支,API和命令行兼容mysql,并使用XtarDB取代innoDB。
今天我们主要讲下:最为常用的Mysql基础命令,以及面试中可能会被问的重点。
一、数据库日常操作流程
1、登陆数据库。
mysql -uroot -poldboy123 -S /data/3307/mysql.sock ##多实例
mysql -uroot -poldboy123 #单实例
2.查看数据库版本及当前登录用户是什么。
第一问:查看mysql 版本五种方法:
1. 命令行mysql -V
2. 登录mysql 显示
3. MySQL中输入status 字段中有
4. mysql> select version();
5. mysql --help|grep version #帮助中查看
第二问:查看当前用户
mysql> select user();
3.创建GBK字符集的数据库qiuyuetao,并查看已建库的完整语句
1问:创建GBK字符集数据库(通过help取查询,获取语法 就方便多了 help create database )
CREATE database qiuyuetao CHARACTER SET gbk COLLATE gbk_chinese_ci;
2问:查看数据类型
show CREATE database qiuyuetao;
4.创建用户qiuyuetao,使之可以管理数据库oldboy。
法1:
grant all on qiuyt.* to 'qiuyt'@'localhost' IDENTIFIED BY '123456';
法:2:
CREATE USER qiuyt@'localhost' IDENTIFIED BY '123456';
GRANT ALL ON qiuyt.* TO 'qiuyt'@'localhost';
5.查看创建的用户oldboy拥有哪些权限。
解答:
show grants for oldboy@localhost;
用法 :help show grants
6.查看当前数据库里有哪些用户。
select user,host from mysql.user;
7.进入指定数据库(qiuyt)
use qiuyt;
8.创建一innodb引擎字符集为GBK表test,字段为id和namevarchar(16),查看建表结构及SQL语句。
CREATE TABLE `test` (
`id` int(4) NOT NULL,
`name` varchar(16) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
指定引擎与字符集GBK,varchar默认为空
问题2:查看建表结构
mysql> desc test
问题3:查看创建表的sql的语句
mysql> use oldboy
mysql> show create table test;
9.插入一条数据 1,qiuyt
解答:
insert into test values(1,'qiuyt');
10.批量插入数据 2,老男孩,3,etiantian。要求中文不能乱码。
mysql> insert into test values(2,'老男孩'),(3,'etiantian');
11.查询插入的所有记录,查询名字为oldboy的记录。查询id大于1的记录。
解答:
问1:查询插入的所有记录
mysql> select * from test;
问2:查询名字为oldboy的记录
mysql> select * from test where name=('oldboy');
#字符串加单引号,数字不加引号
问3:查询id大于1的记录
mysql> select * from test where id>1;
12.把数据id等于1的名字oldboy更改为oldgirl。
mysql> update test set name='oldgril' where id=1;
说明:#update更新的意思,test是表 set 输出 name字段=oldgirl ,where应用到 id=1
sql语句翻译:将id=1 的name字段更新为oldgirl
13.在字段name前插入age字段,类型tinyint(2)。
首选要查看表结构,判断是用after还是frist参数。
mysql> alter table test add age tinyint(2) after id;
#help alter table 查看用法,add 后有2个参数 after 代表在...之后; first 在第一个
14.备份oldboy库及MySQL库。
mysqldump -uroot -poldboy123 -S /data/3307/mysql.sock --events -B oldboy>/opt/oldboy_$(date +%F).sql
-B `指定oldboy库`,恢复时候不需要指定库
mysqldump -uroot -poldboy123 -S /data/3307/mysql.sock --events -A >/opt/3307_all_$(date +%F).sql
-A `备份整个mysql`
15.删除表中的所有数据,并查看。
法1:
truncate table test;
这个是物理删除 1次清空
法2:
delete from test;
逻辑删除,一条条的删 很慢
mysql> select * from test;
16.删除表test和oldboy数据库并查看
mysql> DROP TABLE test; ##删表
mysql> DROP DATABASE oldboy; #删库
17.Linux命令行恢复以上删除的数据。
mysql -uroot -poldboy123 -S /data/3307/mysql.sock </opt/oldboy_2017-05-03.sql
#上面-B 指定数据库备份的,所以直接恢复即可
#注意< 符号的方向
- QQ精品交流群
-
- 微信公众号
-