非unicode数据库-景观大数据素材库
01-数据库简介 数据库简介 在进化的过程中,人类创造了数字、文字、符号等来记录数据,但随着认知能力和创造能力的提高,数据量越来越大。 对于数据记录 计算机诞生后,数据开始在计算机中存储和计算,设计了数据库系统来解决数据库系统存在的问题:持久化存储、优化读写、保证数据的有效性当前使用的数据有两种类型的数据库
文档类型,比如sqlite,是一个文件,通过复制文件完成数据库的复制。 mysql、postgre等服务类型,将数据存储在物理文件中,但需要使用终端与tcp/ip协议连接。 ER模型 目前的物理数据库都是按照ER模型设计的。 E表示entry,entity R表示relationship,relationship在数据库中由实体转化为表。 关系描述了两个实体之间对应的规则,包括
一对一多对多的关系转换成数据库表中的列*关系数据库中的一行是一个对象。三种范式经过研究和总结使用中的问题,提出了一些规范用于设计数据库。 这些规范称为范例。 第一范式 (1NF):列不能拆分。 3NF):参考主键 说明:后一范式是建立在前一范式基础上的。 02-安装管理
安装
sudo apt-get install mysql-server mysql-client 然后按照提示输入
管理服务
启动
service mysql start
停止
service mysql stop
重启
service mysql restart
允许远程连接
找到mysql配置文件并修改
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf 将bind-address=127.0.0.1注释
登录mysql,运行命令
grant all privileges on *.* to 'root'@'%' identified by 'mysql' with grant option; flush privileges;
重启mysql
03-Database Integrity 数据完整性 数据库是一个完整的业务单元,可以包含多个表,数据存储在表中。 为了在表中更准确的存储数据,保证数据的正确性和有效性,可以在创建表的时候,给表添加一些强制性的校验,包括数据字段的类型和约束字段的类型。 mysql中有很多数据类型。 下面是一些常用的数字: int,十进制字符串:varchar,文本日期:datetime Boolean:位约束 主键 主键非空not null unique unique default foreign key foreign key04-图形窗口操作(Navicat)使用图形窗口连接
发送windows的navicat
点击“连接”弹窗,根据提示填写连接信息,如下
连接名:buntu 主机名或IP地址:192.168.168.1 端口:3306 用户名:root 密码:******
连接成功后,连接名称下会显示当前数据库。 双击选择数据库,可以编辑数据库。 下次进入软件,双击即可完成连接和编辑操作数据库操作。
在连接名称上右击,选择“新建数据库”,弹出窗口,根据提示填写
数据库名:python3 字符集:utf8--UTF-8 Unicode 排序规则:utf8_general_ci
在连接名称上右击,选择“新建数据库”,弹出窗口,根据提示填写
表操作 当数据库显示为高亮时,表示当前正在对数据库进行操作,可以在数据中创建表。 一个实体对应一个表,用于存储特定结构的数据。 点击“新建表”,弹出弹窗,根据提示填写信息主键 字段名称一般为id,设置为int类型,无符号数,自动增长,非空自动增长意思是mysql系统负责维护这个字段的值非unicode数据库,不需要人工维护非unicode数据库,所以不需要关心这个字段的具体值string varchar类型,长度需要设置,即,最多可以包含多少个字符。 单击“添加字段”以添加新字段并单击“保存”。 您可以为表定义名称添加几个空白字段。 如果将来需要数据库,请更改字段名称。 无需改变表结构,数据操作
表格创建成功后在右侧可以看到,双击表格打开新窗口,如下图
在此窗口可以添加、修改和删除数据
对于重要数据,逻辑删除不想物理删除。 一旦删除,数据将无法恢复。 一般对于重要数据,会设置一个isDelete列,类型为bit,表示逻辑删除大于非重要数据的大量增长,可以物理删除。 数据的重要性要根据实际开发来确定。 05-命令脚本运行使用命令连接
命令操作方法在工作中用的比较多,一定要熟练
打开终端并运行命令
mysql -uroot -p 回车后输入密码,当前设置的密码为mysql
登出
quit或exit
登录成功后,输入以下命令查看效果
查看版本:select version(); 显示当前时间:select now();
注意:在语句末尾使用分号
远程连接
一般在公司开发中,数据库可能会统一搭建在一台服务器上,所有开发人员共享一个数据库,而不是在自己的电脑上配置一个数据库。
运行命令
mysql -hip地址 -uroot -p
-h后写入要连接的主机的ip地址 -u 后写入连接的用户名 -p 回车后写入密码数据库操作
创建数据库 create database 数据库名 charset=utf8; 删除数据库 drop database 数据库名; 切换数据库 use 数据库名; 查看当前选择的数据库 select database();
表操作
查看当前数据库中所有表 show tables; 创建表 auto_increment表示自动增长 create table 表名(列及类型); 如: create table students( id int auto_increment primary key, sname varchar(10) not null ); 修改表 alter table 表名 add|change|drop 列名 类型; 如: alter table students add birthday datetime; 删除表 drop table 表名; 查看表结构 desc 表名; 更改表名称 rename table 原表名 to 新表名; 查看表的创建语句 show create table '表名';
数据操作
查询 select * from 表名 增加 全列插入:insert into 表名 values(...) 缺省插入:insert into 表名(列1,...) values(值1,...) 同时插入多条数据:insert into 表名 values(...),(...)...; 或insert into 表名(列1,...) values(值1,...),(值1,...)...; 主键列是自动增长,但是在全列插入时需要占位,通常使用0,插入成功后以实际数据为准 修改 update 表名 set 列1=值1,... where 条件 删除 delete from 表名 where 条件 逻辑删除,本质就是修改操作update alter table students add isdelete bit default 0; 如果需要删除则 update students isdelete=1 where ...;
备份还原
数据备份 进入超级管理员 sudo -s 进入mysql库目录 cd /var/lib/mysql 运行mysqldump命令 mysqldump –uroot –p 数据库名 > ~/Desktop/备份文件.sql; 数据恢复 连接mysqk,创建数据库 退出连接,执行如下命令 mysql -uroot –p 数据库名 < ~/Desktop/备份文件.sql 根据提示输入mysql密码
06-总结
总结
数据库解决的问题,ER模型,三范式图形界面操作数据库,表格,数据命令行操作数据库,表格,数据