数据库

作者: Jzyue | 来源:发表于2019-06-01 18:38 被阅读0次

1、什么是数据库?

数据库是以数据结构的形式组织数据的,数据库是用户层面的,是由用户后来去实现的,用户可以对文件中的数据进行新增、截取、更新、删除等操作。

2、为什么要用数据库?

文件保存数据有以下几个缺点:

  • 文件的安全性问题。
  • 文件不利于查询和对数据的管理。
  • 文件不利于存放海量数据
  • 文件在程序中控制不方便
    那我们为了解决上述问题,专家们设计出更加利于管理数据的东西,数据库,他能更有效的管理数据,数据库的水平是衡量一个程序员水平的重要指标。

3、数据库介绍

关系型数据库

关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。在关系数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过对这些关联表的表格分类、合并、连接或选取等运算来实现数据的管理。

非关系型数据库

非关系型数据库也被称为NoSQL数据库,NoSQL的本意是“Not Only SQL”,指的是非关系型数据库,而不是“No SQL”的意思(没有SQL语句?),因此,NoSQL的产生并不是要彻底否定关系型数据库,而是作为传统关系型数据库的一个有效补充。NoSQL数据库在特定的场景下可以发挥出难以想象的高效率和高性能。

4、数据库软件下载

数据库排名:https://db-engines.com/en/ranking

数据库下载地址:https://downloads.mysql.com/archives/community/

5、数据库用户创建和授权

[root@db01 ~]# mysql
mysql> grant all on wordpress.* to wordpress@'10.0.0.%' identified by '123456';
mysql> grant select,insert,update on app.* to app@'10.0.0.%' identified by '123';

6、数据库查询

查询数据库

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

查询表

mysql> show tables;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| engine_cost               |
| event                     |
| func                      |
| general_log               |
| gtid_executed             |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| innodb_index_stats        |
| innodb_table_stats        |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| server_cost               |
| servers                   |
| slave_master_info         |
| slave_relay_log_info      |
| slave_worker_info         |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
31 rows in set (0.00 sec)

7、连接管理

socket(本地套接字文件)

[root@db01 ~]# mysql -uroot -p
1、只允许本地登陆使用。
2、登陆的用户必须提前创建好。

TCP/IP(网络IP+Port)

[root@db01 ~]# mysql -uwordpress -p -h 10.0.0.51 -P 3306

退出数据库

\q
exit
quit
ctrl + d

常用命令

/G 将表格竖起来
导入数据
mysql> source /root/world.sql
调用系统数据
mysql> system vim /etc/passwd
查看当前所在的库
mysql> select database();
进入到库use相当于cd
mysql> use world

8、备份恢复

备份数据库
[root@db01 ~]# mysqldump -uroot -p123456 -A --master-data=2 --single-transaction -R --triggers -E >/tmp/full.sql
恢复数据库
mysql> source /tmp/full.sql

9、SQL语句介绍

SQL标准

  • SQL 89
  • SQL 92
  • SQL 99

SQL模式

5.7版本后采用严格模式

分类

  • DDL 数据定义语言
  • DCL 数据控制语言
  • DML 数据操作语言
  • DQL 数据查询语言

认识DDL

  • 建库 数据库名 字符集(utf8mb4)
mysql> create database zh charset utf8mb4 ;
mysql> show databases;
mysql> show create database zh;
  • 删库
drop database aaaa;

回收删除权限

revoke drop,delete on *.* from oldboy@'10.0.0.%';
  • 修改库
mysql> alter database zh charset utf8
  • 建表
CREATE TABLE `stu` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '学号',
  `name` varchar(64) CHARACTER SET armscii8 NOT NULL DEFAULT '' COMMENT '姓名',
  `age` tinyint(3) unsigned zerofill NOT NULL COMMENT '年龄',
  `gender` char(4) NOT NULL COMMENT '性别',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 ;
  • 删表
drop table stu;
  • 修改表
alter table stu add qq varchar(64) unique not null comment 'qq号';
alter table stu add telnum char(11) not null unique after name;

注意:
DDL语句需要锁表,对于大表需要做DDL修改,尽量选择业务不繁忙期间

认识DML(对数据记录操作)

  • insert
insert into stu(name,telnum,gender,qq,age) values ('ww','110','f','222222',18);
  • updata
update stu   set name='ls'  where id=2;
  • delte
delete from stu where id=2 ;

伪删除:
添加状态列,update 替代 delete
truncate 物理性质删除,针对数据页
delete 逻辑性质删除,针对数据行

认识DQL

  • select

1、select单独使用
函数应用
select database();
参数查询
select @@port;
select @@datadir;
2、from语句
表,视图,子查询
select * from city ; (不代表生产操作)
3、where
等值
select * from city where countrycode='CHN';
比较判断符
select * from city where population<100;
逻辑连接符
select * from city where countrycode='CHN' and district='shandong';
select * from city where countrycode='CHN' or countrycode='USA';
select * from city where countrycode in ('CHN','USA');
改写
select * from city where countrycode='CHN'
union all
select * from city where countrycode='USA';
模糊查询
select * from city where countrycode like 'C%';
4、group by(配合聚合函数使用)
统计中国,各个省的城市个数
select district,count(id) from city where countrycode='CHN' group by district;
select district,group_concat(name) from city where countrycode='CHN' group by district;
5、having
select district,count(id) from city where countrycode='CHN' group by district having count(id)>10;
使用临时表解决having面对结果集较大的情况
6、order by limit
select * from city where countrycode='CHN' order by population desc limit 5;
select district,count(id) from city where countrycode='CHN' group by district having count(id)>10;
select district,count(id) from city where countrycode='CHN' group by district having count(id)>10 order by count(id) desc limit 5;
7、其他
between and
in
exist
union all

相关文章

  • MySQL数据库day01

    系统数据库 ​​​ 创建数据库 ​​​ ​​​ ​​​ ​​​ 查看所有数据库 使用数据库 修改数据库 删除数据库...

  • 数据库操作

    创建数据库: 选择数据库: 查看数据库: 修改数据库: 删除数据库:

  • Ubuntu操作mysql数据库命令

    一、连接数据库 连接本地数据库 退出数据库 二、操作数据库 创建数据库 显示数据库 删除数据库 连接数据库 查看状...

  • 4-14

    创建数据库 createdatabase数据库名称; 删除数据库 dropdatabase数据库名称; 查看数据库...

  • [后端开发] Mysql学习笔记

    1.0 数据库 创建数据库 查看所有数据库 删除数据库 切换数据库名 查看正在使用的数据库 2.0 数据库表 创...

  • 2020最新最全数据库系统安全

    数据库标识与鉴别 数据库访问控制 数据库安全审计 数据库备份与恢复 数据库加密 资源限制 数据库安全加固 数据库安...

  • 2020-01-05 sql基本概念

    数据库用来储存数据。 数据库的种类大致有:层次数据库、关系数据库、面向对象数据库、XML数据库、键值数据库。 关系...

  • Mysql数据库基本操作

    连接数据库 退出数据库 查看数据库版本 显示数据库时间 查看当前使用的数据库 查看所有数据库 数据库备份 导入数据...

  • mysql命令行操作

    准备 登陆 数据库操作 查看现有数据库 创建数据库 删除数据库 查看数据库 使用数据库 查看当前数据库 表操作 新...

  • 1.7.1 MySQL数据库学习

    1. 数据库命令行学习 进入数据库 创建数据库 查看数据库列表 删除数据库 使用数据库 查看当前数据库 2. 表 ...

网友评论

      本文标题:数据库

      本文链接:https://www.haomeiwen.com/subject/evdotctx.html