MySql数据库
一、数据库基本概念
1.1 数据库组成
DB
数据库( database ):存储数据的“仓库”。它保存了一系列有组织的数据。
DBMS
数据库管理系统( Database Management System )。数据库是通过 DBMS 创建和操作的容器
SQL
结构化查询语言( Structure Query Language ):专门用来与数据库通信的语言。

1.2 数据库存储数据的特点
-
将数据放到表中,表再放到库中
-
一个数据库中可以有多个表,每个表都有一个的名字,用来标识自己。表名具有唯一性。
-
表具有一些特性,这些特性定义了数据在表中如何存储,类似java中 “类”的设计。
-
表由列组成,我们也称为字段。所有表都是由一个或多个列组成的,每一列类似java 中的”属性”
-
表中的数据是按行存储的,每一行类似于java中的“对象”
| 表 | 列,字段 | 行 |
|---|---|---|
| 类 | 属性 | 对象 |
1.3 MySQL介绍
MySQL是一种开放源代码的关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购.目前 MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开源这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库(Facebook, Twitter, YouTube)。阿里提出“去IOE”,更多网站也开始选择MySQL。
- 成本低:开放源代码,一般可以免费试用
- 性能高:执行很快
- 简单:很容易安装和使用
1.4 Linux下安装mysql及其GUI(mysql workbench )
需要注意 MySQL 5.7及更高版本不支持以“ root”身份进行连接,mysql-workbench因此您必须创建一个普通用户并通过该用户进行连接。
1.4.1 初始使用
登录root用户
sudo mysql -u root -p
在root用户下新建一个普通用户
CREATE USER 'usernamexxx'@'hostxxx' IDENTIFIED BY 'passwordxxx';
-
hostxxx:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%如
CREATE USER 'rose'@'%' IDENTIFIED BY '123456';若为本地主机 则为
localhost -
passwordxxx:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器
创建用户后,该用户只能连接到数据库服务器,但并没有操作该数据库服务器的权限。
授权如下:
GRANT privilegesxxx ON databasenamexxx.tablenamexxx TO 'usernamexxx'@'hostxxx'
-
privilegesxxx:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
-
databasenamexxx:数据库名
-
tablenamexxx:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如 *.*
GRANT ALL ON *.* TO 'usernamexxx'@'hostxxx'
上句表示赋予主机hostxxx上的用户usernamexxx对所有数据库及表的操作权限
1.4.2 登录普通用户进行学习使用
-
登录之前新建的普通用户admin:
mysql -u admin -p -
显示所有数据库:
show databases;
图中显示当前有4个数据库
-
假设使用数据库mysql并显示该数据库内的所有表:
use mysql; show tables;
此时便在数据库mysql中了,若想显示其他数据库中的表,则可用:
show tables from sys;
显示当前处在哪个数据库当中:
select database();
5.基本的增删改查
在当前所处的数据库中创建一个表
stuinfo后并显示该表create table stuinfo(stuid int,stuname varchar(20),gender char,borndate datetime); desc stuinfo

查询表中数据:
select * from stuinfo;
此时为空表,则向表中插入一条数据:
insert into stuinfo values(1,'y查c','男','1000-3-1');
若出现中文编码错误 则可用
set names utf8;或set names gbk;再插入一条:
insert into stuinfo values(2,'6y','男','1000-3-2');
查询此时表中的数据:
select * from stuinfo;
更改表中的stuid=2的那条数据:
update stuinfo set borndate = '1900-1-1' where stuid = 2; select * from stuinfo;
删除stuid=2的那条数据
delete from stuinfo where stuid = 2; select * from stuinfo;
对表增加一列属性:
desc stuinfo; alter table stuinfo add column email varchar(20);
删除表
stuinfo:drop table stuinfo;退出数据库
exit;
未完待续…
本文介绍了MySQL数据库的基本概念,包括数据库、数据库管理系统(DBMS)和SQL语言的定义。详细讲解了MySQL的特点,安装配置方法,以及基本的数据库操作命令,适合初学者快速上手。
759





