目录
- MySQL概述
- MySQL安装及启动
- 库的管理
- 表的管理
- 表记录管理
- 整型
- 浮点型
- 字符类型
1. MySQL概述
MySQL概述
数据库 DataBase : 存储数据的仓库
哪些领域使用数据库 : 金融机构、游戏网站、购物网站、论坛网站......
提供数据库服务的软件:
1.软件分类
MySQL ; Oracle ; SQL_Server ; DB2 ; MongoDB ; MariaDB
2.如何选择使用数据库
是否开源
开源软件 MySQL ; MariaDB ; MongoDB
商业软件 Oracle ; DB2 ; SQL_Server
是否跨平台
支持 MySQL ; Oracle ; DB2 ; MongoDB ; MariaDB
不支持 SQL_Sever(仅用于windows)
公司的类型
商业软件 : 政府部门 金融机构
开源软件 : 民营公司
MySQL特点 :
1.MySQL是关系型数据库
2.跨平台 可以在Unix Linux Windows上运行数据服务
3.支持多种编程语音 python java php
关系型数据库特点 :
1.数据是以行和列(表格)的形式去存储的
2.表中的每一行叫一条记录,每一列叫一个字段
3.表和表之间的逻辑关联叫关系
数据库软件、数据库、数据仓库 的概念
数据库软件 实现数据库的逻辑功能
数据库 逻辑概念,用来存放数据的仓库,侧重于存储
数据仓库 海量数据,侧重于数据分析和挖掘
2. MySQL安装及启动
1.Ubuntu安装MySQL服务
1.安装服务端
sudo apt-get install mysql-server
2.安装客户端
sudo apt-get install mysql-client
3.Unbuntu安装软件
1)sudo apt-get update
#访问源列表中每个网址,读取软件列表,保存到本地/var/lib/apt/lists
2)sudo apt-get upgrade
#本地所有已安装软件与软件列表对比,更新至列表软件版本
3)sudo apt-get -f install
#修复依赖关系
2.Windows安装MySQL服务
1.下载MySQL安装包
2.安装教程去安装
3.Mac安装mysql
1.cd
2.vi .bash_profile
添加 :PATH="$PATH":/usr/local/mysql/bin
3.source .bash_profile
启动和连接MySQL服务
服务端启动 :
1.查看MySQL状态
sudo /etc/init.d/mysql status
sudo /etc/init.d/mysql start | stop | restart
2.客户端连接
连接方法:$ mysql -h主机地址 -u用户名 -p密码
#mysql -hlocalhost -uroot -p123456
#本地登录可以省略 -h
退出客户端 exit;quit;
3. 库的管理
SQL命令使用规则:
1.每条命令必须以 ; 结尾
2.SQL命令不区分字母大小写
3.终止当前命令执行 \c
库的管理:
库的基本操作:
1.查看已有的库 : show databases;
以下基本库不能删除!
| information_schema |
| mysql |
| performance_schema |
| sys |
2.创建库: create database 库名;
创建库时可以指定字符集
create database 库名 character set utf8;
3.查看创建库的语句(字符集):
show create database 库名;
4.查看当前所在库
select database();
5.切换库:
use 库名;
6.查看库中已有表
show tables;
7.删除库
drop database 库名;
库名的命名规则
1.数字、字母、下划线,但不能使用纯数字
2.库名区分字母大小写
3.不能使用特殊字符和mysql关键字
练习
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;
4. 表的管理
表的基本操作
1.创建表(指定字符集)
create table 表名(
字段名 数据类型,
字段名 数据类型,
...
字段名 数据类型 )[character set **];
2.查看已有表的字符集
show create table 表名;
3.查看表结构
desc 表名;
4.删除表
drop table 表名;
注意:
1.所有数据都是以文件的形式存放在数据库目录下
2.数据库目录 : var/lib/mysql
练习:
1.创建库python1
create database python1;
2.在python1库中创建表 pymysql并指定字符集为utf8,
字段有三个:id 、name char(15) 、 age
create table pymysql(
id int,
name char(15),
age int
) character set utf8 ;
3.查看创建表pymysql的语句
show create table pymysql;
4.查看pymysql的表结构
desc pymysql;
5.删除表pymysql
drop table pymysql;
6.创建库python2
create database python2;
7.在python2中创建表t1并指定字符集为utf8,字段有 id 、name 、score,数据类型自己定义
use python2;
create table t1(id int,name char(15),score int) charact set utf8;
8.查看t1的表结构
desc t1
9.删除表t1
drop table t1
10.删除库 python2
drop database python2
5. 表记录管理
表记录管理
1.插入(insert)
1) insert into 表名 values(值1),(值2),...;
2) insert into 表名(字段1,...) values(值1),...;
2.查询(select)
1)select * from 表名 [where 条件];
2)select 字段1,字段名2 from 表名 [where 条件];
如何更改默认字符集(latin1 更改为 utf8)
1.方法(通过更改MySQL配置文件实现)
2.步骤
1.获取root权限
sudo -i
2.cd /etc/mysql/mysql.conf.d/
3.备份 :cp mysqld.cnf mysqld.cnf.bak
4.subl mysqld.cnf
[mysqld]
character_set_server = utf8
5.重启mysql服务
/etc/init.d/mysql restart
MAC:/etc/my.cnf
[mysqld]
character_set_server = utf8
另外方法:windows亲测有效:
sql> show variables like "character%";
sql> set ***** = utf8; #手动修改
**客户端把数据存储到数据库服务器上的过程**
1.连接到数据服务器 mysql -uroot -p
2.选择一个库 use 库名
3.创建表/修改表 update 表名...
4.断开与数据库连接 exit; | quit; | \q;
练习
1.查看所有的库
show databases;
2.创建新库 studb
create database studb;
3.在 studb 中创建表 tab1 ,指定字符集utf8,字段有 id 、name、age
use studb;
create table tab1(
id int,
name char(10),
age int
)character set utf8;
4.查看tab1的表结构
desc tab1;
5.在tab1中随便插入2条记录
insert into tab1 values
(1,"张三丰",100),(2,"张无忌",30);
6.在tab1中的name、age两个字段插入2条记录
insert into tab1(name,age) values
("金毛狮王",88),("紫衫龙王",87);
7.查看tab1中所有记录
select * from tab1;
8.查看tab1表中所有人的姓名和年龄
select name,age from tab1;
9.查看tab1表中年龄大于20的信息
select * from tab1 where age>20
SQL常用数据类型 :
数值类型
整型
浮点型
字符类型
枚举类型
日期时间类型
6. 整型
1.整型
1)int 大整型(4个字节)
取值范围 :2**32 - 1(42亿多)
2)tinyint 微小整型(1个字节)
1..有符号(signed默认) : -128 ~ 127
2..无符号(unsigned) : 0 ~ 255
age tinyint unsigned,
3)smallint 小整型(2个字节)
4)bigint 极大整型(8个字节)
7. 浮点型
浮点型
1.float(4个字节,最多显示7个有效位)
用法:
字段名 float(m,n) m->总位数 n->小数位位数
float(5,2)取值范围 -999.99 ~ 999.99
2.decimal(最多显示28个有效位)
decimal(m,n)
存储空间(整数、小数分开存储)
规则:将9的倍数包装成4个字节
余数 字节
0 0
1-2 1
3-4 2
5-6 3
7-9 4
示例:decimal(19,9) #总字符19位,小数9位
整数部分:10/9=商1(9倍数四个字节)余1 4字节+1字节=5字节
小数部分:9/9=商1(9倍数四个字节)余0 4字节+0字节=4字节
占:9字节
练习
创建库 studb2 ,并在库中创建表 stuinfo,要求:
id :大整型
name :字符类型,宽度为15
age :微小整型,不能为负数
height :浮点型,小数位为2位(float)
money :浮点型,小数位为2位(decimal)
create table stuinfo(
id int,
name char(15),
age tinyint unsigned,
height float(5,2),
money decimal(20,2)
);
2.查看stuinfo的表结构
desc stuinfo;
3.查看stuinfo的默认字符集
show create table stuinfo;
4、在表中插入1条完整记录
desc stuinfo;
insert into stuinfo values (1,"Bob",23,176,88888.88);
5、查询所有表记录
select * from stuinfo;
6、在表中id 、name两个字段插入2条记录
insert into stuinfo(id,name) values
(2,"Jim"),(3,"Tom");
7、查询所有学生的id和姓名
select id,name from stuinfo;
字符类型
char(定长)
取值范围:1~255
varchar(变长)
取值范围:1~65535
text / longtext(4G) / blob / longblob(4G)
#用来存储大文本
char和varchar的特点
char :浪费存储空间,性能高
varchar :节省存储空间,性能低
作业
1.MySQL中数据类型有:
数值型;字符类型;枚举类型;日期时间类型
2.关系型数据库中的核心内容是 :
关系 即 二维表
3.简述客户端把数据存储到数据库服务器上的过程
1.登录2.找库3.建表4.退出
4.char和varchar的区别,各自的特点
5.操作
1.创建一个学校的库 school
create database school;
2.在库中创建表 students 用来存储学生信息:
id 大整型
姓名、年龄(不能为负)、性别、成绩(浮点)
use school;
create table students(id int,name char(15),age tinyint unsigned,
gender char(8),score float(5,2)) character set utf8;
3.查看students的表结构
desc students;
4.在表中随意插入3条记录
insert into students values(1,"liming",19,"Male",95.5),
(2,"zhanghua",20,"Male",96.0),(3,"lili",19,"Famale",98.5);
select * from students;
5.在表中的 姓名、成绩两个字段插入3条记录
insert into students(name,score) values("lihua",97),("zhanghua",93);
select * from students;
6.查看所有学生的姓名和成绩
select name,score from students;
8.查看成绩及格(>60分)的学生的姓名和成绩
select name,score from students where score>=60;