MySQL常见的数据类型

数值类型:

整数类型 TINYINT SMALLINT MEDIUMINT INT BIGINT

重点记住:int

浮点数类型 FLOAT DOUBLE (带小数点的)

float(6,2)的含义数据是float型,数据长度是6,小数点后保留2位

定点数类型 DEC 了解

decimal型的默认整数位为10,小数位为0,即默认为整数。

会自动四舍五入

字符串类型:

CHAR系列 (重点) CHAR VARCHAR (其长度指示要存储的最大字符数)

char:使用固定长度

varchar:使用比固定长度类型(char)占用更少存储空间

TEXT系列 TINYTEXT TEXT MEDIUMTEXT LONGTEXT

枚举类型: ENUM (多个选项,只能选择一个)

时间和日期类型: DATE TIME DATETIME TIMESTAMP YEAR

date:只显示年月日

time:是显示时分秒

datetime:年月日 时分秒

mysql--> 数据库管理系统(用来管理数据库)

#sql基本语句 (所有命令;(分号)结尾)

##库操作

show databases; #查看默认的所有的数据库

use 数据库名; #使用或者切换到指定的数据库

create database 数据库名;#创建数据库

例:create database yjs;

drop database 数据库名; #删除指定的数据库

一、从操作对象 库和表

##表操作

show tables; #查看当前数据库中的所有表

#创建表:

CREATE TABLE tbl_name (

字段名1 类型[(宽度) 约束条件],

字段名2 类型[(宽度) 约束条件],

字段名3 类型[(宽度) 约束条件],

...

) ;

例如:

create table t3(

-> 序号 int,

-> 姓名 varchar(20),

-> 年龄 int);

#查看表结构 (有多少列,每一列的属性)

desc 表名; 例如:desc t1;

#查看表的创建过程 (创建表的时候使用的语句)

show create table +表名;

#修改表的名称

rename table 原名称 to 新名称;

例:rename table t2 to chengji;

alter table 原名称 rename 新名称;

alter table chengji rename t2;

#添加字段(列)

alter table 表名 add 新增字段名 类型;

例:alter table t2 add 英语成绩 int;

#删除表

drop table 表名;

#修改字段

更改字段名:change

alter table 表名 change 旧字段名 新字段名 数据类型;

例:alter table t2 change 英语成绩 计算机成绩 int;

更改字段位置,数据类型属性:modify

alter table info modify name char(20) after age;

#插入数据

方式1:

insert into 表名(字段名1,字段名2......) values(数值1,数值2.........)

方式2:

insert into 表名 values(数值1,数值2........) ;

#查询

select 字段1,字段2,.... from 表名;

select * from 表名;(*代表所有字段)

#更新(修改数据)

update 表名 set 字段名=新值 where 条件;

例:update t2 set 数学成绩=90 where 姓名="lisi";

#删除记录

删除指定的记录:delete from 表名 where 条件;

删除表的所有记录:delete from 表名;

*注意:只是把表里的数据全部删除,并不会删除表

二、从“增”,“删”,“改”,“查”操作来分类

1.增

create database 库名; #建库

create table 表名(表结构); #建表

alter table 表名 add 新增字段名 类型;#添加字段

#插入数据

方式1:

insert into 表名(字段名1,字段名2......) values(数值1,数值2.........)

方式2:

insert into 表名 values(数值1,数值2........) ;

2.删

drop database 库名;

drop table 表名;

alter table 表名 drop 字段名; #删除字段

delete from 表名 where 条件;

delete from 表名;

3.改

rename table 原名称 to 新名称;

alter table 原名称 rename 新名称;

alter table 表名 change 旧字段名 新字段名 新数据类型;

alter table 表名 modify字段名 新数据类型;

update 表名 set 字段=新数据 where 条件;

4.查

show databases;

use +库名[;]

select database(); # 查询当前所在的数据库(mariadb可以看提示符)

show tables;

show table status like ‘表名'\G ;#查看表的状态

desc 表名;

show create table +表名;

select 字段1,字段2,.... from 表名;

select * from 表名;(*代表所有字段)

#表的复制

create table 新表 select * from 要复制的表;

#约束条件

非空、唯一、默认值、主键、外键、自增

语法:字段名 数据类型[宽度|not null|unique|default 默认值|auto_increment]

1.非空

mysql null和空值

null :占空间

空值:不占空间

例:create table t3(

-> 序号 int,

-> 姓名 varchar(20) not null, #该字段插入数据不能为空

-> 年龄 int);

2.唯一

例:create table t3(

-> 序号 int unique, #指定唯一约束,该列数据不能重复

-> 姓名 varchar(20),

-> 年龄 int);

3.默认值

create table t2 (

姓名 char(10),

性别 enum('男','女') default'男'); #枚举的数据类型,dufault定义默认值

效果:性别字段没有指定数据时,自动用默认值补全

4.主键约束

主键:表中的特殊字段,这个字段能够唯一标识表中的每一条记录。

一张表只能有一个主键

主键的用途:快速定位数据

主键要满足的条件:非空且唯一

primary key == not null + unique

例:

create table t3(

-> 序号 int primary key, #该字段定义为主键(非空且唯一)

-> 姓名 varchar(20),

-> 年龄 int);

5.外键 (了解)

外键:一个表的数据依赖另一张表的主键列的数据,如果在主键列没有出现的值,是不能够出现在外键字段的。

6.自增

自增 auto_increment

要求:

1)该字段必须是数值型

2)字段上要有唯一性索引或者主键

例:

create table t3(

-> 序号 int auto_increment , #定义该列自增

-> 姓名 varchar(20),

-> 年龄 int);

注意:插入时自增列,用''、null或者default填充都可以