Mysql入门(一)表的数据类型

SQL:ansi sql 标准定义的时间

SQL-86,SQL-89,SQL-92,SQL-92,SQL-99,SQL-03

mysql的数据类型:

  • 字符型(商品信息 籍贯 姓名 生产厂家)
  • 数值型(成绩 年龄 工资)
  • 日期时间型(注册时间 约会时间 开会时间 入职时间 生日)
  • 枚举类型(插入记录 记录的值 在例子的范围内选择)
  • 内建型

字符型:

char(255字节),binary                  #固定长数据类型 
varchar(65532字节),varbinary      #变长数据类型 需要结束符(占有1个空间)

区别:

  • 前不区分大小写后区分
  • 实际上char必须满足存储的数量,不满足会自动用空格补充上,varchar是有多少存储多少不会自动空格补上
  • char的性能优于varchar

大文本类型(音频文件 视频文件 图片文件)

    TEXT:tinttext,text,mediumtext,longtext 
    BLOB:tintblob,blob,mdeiumblob,longblob
#区分:(极小2^8,中2^16,大2^32)

数值型:

精确数值型
    整数:tinyint,smallint,mediumint,int,bigint
    十进制型:decimal
    近似数值型
浮点数:
    float(M,N)
    double(M,N)
    M   设置总位数
    N   设置小数位置数位
bit

日期时间型

date(日期)    YYYYMMDD    2017.11.12
time(时间)    HHMMSS      20:15:25
datetime(日期时间)  YYYYMMDDHHMMSS      2017.11.11-20:20:20
timestamp   #时间戳(格林制)
year            #日期时间

mysql来获取时间

mysql> select now()                 #获取当前系统的时间
mysql> select year(now())          #获取指定时间中的日年
mysql> select moth(now())         #获取指定时间中的月份
mysql> select day(now())            #获取指定时间中的天
mysql> select time(now())           #获取指定时间中的时间

例子(一):

CREATE TABLE t5(name char(15),age tinyint(3)unsigned,pay float(7,2),email varchar(30),birthday date,up_time time,start_year year,party datetime);       #创建表
insert into t5 values('jingjing',day(now()),18000,"jingjing@13.com",date(now()),time(now()),year(201110806),now());     利用函数给表中赋予数值
insert into t5(pay) values(12345);      #单独对某一个索引赋予值,然后其余都是null

例子(二):

create table t6(metting datetime,party timestamp);
insert into t6values(now(),now());
insert into t6(party) values(20180101020202);
insert into t6(metting) values(20200202030303);
select * from t6;

字符类型修改饰符

    not null        #非空约束
    null:
    default 'string'    #指明默认值
    character set''
    unsigned        #不使用负数

枚举类型

enum 只能选择一个
set 选择一个或多个

例如:

create table t7(name char(15),sex enum('boy','girl','no'),likes set('woman','game','money','flim','eat','fuck'));
inset into t7 values('aa','girl','eat,fuck');

SQL语句结构

  • 1.数据查询语言(DQL:data query language)
    where,order by,grounp by,having
  • 2.数据操作语言(DML:data maniputation language)
    insert,updata,delete
  • 3.事务处理语言(YPL)
    类似于shell脚本,begin,transaction,commit,rollback
  • 4.数据控制语言(DCL)
    确定单个用户和用户组对数据库对象的访问
  • 5.数据定义语言(DDL)
  • 6.指针控制语言(CCL)

查询数据库版本:

mysql -V

关于数据库的操作

    查询:
        mysql -e 'show databases;' -uroot -p123456          #不登入数据库实现查询数据
        mysqlshow -uroot -p123456           #简写的不登入数据库实现查询数据
    创建:
        create databases 数据库名
        登入数据库后:create databases HA;
  • 查看mysql的配置文件:cat /etc/my.cnf
  • 查看数据库的存放位置:ls /usr/local/
  • 查看当前所在的库位置:select database()

选择数据库:

use 库名称;
    NULL意味着没有选择数据库!

未登入库选择使用的库:

mysql -u -p 库名称

删除数据库:

    drop database `HA-test`;
修改数据库密码
 set password for root@localhost =password('123456');


    也可以直接在mysql目录文件下删除。
选择一个库创建一个表:
    create table student(id int(20),name char(40),age int) 
设置默认编码为utf8:
    set names utf8;

导入导出数据库
导入时必须有个空的数据库
    mysql -e "create databases 库名字" -u root -p password
    导入数据①:
        mysql -u root -p password 库名字</文件路径.sql
    或在交互界面使用:
        create database 库名字;
    导入数据②:
        use 库名字;
        source /文件路径.sql
        show tables;

Mysql入门(一)表的数据类型》有2个想法

发表评论