Mysql数据库
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql数据库相关的知识,希望对你有一定的参考价值。
mysql安装
1、安装环境:Ubuntu系统.
Ubuntu上安装MySQL服务
1.1.安装服务端:sudo apt-get install mysql-server
1.2安装客户端:sudo apt-get install mysql-client
2.Windows上安装MySQL服务
2.1:下载MySQL安装包(windows)
mysql-installer***5.7.***.msi
2.2、双击、按照教程安装即可
2.3:启动和连接MySQL服务
2.3.1:服务端启动
3.查看MySQL服务的状态:sudo /etc/init.d/mysql status
4.停止MySQL服务:sudo /etc/init.d/mysql stop
5.启动MySQL服务:sudo /etc/init.d/mysql start
6.重启MySQL服务:sudo /etc/init.d/mysql restart
3:客户端连接
3.1:命令格式:mysql -h主机地址 -u用户名 -p密码 :mysql -hlocalhost -uroot -p123456
3.2:本地连接可以省略 -h 选项:mysql -uroot -p123456
基本SQL命令
1、SQL命令的使用规则
1、每条命令必须以 ; 结尾
2、SQL命令不区分字母大小写
3、使用 \c 终止SQL命令的执行
库的管理
1、库的基本操作
1、查看已有的库
show databases;
2、创建库(指定字符集,默认为latin1)
create database 库名 default charset=utf8;
3、查看创建库的语句
show create database 库名;
4、查看当前所在库
select database();
5、切换库
use 库名;
6、查看库中已有表
show tables;
7、删除库
drop database 库名;
库的命名规则
1、可以使用数字、字母、_,但是不能使用纯数字
2、库名区分字母大小写
3、库名具有唯一性
4、不能使用特殊字符和mysql的关键字
练习**
1、创建库AID01,指定字符集为utf8
2、进入到库AID01
3、查看当前所在库
4、查看库中已有的表
5、查看AID01的默认字符集(创建库的语句)
6、删除库AID01
表的管理
1、表的基本操作
1、创建表(指定字符集)
create table 表名(
字段名 数据类型,
字段名 数据类型,
... ...
)default charset=utf8;
2、查看创建表的语句(字符集)
show create table 表名;
3、查看表结构
desc 表名;
4、删除表
drop table 表名;
2、表的命名规则(同库的命名规则)
3、练习
1、创建库 Python
2、在Python库中创建表py_mysql,并指定字符集utf8
字段有:id、kuname、biaoname,数据类型自己定义
3、查看创建表py_mysql的语句(字符集)
4、查看表py_mysql的表结构
4、注意
1、所有的数据都是以文件形式存放在数据库目录下
2、数据库目录:/var/lib/mysql
4、表记录管理
1、在表中插入记录
insert into 表名 values(值1),(值2),...,(值N);
2、查询表记录
1、select * from 表名 [where 条件];
select * from t1;
select * from t1 where name="Green";
2、select 字段1,字段2,... from 表名 [where 条件];
5、练习
1、查看已有的库
show databases;
2、创建一个新库studb,并切换到该库
create database studb;
use studb;
3、在studb中创建表stuinfo,字段有id name age三个
create table stuinfo(
id int,
name char(20),
age int);
4、查看stuinfo的表结构
desc stuinfo;
5、在表 stuinfo 中任意插入2条记录
insert into stuinfo values(1,"Lucy",20),(2,"Bob",23);
6、查看 stuinfo 中的所有记录
select * from stuinfo;
7、删除表 stuinfo
drop table stuinfo;
8、删除库 studb
drop database studb;
5、更改库、表的默认字符集
1、方法
通过更改MySQL配置文件来实现
2、步骤
cp 文件名 新的文件名
vi 文件名
a -> 写内容
esc -> shift + :
wq
1、获取root用户权限
sudo -i
2、cd到mysql配置文件所在路径
cd /etc/mysql/mysql.conf.d/
3、把配置文件mysqld.cnf复制一份,mysqld.cnf.bak
cp mysqld.cnf mysqld.cnf.bak
4、vi打开配置文件mysqld.cnf
vi mysqld.cnf
在[mysqld]下写入如下语句:
character_set_server=utf8
5、重启MySQL服务
sudo /etc/init.d/mysql restart
6、客户端把数据存储到数据库服务器上的过程
1、连接到数据库服务器 mysql -uroot -p123456
2、选择一个库 use 库名
3、创建表或者修改表
4、断开与数据库服务器的连接 exit; | quit; | \q;
数据类型
1、数值类型(有符号signed和无符号unsigned)
1、整型
1、int 大整型(4个字节)
取值范围:2**32 - 1(42亿多)
2、tinyint 微小整型(1个字节)
1、有符号(signed默认): -128 ~ 127
2、无符号(unsigned): 0 ~ 255
3、smallint 小整型(2个字节)
取值范围:0 ~ 65535
4、bigint 极大整型(8个字节)
取值范围:0 ~ 2**64 - 1
2、浮点型
1、float(4个字节,最多显示7个有效位)
1、用法
字段名 float(m,n) m->总位数,n->小数位位数
float(5,2) 取值范围? -999.99 ~ 999.99
2、注意
1、浮点型插入整数时会自动补全小数位
2、小数位如果多于指定的位数,会对下一位进行四舍五入
2、double(8个字节,最多显示15个有效位)
1、用法
double(m,n)
3、decimal(M+2个字节,最多显示28个有效位)
1、用法
字段名 decimal(M,D)
2、字符类型
1、char(定长)
1、宽度取值范围:1~255
2、不给定宽度默认宽度为1
2、varchar(变长)
1、取值范围:1~65535
2、注意
1、varchar没有默认宽度,必须给定一个宽度值
2、char、varchar使用时都给定宽度,但不要超过各自的范围
3、char和varchar的特点
1、char(定长)
浪费存储空间,但是性能高
2、varchar(变长)
节省存储空间,但是性能低
4、练习
1、创建一个库STUDB,指定字符集为utf8,并切换到该库
create database STUDB default charset=utf8;
2、在STUDB中创建表stuinfo01,字段要求如下:
姓名name:变长,宽度为20
班级class:定长,宽度为5
年龄age:微小整型,要求不能输入负数
身高height:浮点型,小数位为2位
use STUDB;
create table stuinfo01(
name varchar(20),
class char(5),
age tinyint unsigned,
height float(5,2)
);
3、查看表结构
desc stuinfo01;
4、在表中一次性插入3条记录
insert into stuinfo01 values
("张飞","AID01",23,175),
("关羽","AID01",25,180.3),
("郭嘉","AID03",23,170.88);
5、查询所有的表记录
select * from stuinfo01;
6、查询年龄 > 20 的记录
select * from stuinfo01 where age>20;
3、枚举类型
1、定义
字段值只能在列举的范围内去选择
2、enum 单选(最多有65535个不同的值)
字段名 enum(值1,值2,...)
3、set 多选(最多有64个不同的值)
字段名 set(值1,值2,...)
插入记录时 "Python,MySQL,Study
4、日期时间类型
1、year :年 YYYY
2、date :日期 YYYYMMDD
3、time :时间 HHMMSS
4、datetime :日期时间 YYYYMMDDHHMMSS
5、timestamp:日期时间 YYYYMMDDHHMMSS
create table t7(
id int,
name char(15),
age tinyint unsigned,
birth_year year,
birthday date,
class time,
meeting datetime
);
datetime和timestamp区别示例:
create table t8(
username varchar(15),
password varchar(15),
zhuce datetime,
current timestamp);
6、注意
1、插入记录时datetime字段不给值默认返回NULL
2、插入记录时timestamp字段不给值默认返回系统当前时间
作业:
1、面试题
1、填空题
1、MySQL中的数据类型有___、____、____、____
2、关系型数据库的核心内容是 关系 即 二维表
2、简答题
1、简述客户端把数据存储到数据库服务器上的过程
2、var和varchar的区别及各自的特点
2、操作题
1、创建一个学校的库school
2、在school库中创建一张表students来存储学生信息
字段有:学号、姓名、年龄(不能输入负数)、成绩(浮点)、
性别(单选)、爱好(多选)、入学时间(不给值默认返回当前时间)
3、查看students的表结构
4、在表中随意插入4条记录
5、查看所有学生信息
6、查看所有学生信息的姓名和成绩
7、查看成绩大于60的学生的姓名和成绩
以上是关于Mysql数据库的主要内容,如果未能解决你的问题,请参考以下文章
连接MySQL出现错误:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)(代码片段
使用 json rereiver php mysql 在片段中填充列表视图
关于mysql驱动版本报错解决,Cause: com.mysql.jdbc.exceptions.jdbc4Unknown system variable ‘query_cache_size(代码片段
修改MySQL密码报错“ERROR 1819 (HY000): Your password does not satisfy the current policy requirements“(代码片段