数据库数据类型
一、数据类型介绍
主要包括以下五大类:
整数类型:BIT、BOOL、TINY INT、SMALL INT、MEDIUM INT、 INT、 BIG INT
浮点数类型:FLOAT、DOUBLE、DECIMAL
字符串类型:CHAR、VARCHAR、TINY TEXT、TEXT、MEDIUM TEXT、LONGTEXT、TINY BLOB、BLOB、MEDIUM BLOB、LONG BLOB
日期类型:Date、DateTime、TimeStamp、Time、Year
其他数据类型:BINARY、VARBINARY、ENUM、SET、Geometry、Point、MultiPoint、LineString、MultiLineString、Polygon、GeometryCollection等
1、整型
数据类型 | 字节及范围 |
---|---|
tinyint(m) | 1个字节 (-128~127) |
smallint(m) | 2个字节 (-32768~32767) |
mediumint(m) | 3个字节 (-8388608~8388607) |
int或integer(m) | 4个字节 (-2147483648~2147483647) |
bigint(m) | 8个字节 (±9.22*10的18次方) |
整型括号中里的m是表示SELECT查询结果集中的显示宽度,并不影响实际的取值范围,没有影响到显示的宽度。(可以略过这个东西)
2,浮点型
m总个数,d小数位。设一个字段定义为float(6,3),如果插入一个数123.45678,实际数据库里存的是123.457,但总个数还以实际为准,即6位。整数部分最大是3位。如果插入数12.123456,存储的是12.1234,如果插入12.12,存储的是12.1200.
3,字符串
区别char和varchar:
①char(n) 若存入字符数小于n,则以空格补于其后,查询之时再将空格去掉。所以char类型存储的字符串末尾不能有空格,varchar不限于此。
②char(n) 固定长度,char(4)不管是存入几个字符,都将占用4个字节;varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),所以varchar(4),存入3个字符将占用4个字节。
③char类型的字符串检索速度要比varchar类型的快。
**4、二进制数据(Blob)
1.**BLOB和_text存储方式不同,_TEXT以文本方式存储,英文存储区分大小写,而_Blob是以二进制方式存储,不分大小写。
2._BLOB存储的数据只能整体读出。
3._TEXT可以指定字符集,_BLO不用指定字符集。
5,日期和时间类型
作用:存储用户注册时间,文章发布时间,员工入职时间,出生时间,过期时间等
注:①TIMESTAMP列用于INSERT或UPDATE操作时记录日期和时间。如果不分配一个值,表中的第一个TIMESTAMP列自动设置为最近操作的日期和时间。
②也可以通过分配一个NULL值,将TIMESTAMP列设置为当前的日期和时间。TIMESTAMP值返回后显示为’YYYY-MM-DD HH:MM:SS’格式的字符串。
③有专有的自动更新特性。
二,数据类型属性
数据库操作
数据库基本步骤
-
查看数据库版本
mysql --version
-
查看date数据文件位置
show variables like datadir
-
登录数据库
mysql -uroot -p’口令’
-
使用数据库
use test1【数据库名字】
-
查看数据库
show datebases;
-
查看表格
show tables;
-
查看表基本信息
desc 表名称
-
建立表
create table 表名 (name1 属性1,name2 属性2 …)engine=innodb default charset utf8;
例
create table student (id int, name varchar(10))engine=innodb default charset utf8;
增删改查
增INSERT
-
增加一行信息
insert into student【表名】 values(值一,值二,...);
注意,数值类型直接赋值,字符及其其他类型需要单引号或双引号,多用单引号
-
增加一列
alter table tb_users【表名】 add deleted【列名】 boolean【列属性】 default 0【默认值】;
– 0表示没有删除
删DELETE
-
删除一行信息
DELETE FROM <表名> [WHERE 子句] [ORDER BY 子句] [LIMIT 子句]”
-
删除一列
第一,假设要删除
excerpt
列,请使用ALTER TABLE
语句如下:ALTER TABLE posts DROP COLUMN excerpt;
第二,要同时删除
created_at
和updated_at
列,请使用以下语句:ALTER TABLE postsDROP COLUMN created_at,DROP COLUMN updated_at;
-
删除一列信息
update table_name SET field_name = '';
-
删除表
drop table
drop 是直接删除表信息,速度最快,但是无法找回数据例如删除 user 表:
drop table user;
truncate (table)
truncate 是删除表数据,不删除表的结构,速度排第二,但不能与where一起使用例如删除 user 表:
truncate table user;
delete from
delete 是删除表中的数据,不删除表结构,速度最慢,但可以与where连用,可以删除指定的行
例如删除user表的所有数据
delete from user;
删除user表的指定记录delete from user where user_id = 1;
-
删除数据库
DROP DATABASE IF EXISTS test_db_del
改UPDATE
-
更改一列的名字,值类型,
只修改列的数据类型的方法:
通常可以写成 alter table 表名 modify column 列名 新的列的类型
例如:student表中列sname的类型是char(20),现在要修改为varchar(20),SQL语句如下
alter table student modify column sname varchar(20);
同时修改列名和列的数据类型的方法:
通常可以写成 alter table 表名 change column 旧列名 新列名 新的列类型
例如:student表中列sname的类型是char(20),现在要修改为stuname varchar(20),SQL语句如下
alter table student change column sname stuname varchar(20);
-
更改之删除一列
ALTER TABLE posts DROP COLUMN excerpt;
-
更改之增加一列
ALTER TABLE posts ADD name varchar(20);
-
更改一行信息
update student【表名】set name=‘张三’ where id=12;注意,字符类型需要引号
查SELECT
select * from student【表名】();
select * from student【表名】() where id=1;
select sex ,max(age) from student group by sex;;根据性别分组,查找最大年龄
mysql 数据库导入导出
一般形式:
mysqldump -h IP -u 用户名 -p -d 数据库名 > 导出的文件名
参数解析:
-h:表示host地址
-u:表示user用户
-p:表示password密码
-d:表示不导出数据
注意:
(1)-p 后面不能加password,只能单独输入数据库名称
(2)mysqldump是在cmd下的命令,不能再mysql下面,即不能进入mysql的(如果进入了mysql,得exit退出mysql后才可以的。)
一:数据库的导出
导出数据库结构和数据(此时不用加-d),如下导出库dbtest中所有表结构和数据
mysqldump -h 192.168.182.134 -u root -p dbtest > C:\Users\Administrator\Desktop\users2.sql
只导出数据库表结构(此时要加-d),如下导出库dbtest中的users表结构没有数据
mysqldump -h 192.168.182.134 -u root -p -d dbtest > C:\Users\Administrator\Desktop\users2.sql
导出某张表结构和数据(此时不用加-d),如下导出库dbtest中的users表结构和数据
mysqldump -h 192.168.182.134 -u root -p dbtest users > C:\Users\Administrator\Desktop\users2.sql
导出某张表结构(此时要加-d),如下导出库dbtest中的users表结构
mysqldump -h 192.168.182.134 -u root -p -d dbtest users > C:\Users\Administrator\Desktop\users2.sql
二:数据库的导入
已经建好数据库,导入数据库文件
(1)首先登录并进入数据库:
本地访问:
mysql -h localhost -u root -p
远程访问:
mysql -h 192.168.182.120 -uroot -p
参数解析:
-h:表示host地址,本地直接使用localhost,远程需要使用ip地址
-u:表示user用户
-p:表示password密码