数据库数据类型-常见增删改查的各种形式

数据库数据类型

一、数据类型介绍

主要包括以下五大类:

整数类型: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’格式的字符串。
③有专有的自动更新特性。

二,数据类型属性

在这里插入图片描述

数据库操作

数据库基本步骤

  1. 查看数据库版本

    mysql --version

  2. 查看date数据文件位置

    show variables like datadir

在这里插入图片描述

  1. 登录数据库

    mysql -uroot -p’口令’

  2. 使用数据库

    use test1【数据库名字】

  3. 查看数据库

    show datebases;

  4. 查看表格

    show tables;

  5. 查看表基本信息

    desc 表名称

  6. 建立表

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
  1. 增加一行信息

    insert into student【表名】 values(值一,值二,...);
    

    注意,数值类型直接赋值,字符及其其他类型需要单引号或双引号,多用单引号

  2. 增加一列

    alter table tb_users【表名】 add deleted【列名】 boolean【列属性】 default 0【默认值】;
    

    – 0表示没有删除

删DELETE
  1. 删除一行信息

    DELETE FROM <表名> [WHERE 子句] [ORDER BY 子句] [LIMIT 子句]
  2. 删除一列

    第一,假设要删除excerpt列,请使用ALTER TABLE语句如下:

    ALTER TABLE posts  DROP COLUMN excerpt;
    

    第二,要同时删除created_atupdated_at列,请使用以下语句:

    ALTER TABLE postsDROP COLUMN created_at,DROP COLUMN updated_at;
    
  3. 删除一列信息

    update table_name SET field_name = '';
    
  4. 删除表

    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;
    
  5. 删除数据库

    DROP DATABASE IF EXISTS test_db_del
    
改UPDATE
  1. 更改一列的名字,值类型,

    只修改列的数据类型的方法:

    通常可以写成 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);
    
  2. 更改之删除一列

    ALTER TABLE posts  DROP COLUMN excerpt;
    
  3. 更改之增加一列

    ALTER TABLE posts  ADD   name varchar20;
    
  4. 更改一行信息

    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密码

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值