Mysql 基础总结
采用片段式进行归纳
库内容
01什么是数据库
数据的仓库
文件保存数据有以下几个缺点:
1.文件的安全性问题
2.文件不利于数据查询和管理
3.文件不利于存储海量数据
4.文件在程序中控制不方便
数据库存储介质 磁盘 内存
主流的数据库
SQL Sever Oracle MySQL MySQL MySQL
H2
DDL 数据定义语言
DML 数据操纵语言
DCL 数据控制语言
存储引擎对比
02库的基本操作
1.创建数据库
CREATE DATABASE [IF NOT EXISTS] db_name;
eg:create databses db1;
2.使用数据库
use database_name;
3.查看数据库支持的字符集校验规则
show collation;
4.显示创建语句
show create database 数据库名;
5.修改数据库
ALTER DATABASE db_name
eg:alter database db1 charset=gbk;
6.数据库的删除
DROP DATABASE [IF EXISTS] db_ name;
/**
执行删除之后的结果:
数据库内部看不到对应的数据库
对应的数据库文件夹被删除,级联删除,里面的数据表全部被删
**/
7.库的备份
#mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径
8库的还原
mysql> source D:/mysql-5.7.22/mytest.sql;
9.查看连接情况
show processlist;
03表的操作
01.创建表
CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;
eg:
create table users (
id int,
name varchar(20) comment ‘用户名’,
password char(32) comment ‘密码是32位的md5值’,
birthday date comment ‘生日’
) character set utf8 engine MyISAM;
02.查看表结构
desc 表名;
03.修改表
添加字段
ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column datatype]...);
修改字段
ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column datatype]...);
删除字段
ALTER TABLE tablename DROP (column);
04 删除表
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
04数据类型
1
在MySQL中,整型可以指定是有符号的和无符号的,默认是有符号的。
2
可以通过UNSIGNED来说明某个字段是无符号的,尽量不使用unsigned,对于int类型可能存放不下的数据,int unsigned同样可能存放不下,与其如
此,还不如设计时,将int类型提升为bigint类型
3
bit[(M)] : 位字段类型。M表示每个值的位数,范围从1到64。如果M被忽略,默认为1
4
bit字段在显示时,是按照ASCII码对应的值显示。只存放0或1,这时可以定义bit(1)。这样可以节省空间。
5
float[(m, d)] [unsigned] : M指定显示长度,d指定小数位数,占用空间4个字节
float(4,2)表示的范围是-99.99 ~ 99.99,MySQL在保存值时会进行四舍五入。
6
decimal(m, d) [unsigned] : 定点数m指定长度,d表示小数点的位数。decimal整数最大位数m为65。支持小数最大位数d是30。如果d被省略,默认为0.如果m被省略,默认是10。
7
char(L): 固定长度字符串,L是可以存储的长度,单位为字符,最大长度值可以为255
8
varchar(L): 可变长度字符串,L表示字符长度,最大长度65535个字节
varchar长度可以指定为0到65535之间的值,但是有1 - 3 个字节用于记录数据大小,所以说有效字节数是
65532
当我们的表的编码是utf8时,varchar(n)的参数n最大值是65532/3=21844[因为utf中,一个字符占用3个字
节],如果编码是gbk,varchar(n)的参数n最大是65532/2=32766(因为gbk中,一个字符占用2字节)
05表的约束
01 空属性 null
数据库默认字段基本都是字段为空.
02 zerofill
如果宽度小于设定的宽度(这里设置的是5),自动填充0。
03 主键
primary key用来唯一的约束该字段里面的数据,不能重复,不能为空,一张表中最多只能有一个主键;主键所在的列通常是整数类型。
04 自增长
:当对应的字段,不给值,会自动的被系统触发,系统会从当前字段中已经有的最大值+1操作,
得到一个新的不同的值。通常和主键搭配使用,作为逻辑主键。
特点:
任何一个字段要做自增长,前提是本身是一个索引(key一栏有值)自增长字段必须是整数一张表最多只能有一个自增长。
05 唯一键
一张表中有往往有很多字段需要唯一性,数据不能重复,但是一张表中只能有一个主键:唯一键就可以解决表中有
多个字段需要唯一性约束的问题。
唯一键的本质和主键差不多,唯一键允许为空,而且可以多个为空,空字段不做唯一性比较
06 外键
外键用于定义主表和从表之间的关系:外键约束主要定义在从表上,主表则必须是有主键约束或unique约束。当
定义外键后,要求外键列数据必须在主表的主键列存在或为null。