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等;

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 参考手册

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏乐沙弥的世界

启用用户进程跟踪

仅仅需要标识该会话并为该会话启用跟踪(专用模式为一对一模式,即一个用户进程对应一个服务器进程)

662
来自专栏乐沙弥的世界

Oracle 参数文件

主要用来记录数据库的配置文件,在数据库启动时,Oracle读取参数文件,并根据参数文件中的参数设置来配置数据库。

621
来自专栏维C果糖

史上最简单的 MySQL 教程(三十五)「数据备份与还原(上)」

数据备份与还原的方式有很多种,具体可以分为:数据表备份、单表数据备份、SQL备份和增量备份。

3967
来自专栏杨建荣的学习笔记

由dual导致的一个潜在的监控问题(r7笔记第3天)

Oracle对于sys用户的审计是默认的操作,所以不管你开启了什么审计策略,sys的登录等操作都会记录下来,这也是Oracle的默认配置,可能他 们也没有料到有...

3166
来自专栏吴生的专栏

MySQL 慢日志线上问题分析及功能优化

MySQL 慢日志(slow log)是 MySQL DBA 及其他开发、运维人员需经常关注的一类信息。使用慢日志可找出执行时间较长或未走索引等 SQL 语句,...

3776
来自专栏杨建荣的学习笔记

浅谈exp/imp(下) (r5笔记第84天)

相关链接:浅谈exp/imp(上) (r5笔记第81天) 你可能 不了解的dump文件 在工作中,dump文件对于dba而言是再平常不过的文件了。不过因为dum...

3089
来自专栏python学习路

一、Mysql(1)

  数据库简介 人类在进化的过程中,创造了数字、文字、符号等来进行数据的记录,但是承受着认知能力和创造能力的提升,数据量越来越大,对于数据的记录和准确查找,成为...

3379
来自专栏杨建荣的学习笔记

并行查询缓慢的问题分析(r5笔记第86天)

今天,数据迁移组的同事问我一个问题,说他们现在需要在迁移库中查看一些数据,但是查看的时候速度很慢,想让我们看看是不是数据库端出了什么问题。因为数据迁移的一些准备...

2556
来自专栏沃趣科技

mysqldump与innobackupex备份过程你知多少(完结篇)

相关阅读: mysqldump与innobackupex备份过程你知多少(三) mysqldump与innobackupex备份过程你知多少(二) mysqld...

3408
来自专栏菩提树下的杨过

java:如何用代码控制H2 Database启动

1、纯手动start/stop 1 package com.cnblogs.yjmyzz.h2; 2 3 import java.sql.Connect...

19010

扫码关注云+社区