1、MySQL概述
1、什么是数据库
数据库是一个存储数据的仓库
2、都有哪些公司在用数据库
金融机构、游戏网站、购物网站、论坛网站 ...
3、提供数据库服务的软件
1、软件分类
MySQL、Mariadb、SQL_Server、Oracle、DB2、MongoDB ...
2、生产环境中,如何选择使用哪个数据库
1、是否开源
开源软件:MySQL、Mariadb、MongoDB
商业软件:Oracle、DB2、SQL_Server
2、是否跨平台
跨平台:
不跨平台:SQL_Server
3、公司的类型
商业软件:政府部门、金融机构
开源软件:游戏网站、购物网站、论坛网站 ...
4、MySQL特点
1、关系型数据库
1、关系型数据库的特点
1、数据是以行和列的形式存储
2、表中每一行叫一条记录
3、表中的每一列叫一个字段
4、表和表之间的逻辑关联叫关系
2、示例
1、关系型数据库存储
表1、学生信息表
姓名 年龄 班级
星矢 25 三班
水冰月 25 六班
表2、班级信息表
班级 班主任
三班 大空翼
六班 松人
2、非关系型数据库存储
{"姓名":"星矢","年龄":25,"班级":"三班","班主任":"大空翼"}
{"姓名":"水冰月","年龄":25,"班级":"六班","班主任":"松人"}
2、跨平台
可以在Unix、Linux、Windows上运行数据库服务
3、支持多种编程语言
Python、Java、php ...
5、数据库软件、数据库、数据仓库
1、数据库软件
是一种软件,可以看得见,可操作,来实现数据库逻辑功能
2、数据库
是一种逻辑概念,用来存放数据的仓库,通过数据库软件来实现,侧重存储
3、数据仓库
数据仓库主要用于数据挖掘和数据分析
网购:
数据库: user --> 用户名和密码
数据仓库:哪个时间段用户登录量最多,哪个用户一年购物最多...
2、MySQL安装
1、Ubuntu安装MySQL服务
1、安装服务端
sudo apt-get install mysql-server
2、安装客户端
sudo apt-get install mysql-client
3、Ubuntu安装软件
sudo apt-get update
sudo apt-get -f install 修复依赖关系
sudo apt-get install 软件包
2、Windows安装MySQL服务
1、下载MySQL安装包(windows)
mysql-installer***5.7.***.msi
2、双击、按照教程安装
3、启动和连接MySQL服务
1、服务端启动
sudo /etc/init.d/mysql start
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql restart
sudo /etc/init.d/mysql status #查看当前状态
sudo /etc/init.d/mysql reload #重新加载配置文件
2、客户端连接
1、命令格式
mysql -h主机地址 -u用户名 -p密码
mysql -hlocalhost -uroot -p123456
2、本地连接可省略 -h 选项
mysql -uroot -p123456
4、基本SQL命令
1、SQL命令的使用规则
1、每条SQL命令必须以 ; 结尾
2、SQL命令不区分字母大小写
3、使用 \c 终止当前命令的执行
2、库的管理
1、库的基本操作
1、查看已有的库
show databases;
2、创建库
create database 库名 [character set utf8];
3、查看创建库的语句(字符集)
show create database 库名;
4、查看当前所在库
select database();
5、切换库
use 库名;
6、查看库中已有表
show tables;
7、删除库
drop database 库名;
2、库的命名规则
1、数字、字母、_,但是不能是纯数字
2、库名区分字母大小写
3、不能使用特殊字符和mysql关键字
3、练习
1、创建库testdb,指定字符集为utf8
create database testdb character set utf8;
2、进入到库 testdb
use testdb;
3、查看当前所在库
select database();
4、创建库 testdb2,指定字符集为 latin1
create database testdb2 character set latin1;
5、进入到库 testdb2
use testdb2;
6、查看 testdb2 的字符集
show create database testdb2;
7、删除库 testdb
drop database testdb;
8、删除库 testdb2
drop database testdb2;
show databases;
3、表的管理
1、表的基本操作
1、创建表(指定字符集)
create table 表名(
字段名1 数据类型,
字段名2 数据类型,
字段名3 数据类型
)character set utf8;
2、查看创建表的语句(字符集)
show create table 表名;
3、查看表结构
desc 表名;
4、删除表
drop table 表名;
2、练习
1、创建库 python1
create database python1;
2、在python1库中创建表 pymysql,并指定字符集为 utf8
字段有三个:id name age 数据类型自己定义(比如说:char(20) 、int )
use python1;
create table pymysql(
id int,
name char(20),
age int
);
3、查看创建表 pymysql 的语句
show create table pymysql;
4、查看pymysql的表结构
desc pymysql;
5、删除表 pymysql
drop table pymysql;
6、删除库 python1
drop database python1;
4、注意
1、所有的数据都是以文件的形式存放在数据库目录/var/lib/mysql
5、表记录的管理
1、在表中插入记录
1、insert into 表名 values(值1),(值2),(值3),...;
2、insert into 表名(字段名1,字段名2) values(),(),...;
2、查询表记录
1、select * from 表名 [where 条件];
2、select 字段名1,字段名2 from 表名 [where 条件];
3、示例
mysql> select * from t2;
mysql> select * from t2 where id<3;
mysql> select name,age from t2;
mysql> select id,name from t2 where id<4;
3、练习
1、查看所有库
show databases;
2、创建一个新库 studb
create database studb;
3、在 studb 中创建一张表tab1,指定字符集utf8,字段有:
id name age score 四个 char(15)
use studb;
select database();
create table tab1(
id int,
name char(15),
age int,
score int
)character set utf8;
4、查看 tab1 的表结构
desc tab1;
5、在tab1中随便插入2条记录
insert into tab1 values
(1,"李白",30,90),(2,"杜甫",30,88);
6、在tab1中的name和score两个字段插入2条记录
insert into tab1(name,score) values
("李清照",25),("王维",28);
7、查看tab1表中所有记录
select * from tab1;
8、查看tab1表中所有人的名字和成绩(score)
select name,score from tab1;
5、如何更改默认字符集
1、方法
通过更改MySQL配置文件实现
2、步骤
1、获取root权限
sudo -i
2、备份配置文件
cd /etc/mysql/mysql.conf.d/
cp mysqld.cnf mysqld.cnf.bak
3、更改mysqld.cnf配置
subl mysqld.cnf
[mysqld]
character_set_server=utf8
4、重启mysql服务
sudo /etc/init.d/mysql restart
6、客户端把数据存储到数据库服务器上的过程
1、先连接到数据库服务器
2、选择库
3、创建或者修改表
4、断开与数据库的连接 exit; | quit; | \q;
7、数据类型
1、数值类型
1、整型(有符号 和 无符号unsigned)
1、int 大整型(4个字节)
0~2**32 -1(42亿多)
2、tinyint 微小整型(1个字节)
1、有符号(signed)
2、无符号(unsigned) : 0~255
age tinyint unsigned,
3、bigint 极大整型(8个字节)
2、浮点型
1、float(4个字节,最多显示7个有效位)
1、用法
字段名 float(m,n) m:总位数,n:小数位位数
float(5,2) 取值范围???-999.99 ~ 999.99
2、decimal(最多显示28个有效位)
1、用法
字段名 decimal(m,n)
2、存储空间(整数部分和小数部分分开存储)
规则:将9的倍数包装成4个字节
余数 字节
1-2 1
3-4 2
5-6 3
7-8 4
decimal(19,9)
整数部分:10/9=商1余1 4字节+1字节=5字节
小数部分:9/9=商1余0 4字节+0字节=4字节
2、字符类型
1、char(定长)
char(宽度值)
2、varchar(变长)
varchar(宽度值)
3、char和varchar的特点
1、char :浪费存储空间,性能高
2、varchar :节省存储空间,性能低
4、text / longtest(4G)
3、练习
1、创建一个库 studb2,并在studb2中创建表 tab2,字段要求如下:
id 整型
name 变长,宽度为20
class 定长,宽度为7
age 微小整型,不能输入负数
height 浮点型,小数位为2位
create database studb2;
use studb2;
create table tab2(
id int,
name varchar(20),
class char(7),
age tinyint unsigned,
height float(5,2)
);
2、查看tab2表结构
desc tab2;
3、查看tab2字符集
show create table tab2;
4、在tab2中插入2条完整记录
insert into tab2 values
(1,"紫衫龙王","AID1805",23,170.36),
(2,"青翼蝠王","AID1805",25,171.17);
5、查询所有表记录
select * from tab2;
6、在tab2中的name和height两个字段插入2条记录
insert into tab2(name,height) values
("金花婆婆",165),("灭绝师太",168.00);
7、查询所有学生的姓名和身高
select name,height from tab2;
8、查询身高大于160的学生信息
select * from tab2 where height>170;
4、数值类型的宽度和字符类型的宽度区别
1、数值类型宽度为显示宽度,只用于select查询显示,和占用存储空间大小无关,用 zerofill 来显示效果
id int(3) zerofill,
2、字符类型的宽度超过则无法存储
3、枚举类型
1、定义
字段值只能在列举的范围内选择
2、字段名 enum(值1,值2,...)
字段名 set(值1,值2,...)
插入记录的时候: "girl,Python,Study"
4、日期时间类型
8、表字段操作
1、语法:alter table 表名 执行动作;
2、添加字段(add)
alter table 表名 add 字段名 数据类型;
alter table 表名 add 字段名 数据类型 first;
alter table 表名 add 字段名 数据类型 after 字段名;
3、删除字段(drop)
alter table 表名 drop 字段名;
4、修改字段数据类型(modify)
alter table 表名 modify 字段名 新数据类型;
MySQL概述,MySQL安装,启动和连接MySQL服务,基本SQL命令
最新推荐文章于 2023-10-22 10:20:14 发布