mysql入门
0. MySQL索引
- 索引是给数据库添加的一种约束
- 约束分为:索引(唯一索引和主键索引)和外键,约束可以看作是一种规则
- 索引可以加快数据的查询速度,将数据顺序排列
1.数据库
- 数据库:用来存储和管理的数据的仓库,数据存储的方式有三种内存,文件和数据库(数据库综合了内存和文件的特点:长期存储和存储量大)
- 数据库的分类:
- 关系型数据库mysql,oracle(不同表之间存在联系,通过外键联系),引擎
InnoDB
允许使用外键,在mysql中默认使用的就是InnoDB
- 非关系型数据库MongDB,引擎
myISAM
允许使用外键
- 客户端链接服务器端的4种方式:cmd命令行,mysql自带的命令行,图形化界面,JDBC
my.ini
是数据库的配置文件- 外键foreign key在哪个表上,哪个表是可以随便删除的
2.数据库和表的关系
3.数据库中详细的数据类型
varchar
与char
的区别:
varchar
是可变长度,最大存储容量是65532很大,当存储的长度小于实际定义的长度,有多长就存储多长char
是不可变长度,最大存储容量是255,当存储的长度小于实际定义的长度,其余会用空格补充
float(总位数,小数点几位)
和double(总位数,小数位数)
decimal(总位数,小数点几位)
涉及到钱款存储时,总位数1~65
,小数点0~30
- 数据类型
数据类型 | 描述 |
---|---|
int | 最长是255位 |
date | 年月日 |
datetimme | 年月日时分秒 |
char | 不可变长度,0~255间的整数 |
varchar | 可变长度,长度非常长 |
decimal(M,N) | 钱款的类型,M是总长度,N是精确的小数位 |
blob | 文本,长度0~65535字节 |
longblob | 文本,长度0~4200000000000字节 |
tinytext | 文本,长度位0~255字节 |
4.SQL分类(DDL,DML,DQL)
类型 | 描述 |
---|---|
DDL | 数据定义语言create drop alter |
DML | 数据操作语言insert,delete,update数据 |
DQL | 数据查询语言select,where |
DCL | 数据控制语言grant,revoke |
5.DDL的alter更改
- alter字段的结构 add(新增)modify(修改现有,实现修改字段的类型,位置)change(修改字段名称) drop(删除字段)
- 修改表名
alter table student rename stu;
- 添加字段:
alter table stu add gender varchar(2) after age;
- 修改字段的名称:
alter table stu change 旧的字段 新的字段 varchar(2);
/alter table stu add 新的字段 int first;
- 修改字段的数据类型:
alter table stu modify 字段 int(10);
- 修改字段的位置:
alter table stu modify 字段 数据类型 after 字段;
- 删除字段:
alter table 表名 drop 字段;
6.DDL的create创建数据库
create database if not exists 数据库名
create database 数据库名 character set UTF8
select database();
查看使用的那个数据库
7.DML的删除truncate
- 输出数据库里的数据可以使用
delete
(不推荐使用,因为删除数据是一条条删除的,当数据很多时会很耗时)和truncate table 表名
8.七大约束(主键,唯一值,为空,默认值,自增,外键)
补充说明:
- 这七大约束可以在同一条语句中叠加;
2.主键和唯一值的建表之后增加约束都是add,其他的都是modify
3.主键和唯一键都是创建约束的同时会创建索引
4.非空和默认值和自增删除约束时,直接alter table 表名 modify 字段名 数据类型;
1. 主键约束
(1)特点:可以看作是唯一和非空的组合,primary key,创建主键的同时会建立索引,删除主键的同时会删除索引
(2)分类:单例主键(直接写在字段的后面),复合主键(写在所有主键的后面)
create table student(
id int,
name varchar(20),
gender char(2),
primary key(name,gender)
)