首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mysql数据库学习(一):数据库基本概念、关系型数据库、Mysql数据库安装配置、DDL/DCL/DML语句

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

作者头像
s1mba
发布2017-12-28 12:09:19
1.2K0
发布2017-12-28 12:09:19
举报
文章被收录于专栏:开发与安全开发与安全

一、数据库基本概念

数据库(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 参考手册

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014-02-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档