数据库

2019-06-01  本文已影响0人  Jzyue

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模式

5.7版本后采用严格模式

分类

认识DDL

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 into stu(name,telnum,gender,qq,age) values ('ww','110','f','222222',18);
update stu   set name='ls'  where id=2;
delete from stu where id=2 ;

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

认识DQL

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

上一篇 下一篇

猜你喜欢

热点阅读