今日内容:
1.对于表,库,记录的基本操作
2.数据库引擎的了解
3.表的详细
4.数据类型的掌握
1.回顾昨日对于表,库,记录的基本操作
库
增:
create database mydb2;
删:drop database mydb2;
改:alter database mydb2 charset utf8;
查:show databases;
show create database mydb2;
表:
增:
方式一:
create table mydb2.t1 (id int);
方式二:
use mydb2
create table t2 (id int);
删:
drop table t2;
改:
alter table t1 add name char(5);
alter table t1 modify name char(10);
alter table t1 change name NAME char(10);
alter table t1 drop name;
查:
desc t1;
show tables;
show create table t1;
记录:
增:
insert into t1 value(1);
insert into t1 values(2),(3);
删:
delete from t1 where id = 1;
delete from t1;
truncate t1;
改:
update t1 set id=4 where id=1;
update t1 set id =5;
查:
select * from t1;
select id from t1;
2.数据库引擎的了解
什么是引擎?
一个功能(mysql核心功能就是存储数据)的核心部分,引擎可以被分类
为什么要被分类?
为了让这个功能更加适合用户的需求
show engines;#用来查看数据库的引擎InnoDB是我这个MySQL默认的引擎(指的是用InnoDB这个存储格式来存储数据)
我们可以根据我们的要求来选择引擎创建表
create table t2 (id int) engine = blackhole;
3.表的详细
创建表的完整语法: create table 表名(字段名称 数据类型(长度) 约束条件);
create table t3 (id int,name char(5) not null);
长度用于设置数据的长度(如果添加的数据超过了指定的长度范围,超出范围的就会被丢弃)
数据类型也是一种约束
约束值得是除了数据类型外的规范
注意:字段名和表名 库名 都不能是MySQL的关键字
4.数据类型的掌握
为什么需要将数据分类
1.为了描述事物更加准确
2.描述起来更加方便
3.节省内存空间
MySQL支持的数据类型:
整型:(默认情况下整型是有符号的,需要一个二进制位存放符号)unsigned设置约束无符号
tinyint(字节数:1)、samllint(字节数:2)、int(字节数:3)、mediumint(字节数:4)、bigint(字节数:8)
特性:如果数据超出范围就尽可能保存最大的
特性的出现,是因为MySQL处于非严格模式
查看当前模式 show variables like "sql_mode"
修改为严格模式set global sql_mode = "STRICT_TRANS_TABLES"
严格模式下,值超出范围则报错
浮点型:
float(字节数:4)、double(字节数:8)、decimal(字节数:不确定,需要手动指定)
给浮点设置宽度限制:
float(m,d)
double(m,d)
decimal(m,d)
m并表示这个浮点整体的长度
d表示小数部分的长度
相同点:
都是小数,小数部分的最大长度是30
float和double 的最大整体长度为255
不同点:
decimal 整体长度最大为65
精度不同:double > float
decimal 精度是准确的 不会丢失精度
字符串型:
char(定长字符:长度是固定的 无论你存储的数据有多长 占用的容量都是一样的)
存取效率高,但是浪费空间
varchar(变长字符:长度是可变的,存的数据有多长就占用多长)
存取效率低于char,节省存储空间
时间日期:
time 时分秒
year 年份
date 日期
datetime 年月日时分秒
举例:create table t3 (id int,时间 time);
布尔类型
可以用别的类型来代替
集合枚举
set 多选多
enum多选一
举例: create table t1 (id int(5),name char(10),sex enum("男","女"),hobby set("read","run","watch TV"));