Mysql数据库学习(一):数据库基本概念、关系型数据库、Mysql数据库安装配置、DDL/DCL/DML语句

一、数据库基本概念

数据库(DB)

按照数据结构来组织、存储数据的仓库

数据库管理系统(DBMS)

数据库管理系统(Database Management System)是一套操纵和管理数据库的软件,是用于建立、使用和维护数据库

数据库系统(DBS)

数据库

数据库管理系统(及其开发工具)

应用系统

数据库管理员

用户


二、关系数据库

关系数据库

采用关系模型作为数据组织方式。简单地说数据的逻辑结构是一张二维表,由行和列组成。表的每一行为一个元组,每一列为一个属性。

关系的完整性约束

实体完整性

主键不为空(不能重复)

参照完整性(外键)

或者为空,或者等于另一个关系的主码值

用户定义的完整性

用于设置某个属性的取值范围


如果将民族编码和部门编码设置为外键,那么出现的值必须为1 or 2 or NULL。


常见的关系型数据库:

1.MySQL 2.SQL Server  3.Oracle  4.Sybase  5.DB2  6. Informix  7.Access



三、数据库设计三范式

1NF,数据库表的每一列都是不可分割的基本数据项



2NF,首先满足1NF,要求数据库表中的每个实体必须可以被唯一地区分(主关键字),要求实体的非主属性完全依赖于主关键字

3NF,首先满足2NF,每一列数据都和主键直接相关,而不能间接相关,即不能传递依赖于主关键字

最后满足三范式拆分为多个表:
学号 姓名 系号
系号 系名 系主任
学号 课程号 成绩
课程号 课程


四、Mysql数据库的安装启动

mysqld.exe 服务器端程序(如果安装的时候没有启动,则在cmd 中 mysqld -install)
mysql.exe 客户端程序 (用于连接数据库,也推荐使用navicat)
其它工具集


启动服务

通过服务控制面板来控制(services.msc)

通过命令行

net start MySQL

net stop MySQL


修改密码:

mysqladmin -u root -poldpass password newpass

mysqladmin -usimba -p123456 password 123 /*要有权限才可以修改*/

如果重装,需要把regedit 注册表中有关mysql的部分清理干净

服务器启动时会读取my.ini 配置文件,如果没有,可以直接创建一个,类似如下的内容:

[mysqld]

#绑定IPv4和3306端口
bind-address = 0.0.0.0
port = 3306

# 设置mysql的安装目录
basedir=D:/mysql-5.6.13

# 设置mysql数据库的数据的存放目录
datadir=D:/mysql-5.6.13/data

# 允许最大连接数
max_connections=200

五、一些基本的DDL/DCL/DML语句

SQL即StructuredQuery Language;

DDL( Data Definition Language数据定义语言)

——用来建立数据库、数据库对象和定义其列

——CREATE 、DROP 、ALTER 等

DCL( Data Control Language数据控制语言)

——用来控制存取许可、存取权限等;

——GRANT、REVOKE 等;

DML( Data Manipulation Language数据操作语言)

——查询、插入、删除和修改数据库中的数据;

——SELECT、INSERT、 UPDATE 、DELETE等;

 SQL Code 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
create database dbname [数据库选项];  /* 如果数据库名是特殊的如 234 或者保留名称如 database,那么需要使用反引号`` 括起来 */

show  create database dbname;     /* 创建过程都做了哪些设置 */

alter database dbname  character  set gbk      /* 支持中文 */

create  user username  identified  by  '123456'  /* 密码用引号括起 */

grant  select, insert, update, delete  on *.*  to username @ '%'  identified  by  '123456'  /*  *.*表示任意数据库的任意表  '%'表示任意主机 */
# 注:grant 会 在 系统增加一个 user.

grant  all  privileges  on *.*  to username@ '%'
revoke  all  privileges  on *.*  from username@ '%'




# kill 掉特定用户的所有连接
mysql>select concat('KILL ',id,';') from information_schema.processlist where user='root' into outfile '/tmp/a.txt';
Query OK, 2 rows affected (0.00 sec)

mysql>source /tmp/a.txt;
Query OK, 0 rows affected (0.00 sec)

#杀掉锁定的MySQL连接
for id in `mysqladmin processlist|grep -i locked|awk -F '|' '{print $2}'`; do    mysqladmin kill ${id}; done 

#mysql 进入shell 环境
mysql> \! sh
sh-4.1$ exit
exit

六、常见错误

1). Can't connect to local MySQL server through socket '/tmp/mysql.sock'

这时候先看 tmp 目录下是否有 mysql.sock 这个文件,如果/tmp下有该文件的话就是权限问题(看是否是 mysql 客户端连接,还是 

apache->php 连接),如果没有则 find /  -name 'mysql.sock' 看这个文件存在哪个目录,假如是 /var/lib/mysql/mysql.sock,直接

建一个软链接,ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock  。


2).Access denied for user 'zabbix'@'localhost' (using password: YES)

一般是权限或者密码错误问题,grant 一下权限。



参考:

数据库系统概论

mysql 5.1 参考手册


已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页