MySQL数据类型:
整数型:存放整型数据
tinyint:迷你整型,使用1个字节存储,表示的状态最多为256种(常用) 有符号 (
-128-127
)无符号(0-255)
smallint:小整型,使用2个字节存储,表示的状态最多为65536种
mediumint:中整型,使用3个字节存储
int:标准整型,使用4个字节存储(常用)
bigint:大整型,使用8个字节存储
--、
整型
-- 创建整型表
create table my_int(
int_1 tinyint,
int_2 smallint,
int_3 int,
int_4 bigint,
)charrset utf8;
-- c插入数据
insert into my_int
values(100,100,100,100); -- 有效数据
insert into my_int
values('a','b','199','f'); -- 无效数据;类型限定
insert into my_int
values(255,10000,10000,1000000); -- 错误,超出范围
-- 给表增加一个无符号类型
alert table my_int add int_5 tinyint unsigned; -- 无符号类型
-- c插入数据
insert into my_int
values(127,10000,10000,1000000,255);
-- 指定显示宽度为1
alert table my_int add int_6 tinyint(1) unsigned;
-- c插入数据
insert into my_int
values(127,0,0,0,255,255);
-- 显示宽度为2,0填充(不够两位,加0)
alert table my_int add int_7 tinyint(2) zerofill; --导致数据变成无符号类型
-- c插入数据
insert into my_int
values(1,1,1,1,1,1,1);
insert into my_int
values(100,100,100,100,100,100,100);
浮点型
小数型:带有小数点或者范围超出整型的数值类型
浮点型:小数点浮动,精度有限,而且会丢失精度
定点型:小数点固定,精度固定,不会丢失精度
--创建 浮点数表
create table my_float(
f1 float
f2 float(10,2), --10位在精度范围之外
f3 float(6,2) --六位在精度范围之内
)charset utf8;
-- c插入数据
insert into my_float
values(1000.10,1000.10,1000.10);
insert into my_float
values(1234567890,12345678.90,1234.56);
insert into my_float
values(3e38,3.01e7,1234.56);
insert into my_float
values(9999999999,99999999.99,9999.99); -- 后两个是最大值·
-- 超出长度插入数据
insert into my_float
values(123456,1234.12345678,123.9876543);--小数部分可以超出长度
insert into my_float
values(123456,1234.12,12345.56); -- 最后一个整数部分超出
-- 创建定点数biao
create table my_decimal(
f1 float(10,2),
d1 decimal(10,2)
)charset utf8;
-- 插入数据
insert into my_decimal
values(12345678.90,12345678.90); -- 有效数据
insert into my_decimal
values(1234.123456,1234.123456); --小数部分可以超出长度
-- 查看警告
show warnings;
-- 插入数据
insert into my_decimal
values(99999999.99,99999999.99); -- 没有问题
insert into my_decimal
values(99999999.99,99999999.999); --进位超出范围
MySQL(数据库)基本操作
新增数据库
数据库名字以字母数字下划线组成,不能以数字开头
数据库名字不能用关键字(已经被系统使用的字符)或者保留字(将来系统可能会用到的字符)
语法格式
--双中划线+空格(单行注释),也可以使用#号
数据的增删改查
--创建数据库
create database mydb charset utf8; #创建名为mydb的数据库
--创建关键字数据库
create database database charset utf8;--报错
-- 使用反引号(` `)可以用关键字命名
create database `database` charset utf8;
--创建中文数据库
create database 唐山 charset utf8;
--如果报错解决方案;告诉服务器当前中文的字符集是什么
set names gbk;
在执行 create database 唐山 charset utf8;
--查看所有数据库
show databases;
--创建数据库
create database informationtest charset utf8;
--查看一informationtest_开始的数据库(_需要被转义)
show databases like ' information_% '; --相当于informationt%
show databases like ' information\_% ';
-- 查看数据库的创建语句
show create database mydb;
show create database `database`;-- 关键字需要使用反引号
-- 数据库的修改 数据库名字不可以修改 数据库的修改仅限库选项
-- 修改数据库informationtest 的字符集
alter database informationtest character GBK;
-- 删除数据库
drop database informationtest;
表的增删改差
-- 新增数据表
create table if not exists student(
-- 显示地将student表放到mydb数据库下
name varchar(10),
gender varchar(10),
number varchar(10),
age int
)charset utf8;
-- 创建数据库表
-- 先进入数据库
use mydb;
-- 创建表
create table class(
name varchar(10),
room varchar(10)
)charset utf8;
-- 查看所有表
show tables;
-- 查看部分表(模糊查询)
-- 查看以s结尾的表
show tables like '%s';
-- 查看表的创建语句
show create table student;
show create table student\g -- \g 等价于 ;
show create table student\G -- \G 将查到的结构旋转90度变成纵向
-- 查看表结构
desc class;
describe class;
show columns from class;
--重命名表:student表->my_student
rename table student to my_student;
--修改表选项;字符集
alert table my_atudent charset = GBK;
--给学生表增加ID,放到第一个位置
alert table my_student
add column id int
first; #以分号;定位位置
--将学生表中的number学号字段变成固定长度,且放倒第二位(id)之后
alert table my_student modify number char(10) after id;
--修改学生表中的gender字段为sex
alert table my_student change gender sex vachar(10)
--删除学生表中的age年龄字段
alert table my_student drop age;
-- 删除数据表
drop table class
-- 插入数据
insert into my_student
value(1,'bc20200001','Jim','male'),
(2,'bc20200002','Lily','female');
-- 插入数据:指定的字段列表
insert into my_student(number,sex,name,id) values
('bc20200003','male','syh',3),
('bc20200004','female','zyn',4);
--查看所有数据
select * from my_student;
-- 查看指定字段、指定条件的数据
select id,number,sex,name from my_student
where id=1; -- 查看满足id为1的学生信息
-- 更新数据
update my_student set sex='female' where name='Jim';
-- 删除数据
delete from my_student where sex='male';
-- 新增数据表
create table if not exists student(
-- 显示地将student表放到mydb数据库下
name varchar(10),
gender varchar(10),
number varchar(10),
age int
)charset utf8;
-- 创建数据库表
-- 进入数据库
use mydb;
-- 创建表
create table class(
name varchar(10),
room varchar(10)
)charset utf8;
-- 查看所有表
show tables;
-- 查看部分表(模糊查询)
-- 查看以s结尾的表
show tables like '%s';
-- 查看表的创建语句
show create table student;
show create table student\g -- \g 等价于 ;
show create table student\G -- \G 将查到的结构旋转90度变成纵向
-- 查看表结构
desc class;
describe class;
show columns from class;