mysql_数据类型以及sql

数值类型
整型
作用:可以用于存储用户的年龄、游戏的等级等,只能存整数。
分类:tinyint smallint mediumint int bigint这四类,并不是
有符号 :
有正负数
无符号 :
没有负数 类型后面使用unsigned和zerofill修饰符
tinyint(最短整型,后面(+宽度,默认存在为4,显示宽度) 最多存储1个字节或者8个bit
smallint 2个字节 后面(+宽度,默认存在为6,显示宽度)
mediumint 3个字节 后面(+宽度,默认存在为9,显示宽度)
int 4个字节 后面(+宽度,默认存在为11,显示宽度)
bigint 5个字节 后面(+宽度,默认存在为20,显示宽度)
将有符号变成无符号:

   unsigned:
        mysql> create table t6(id bigint(2) unsigned);   
    zerofill:  
        mysql> create table t2 (
            -> id1 int zerofill,
            -> id2 int(6)-显示宽度 zerofill
            -> );
    存储数据大小范围:  
        1个字节            2个字节   3个字节   4个字节   8个字节
        8bit                 16           24           32          64
        11111111        
      无符号:范围运算公式 0到(2^n)-1
            比如:                       
                   tinyint:0到255   
                   bigint: 0到2^64-1

        有符号:范围运算公式 -2^(n-1)到2^(n-1)-1 
            比如:                       
                   tinyint:-128到127    

显示宽度:
类型后面小括号内的数字是显示宽度,不能限制插入数值的大小
比如:bigint(2) 2是显示宽度
浮点型 :单精度float(4)和双精度double
作用:用于存储用户的身高、体重、薪水等
float(5.3) 5宽度 3精度
宽度不算小数点
mysql> create table t12(id float(6,2));
double(5,3)
0~24:单精度float,从第7位有效位,进行四舍五入存储(实际操作是5舍6入)
25~30:双精度double,从第16位有效位,进行四舍五入存储 (实际操作是5舍6入)

定点型
定点数在MySQL内部以字符串形式存储,比浮点数更精确,适合用来表示货币等精度高的数据。
decimal(5,3)

位类型
BIT(M)可以用来存放多位二进制数,M范围从1~64,如果不写默认为1位
对于位字段可以使用函数读取:
bin()显示为二进制
hex()显示为十六进制

mysql> create table test_bit (id bit(4));    //4bit能存储的最大值为15
mysql> desc test_bit;
+-------+--------+------+-----+---------+-------+
| Field | Type   | Null | Key | Default | Extra |
+-------+--------+------+-----+---------+-------+
| id    | bit(4) | YES  |     | NULL    |       |
+-------+--------+------+-----+---------+-------+

mysql> insert into test_bit values(4);

mysql> select * from test_bit;
+------+
| id        |
+------+
|           |
+------+

mysql> select bin(id),hex(id) from test_bit;
+---------+---------+
| bin(id) | hex(id) |
+---------+---------+
| 100     | 4       |
+---------+---------+
1 row in set (0.00 sec)

库操作
创建库:create database 库名
进入/切换库:use 库名
查看所在库:select database();
查看所有库:show databases;

系统数据库
information_schema:	虚拟库,主要存储了系统中的一些数据库对象的信息,例如用户表信息、列信息、权限信息、字符信息等
performance_schema和sys:	主要存储数据库服务器的性能参数
mysql:						授权库,主要存储系统用户的权限信息

表操作
创建表 create table +表名;

语法:
create table 表名(
		字段名1  类型[(宽度) 约束条件],      多个字段用逗号隔开
		字段名2  类型[(宽度) 约束条件],
		字段名3  类型[(宽度) 约束条件]
)[存储引擎 字符集];
==在同一张表中,字段名是不能相同
==宽度和约束条件可选
==字段名和类型是必须的

查看表 show tables; show create table class;详细查看
查看表状态 show table status like '+表名' \G
查看表结构 desc class;
查看表的创建过程 show create table t1
查看表内容
使用\G结尾,按记录显示,每条记录显示一次
修改表
修改表名称
rename table 原名称 to 新名称;
alter table 原名称 rename 新名称;
添加字段 alter table class add gender enum 枚举
删除表 drop table class
删除表字段alter table cless drop ename;
修改字段
modify : 不可以改名
alter table info modify name char(20) after age;
change :可以改名
alter table info change name ename char(20) ;
添加记录:

     insert into info(ename,age) values("tom",24);
     insert into info(ename,age) values("tom",24),("jim",25),("alan",30);
     insert into  info set name=("zy"),age=18; 添加单条记录

更新:
更新记录:update info set grade=4 where ename="alan";
查询 select * from class
删除记录

      delete from info where id=170301;
      delete from  info ; 将表内所用记录删除

删除表 drop table class;
删除库 drop database +库名;

命令行操作数据库(脚本)
# mysql -u root -p1 -e "use db2;create table t3(name char(20),pass char(100));insert into t3 set name='hw',pass=password('123')";

猜你喜欢

转载自blog.csdn.net/qq_43377292/article/details/86503624