MySQL基础

说到MySQL,大多数人都能顺口说出MySQL是个关系型数据库。 的确是,那么关系型数据库的特点是里面的数据是以行和列的形式存储的,而表里面的行叫做记录,列叫做字段,表与表之间的逻辑关系叫做关系,所以说MySQL是个关系型数据库

MySQL有着开源、跨平台等的特点,在Web时代迎来了快速的发展, MySQL的一大核心便是存储引擎,比较常见的有InnoDB、MyISAM




mysql日期时间默认值 mysql 时间默认值_mysql日期时间默认值


InnoDB特点: 支持事务、外键、行级锁,共享表空间

MyISAM特点: 支持表级锁,独享表空间

根据其特点选择合适的引擎: 要是执行查询操作多的表用MyISAM,执行写操作多的表使用InnoDB

MySQL有三大范式

第一范式:列不可拆分 (每个字段都是原子性的,不可再分解)

第二范式:唯一标识(有主键,非主键字段依赖主键字段)

第三范式:引用主键(非主键之间不能相互依赖)

设计关系数据库时,需要遵从不同的规范要求,设计出合理的关系型数据库,这些不同规范的要求就被称为不同的范式

连接数据库

mysql -h 主机地址 -u 用户名 -p 密码# 主机地址是要连接的目标地址# 用户名是要连接电脑的名称# 密码是连接,在后面可直接写也可不写# mysql -h localhost -u root -p 123456

创建数据库

create database 数据库名 character set utf8# create database userinfo character set utf8# 指定字符集

创建数据表

create table 数据表名(字段名 数据类型) character set utf8# create table user(id int,name varchar, age tinyint, address varchar) character set utf8

数据类型分为:

数值、字符、枚举、日期时间

数值分为整数和浮点数

1、整型

* int 大整型(4个字节)

* tinyint微笑整型(1个字节)

* smallint小整型(2个字节)

* bigint大整型(8个字节)

2、浮点数

* float(4个字节,最多显示7个有效位)

* double(m,n)(最多显示15个有效位)

float(m,n)# m表示总位数,n表示小数位位数# float(5,2): 999.99

字符类型

1、定长(char) 取值范围:1~255

2、变长(varchar) 取值范围:1~65535

3、text/longtext

枚举类型

1、单选(enum) 字段名 enum(值1,值2,……)

2、多选(set) 字段名 set(值1,值2,……)

日期时间

1、date "YYYY-MM-DD"

2、time "HH:MM:SS"

3、datetime "YYYY-MM-DD HH:MM:SS"

4、timestamp "YYYY-MM-DD HH:MM:SS"

注:datetime和timestamp都表示的年月日时间,但不同之处是datetime不给值时返回NULL,而timestamp不给默认值时返回当前时间

增删改查

insert

insert into 表名 values (值)insert into 表名 (字段1,字段2) values (值1,值2)# insert into user(name,age) values(zhangsan,18)

delete

delete from 表名 where 条件# delete from user where id=1# 表示要删除id为1的记录delete from user# 删除表中所有记录

update

update 表名 set 字段名 = 值 where 条件# update user set name=zhangsan where id=2# 表示更改id为2的字段名的值为zhangsan注:后面如果不加where条件的话,表示更改所有的记录

select

select 字段名 from 表名select * from 表名# select * from user# 字段名可以是一个,也可以是多个# *代表要查看所有的字段

删除整张表

drop table user

删除整个数据库

drop database userinfo

表字段操作

添加字段  alter table 表名 add 字段名 数据类型 first/after 字段名  alter table user add school varchar after age修改字段  alter table 表名 modify 字段名 新数据类型  alter table user modify school char删除字段  alter table 表名 drop 字段名alter table user drop school字段修改  alter table 表名 change 字段名 新字段名 数据类型alter table user change school sch char表重命名  alter table 表名 rename 新表名alter table user rename users