mysql开始第一步_了解MySQL的第一步

MySQL基本概念:

操作语句

1149c334e33c8e1fb9b9563a9947ea6a.png

1. 操作数据库:

创建数据库: create database 数据库名 charset utf8;

查看数据库: show databases;

选择数据库: use 数据库名;

删除数据库: drop 数据库名;

修改数据库: alter database 数据库名 charset utf8;

复制代码

2. 操作表:

先切换到数据库下:

创建:create table 表名(字段名1 类型(宽度) 约束条件,字段名1 类型(宽度) 约束条件);

查看:show tables;

修改:alter table 表名 modify 字段名 类型(宽度);

alter table 表名 change 旧字段名 新字段名 类型(宽度);

删除:drop table 表名;

复制代码

3. 操作表中的记录:

插入:insert into 表名 values(值1,值2.....);

查询:select * from 表名;

修改:update 表名 set 字段名=值 where 条件;

删除:delete from 表名 where 条件;

复制代码

约束

954e19181bdfb2e2785d745c048a34d0.png

为了防止在数据表中插入错误的数据,在Mysql中定义了一些维护数据库完整性的规则,这个规则就是表的约束,通过这些约束我们可以保证数据的正确性。

主键约束:

当我们的数据库中保存了成千上万条数据时,如何能找到你需要的那条数据呢? MySQL提供的主键约束即可帮助我们快速的查询到我们想要的数据。 主键是唯一标识一条记录的,可以把它比喻为身份证号,尽管全世界有那么多人, 但只要知道了身份证号就可以很快的查找一个人的信息。

外键约束:

表的外键是另一表的主键, 外键可以有重复的, 可以是NULL,用来和其他表建立联系用的,一个表可以有多个外键。

非空约束:

非空约束所对应的列在插入数据时不允许为空,也就是必须为该字段赋值,MySQL中使用NOT NULL来表时非空约束其语法为:

create table money(time datatime,money int NOT NULL);

复制代码

唯一约束:

唯一约束用于保证数据表中字段的唯一性,即表中字段不可以出现重复的值, 唯一约束通过UNIQUE来指定,其语法格式为:

create table person(id int UNIQUE,age int);

复制代码

默认值约束:

在一些应用场景下,我们会希望对每一条数据中的某个字段赋予一个默认值, 例如:在一些游戏中,每个账号默认会赠送给用户一定数量的金币,此时金币这个数据就可以使用默认值约束了,MySQL中使用DEFALUT为字段指定默认值其语格式为:

create table user(account char(20),password char(6),money int DEFALUT 1000);

复制代码

基本数据类型:

整数

tinyint() 1字节

smallint() 2字节

mediumint() 3字节

int() 4字节

bigint() 8字节

对于整型而言,宽度用于控制显示的长度

例如 int(10) 则表示显示的时候,如果不足10位则补足到10位,默认用空格填充

ZEROFILL 设置以0填充

复制代码

浮点

float(m,d) 4字节

double(m,d) 8字节

decimal(m,d) 不固定

在浮点类型中,后面的m表示整体长度,d表示小数长度

注意:是长度和字节数无关

复制代码

字符串

char

定长字符串,超出范围会报错,速度快

varchar

可变长字符串,节省空间,速度慢

复制代码

时间

year

date

time

datetime

timestamp 自动更新

复制代码

建立表之间的关系

一对多关系:

1.创建表

创建主表(department)

create table department(id int primary key auto_increment,

department_name char(20) unique,

job char(50) not null);

创建从表(employee)

create table employee(id int primary key auto_increment,

employee_name char(20) not null,

gender char(20),

age int,

foreign key(id) references department(id));

2.插入表

插入主表

insert into department values(1,'市场部','宣传'),(2,'销售部','销售');

插入从表

insert into employee values(1,'jarvis','male',28),(2,'jasion','male',25);

*******

删除要先删除从表再删除主表

删除记录也一样,要先删从表再删主表

*******

级联:

on delete cascade 当主表删除记录时 从表相关联的记录同步删除

on update cascade 当主表id更新时 从表相关联的记录同步更新

主表变化操作从表,从表变化不会操作主表

#实例语句

create table employee(id int primary key auto_increment,

employee_name char(20) not null,

gender char(20),

age int,

foreign key(id) references department(id) on delete cascade);

复制代码

多对多关系:

多对多需要有一个中间表来存贮表的关联关系

1.创建表

创建主表(teacher)

create table teacher(id int primary key auto_increment,name char(25));

创建主表(student)

create table student(id int primary key auto_increment,name char(25));

创建从表(relation 关系表)

create table relation(id int primary key auto_increment,

t_id int,s_id int,

foreign key(t_id) references teacher(id),

foreign key(s_id) references student(id)

);

2.输入值

insert into teacher values

(1,"egon"),

(2,"jack");

insert into student values

(1,"uu"),

(2,"yy");

3.插入对应关系

insert into relation values

(null,1,1),

(null,1,2),

(null,2,2);

复制代码

一对一关系:

使用外键来关联,但是需要给外键加上唯一约束,也就是说两个一对一是有主从关系的

create table t1(id int primary key auto_increment,name char(20));

create table t2(id int primary key auto_increment,name char(20),

t1_id int UNIQUE,

foreign key(t1_id) references t1(id));

********

#垂直分表:

当一个表的字段太多,常用字段不多时,可以采取垂直分表的方式来提高效率

复制代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值