mysql数据库初体验

一、数据库基本概念

数据库的基本概念1

1 数据(Data)

描述事物的符号记录
包括数字,文字、图形、图像、声音、档案记录等
以“记录"形式按统一的格式进行存储

2 表

将不同的记录组织在一起
用来存储具体数据

3 数据库

表的集合,是存储数据的仓库
以一定的组织方式存储的相互有关的数据集合

数据库的基本概念2
数据库管理系统(DBMS)
是实现对数据库资源有效组织、管理和存取的系统软件
数据库系统
是一个人机系统,由硬件、Os、数据库、DBMS、应用软件和数据库用户组成
用户可以通过DBMS或应用程序操作数据库
在这里插入图片描述

关系型数据库:
存储的是数值,字符,字符串,布尔值等

非关系型数据库:
存储的是图片,视频,语音等(对象)

数据库发展史
1960s,第一代数据库系统问世
1970s,第二代数据库-----关系型数据库出现 (MySQL,Oracle)
1980s,第三代数据库-----非关系型数据库出现,面向对象的数据库系统,实用性强,适应面广(Redis,maogodb,memcached,postgresql)

当今主流数据库介绍
SQL Server微软公司,面向Windows操作系统,简单易用。
DB2 IBM公司,面向所有主流平台,大型,安全,完善。
MySQL免费,开源,体积小,后被甲骨文收购。
Oracle甲骨文公司,面向所有主流平台,安全,完善,操作复杂。

关系型数据库
List item关系型数据库是基于关系模型的数据库系统。

List item关系模型的数据结构使用简单易懂的二维数据表

List item关系模型可用简单的“实体–关系”(E-R)图来表示

E-R图包含了实体(数据对象),关系和属性三个要素。

在这里插入图片描述

二、关系数据库应用

1 关系型数据库
Oracle、MySQL
SQServer、Sybase
Informix、access
DB2、FoxPRO
2 应用举例
12306用户信息系统
淘宝账号系统
联通手机号信息系统
银行用户账号系统
网站用户信息系统

三、非关系数据库介绍

非关系数据库也被称为NoSQL(Not Only SQL)
村塾数据不以关系模型为依据,不需要固定的表格式
非关系型数据库的优点
1 数据库可高并发读写
2 对海量数据高效率存储于访问
3 数据库具有高扩展性与高可用性
常用的非关系数据库:Redis、mongoDB等

四、MySQL数据库介绍

一款深受欢迎的开源关系型数据库
Oracle旗下的产品
遵守GPL协议,可以免费使用与修改
特点
新能卓越、服务稳定
开源、无版权限制、成本低
多线程、多用户
基于C/S(客户端/服务器)架构
安全可靠

五、MySQL商业版与社区版

MySQL商业版是由MySQL AB公司负责开发与维护,需要付费才能使用
MySQL社区版是由分散在世界各地的MySQL开发者、爱好者一起开发与维护,可以免费使用
两者区别
商业版组织管理与测试环节更加严格,会比社区版更稳定
商业版不遵守GPL,社区版遵从GPL可以免费使用
商业版可获得7*24小时的服务,社区版没有

六、MySQL产品阵营

第一阵营:5.0-5.1阵营,可以说是早期产品的延续
第二阵营:5.4-5.7阵营,整合了MySQL AB公司、社区和第三方公司开发的存储引擎,从而提高性能
第三阵营:6.0-7.1阵营,就是MySQL Cluster版本,为适应新时代对数据库的集群需求而开发
下载网址
http://www.dev.mysql.com/deownloads

七、编译安装MySQL

[root@localhost opt]# tar zxvf mysql-5.7.17.tar.gz        解压源码包
[root@localhost opt]# tar zxvf boost_1_59_0.tar.gz -C /usr/local/
[root@localhost opt]# cd /usr/local/
[root@localhost local]# ll
总用量 4
drwxr-xr-x. 2 root root     6 411 2018 bin
drwx------. 8  501 games 4096 812 2015 boost_1_59_0
drwxr-xr-x. 2 root root     6 411 2018 etc
drwxr-xr-x. 2 root root     6 411 2018 games
drwxr-xr-x. 2 root root     6 411 2018 include
drwxr-xr-x. 2 root root     6 411 2018 lib
drwxr-xr-x. 2 root root     6 411 2018 lib64
drwxr-xr-x. 2 root root     6 411 2018 libexec
drwxr-xr-x. 2 root root     6 411 2018 sbin
drwxr-xr-x. 5 root root    49 715 19:44 share
drwxr-xr-x. 2 root root     6 411 2018 src
[root@localhost local]# mv boost_1_59_0/ boost
[root@localhost opt]# yum -y install ncurses ncurses-devel bison cmake gcc gcc-c++     安装环境
[root@localhost local]# useradd -s /sbin/nologin mysql          创建用户
[root@localhost opt]# cd /opt/mysql-5.7.17/
[root@localhost mysql-5.7.17]# cmake \ 编译安装
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/usr/local/boost \
-DWITH_SYSTEMD=1
[root@localhost mysql-5.7.17]# make && make install
[root@localhost mysql-5.7.17]# chown -R mysql.mysql /usr/local/mysql
[root@localhost opt]# vim /etc/my.cnf
[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysql]
port = 3306
default-character-set=utf8
socket=/usr/local/mysql/mysql.sock
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
[root@localhost opt]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH'>>/etc/profile
[root@localhost opt]# echo 'export PATH'>>/etc/profile
[root@localhost opt]# source /etc/profile
[root@localhost opt]# cd /usr/local/mysql/       初始化数据库
[root@localhost mysql]# bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
[root@localhost mysql]# cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
[root@localhost system]# systemctl start mysqld
[root@localhost system]# systemctl enable mysqld
[root@localhost system]# systemctl status mysqld
[root@localhost system]# netstat -antp | grep mysqld
tcp6       0      0 :::3306                 :::*                    LISTEN      21684/mysqld 
[root@localhost etc]# mysqladmin -u root -p password "abc123"         添加数据库的管理员密码
Enter password: 
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

SQL语句

List item关系型数据库标准语言
用于维护管理数据库
包括增删改查
SQL分类
DDL:数据定义语言
DML:数据操纵语言
DQL:数据查询语言
DCL:数据控制语言

DDL:可用于创建数据库对象(库,表,索引等)
:删除数据库和表

// 
mysql> create databases school;  ##创建一个school库

在这里插入图片描述

// 
mysql> use school;  ##进入school的库
lmysql>create table ky11(id int not null,name varchar(20) not null,score decimal(5,2) not null,age int (5),address varchar(50) default 'KY11',primary key(id));
##创建一个名为ky11的表,id设为整数型且非空,姓名长度设为最大20个字符集且非空,分数位5位数精确到小数点后两位且非空,年龄为五位整数(不足5位前面加0补齐),地址为最大50位字符集,默认值是KY11,主键为id.

在这里插入图片描述
删除指定表
drop table school.ky11;
删除指定的数据库
drop batabase school;

DML数据操纵语言
insert: 插入新数据
update:更改原数据
delete:删除数据
在这里插入图片描述
insert: 插入新数据

// 
mysql> insert into ky11 (id,name,score,age,address) values(2,'lisi',50.889,21,'南京');  ##插入新的表数据

在这里插入图片描述

// 
mysql> insert into ky11 values(3,'wangwu',70.999,22,'上海'),(4,'chenliu',80.899,23,'苏州');  ##一次性添加多个表数据

在这里插入图片描述

// 
mysql> update ky11 set score='100.00',age='99' where id=2;  ##一次性修改多个字段

在这里插入图片描述
delete:删除数据

// 
mysql> delete from ky11 where id='3';

在这里插入图片描述

DQL:数据查询语言

select : 查询数据语言

// 
mysql> select id,name from ky11;  ##只查看ky11表里的id和name字段的数据

在这里插入图片描述

// 
mysql> select id,name from ky11 where age>30;  ##只查看ky11表里的id和name字段的数据,同时age大于30的记录

在这里插入图片描述

//
mysql> mysql> * from ky11 limit 2;  ##查看前三行

在这里插入图片描述

// 
mysql> select * from ky11 limit 1,2;  ##查看第一行后面的两行内容

在这里插入图片描述

DCL:数据控制语言

alter :修改表名和表结构

// 
mysql> alter table ky11 rename ky12;  ##把表名ky11改为ky12

在这里插入图片描述
alter 给表ky12添加hobid字段,整数值为5

//
mysql> alter table ky12 add hobid int(5);  给表ky12添加hobid字段。整数值为5

在这里插入图片描述
alter 更改字段名,并设置它为唯一键
唯一键(unique key):特性是唯一,可以为空,但只允许一次空值

// 
mysql> alter table ky12 change address address_new varchar(50)unique key default '地址不详';

在这里插入图片描述
在这里插入图片描述
alter删除一个字段名

// 
mysql> alter table ky12 drop hobid;

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值