zoukankan      html  css  js  c++  java
  • 数据库常用知识总结

    数据库常用知识总结

    1.        查看当前mysql中所有的数据库命令:

    show databases;

    2.   使用某个数据库(如:zhiliao):

    use zhiliao;

    3.   查看数据库的信息(如:zhiliao):

    show create database zhiliao;

    4.   修改数据库选项,如修改zhiliao这个数据库的字符编码:

    alter database zhiliao charset utf8;

    5.   删除数据库(如:zhiliao):

    drop database zhiliao;

    6.   创建数据库(如:zhiliao):

          create database if not exists zhiliao     ;

    7.   创建表(如:article):

          create table article (id int primary key auto_increment,title varchar(255)) engine=innodb charset=utf8;

    8.   查看当前数据库有哪些表:

          show tables;

    9.   查看建表语句(如:article):

          show create table article;

    10.  查询表结构(如:article):
          desc article;

    11.  修改表选项(表引擎和字符集,如:article):

          alter table article engine=myisam charset=gbk;

    12.  修改表名(如:修改artielc成blog):

          rename table article to blog;

    13.  修改表结构——增加字段(如:article):

          alter table article add column content text after title;

          语法如下:alter table_name add column 字段名称和类型 字段位置

    14.  修改表结构——删除字段(如:article):

          语法:alter table_name drop column column_name;

          alter article drop column content;

    15.  修改表结构——修改已有字段(如:article):

          语法:alter table table_name modify column column_name 新的定义

          alter table article modify column content varchar(200) after id;

    16.  修改表结构——字段改名(如:article):

          语法:alter table table_name change column 原字段名 新字段名 新字段定义

          alter table article change column content arti_content text after title;

    17.     删除表(如:article):

          语法:drop table if exists 表名

          drop table if exists article;

    18.  数据操作——增加(如:article):

          语法:insert into 表名 (字段列表) values(与字段相对的值列表)

          insert into article (id,title,content) values(null,’钢铁是怎样炼成的’,content=’’);

    如果id是自增长的,可以不用写,或者写了,直接给个null。如果不是自增长的,则必须写。只有在一些不能暴露数据量的情况下才会考虑使用非自增长的id,因为id必须唯一,所以如果不是子增长的,一般采用uuid。

    19.  数据操作——查询(如:article):

          语法:select 字段列表 from 表名 [where 条件表达式]

          select id,title ,content from article where id > 5;

    20.  数据操作——删除(如:article):

          语法:delete from 表名 where 条件

          delete from article where id=10;

    21.  数据操作——更新(如:article):

          语法:update 表名 set 字段=新值 where 条件;

          update article set title=’水浒传读后感’ where id=10;     

    22.  Mysql的数据类型:

    (1)整形(tinyint/smallint/mediumint/int/bigint):

    常用的是tinyint和int。

    如果需要设置大于0的,可以使用无符号整形:int unsigned。

    如果需要设置整形在选择出来的时候显示的宽度,可以使用int(M)这种方式。

    注意:mysql中,没有布尔类型!但是存在boolean这个关键字,其实是用tinyint(1)替代的。

    (2)浮点型(float/double):

    单精度,float,4个字节

    双精度,double,8个字节

    在定义浮点数的时候,一般需要指明有小尾数和小数点后的位数

    float(M,D)

    double(M,D)

    M:所有的有效位数

    D:其中的小数位数

    浮点数只是一个近似值,不是精确值!如果一个数特别大,接近最大值,很可能会出错,比如:

    这个时候,应该使用定点数。

    (3)定点数(decimal):

    与定义浮点数一样,也有有效位数和小数点后尾数,但他不是以数的形式存储,他存储是类似于字符串的形式。

    decimal(M,D)

    (4)字符类型(char/varchar/text):

    char:定长的字符串类型,用于保存长度固定的内容,速度快,但是保存变长数据,会浪费存储空间!

    varchar:可变长度的字符串,用于保存长度可变的数据,保存长度可变的数据时,节省空间,但是处理起来没有定长char快!

    char(N)/varchar(N):N表示每个数据的最大长度!单位是字符数,不是字节数。

    N不是可以无限大的,最大不能超过65535,又由于一个字段中需要1到2个字节保存真实的数据长度,所以一般只能达到65533左右个字符。另外,因为字符集不同,有可能是utf8有可能是gbk,所以不同的字符集,能保存的最大长度的字节数也是不同的。

    注意:平时我们使用时,如果超过255个字符,就使用text来保存!

    text:文本,不限度的字符串。

    选择规则:

    如果是定长,使用char。

    如果是变长,但是小于255个字符,使用varchar

    否则,使用text。

    (5)枚举(enum):

    在定义枚举类型的时候,需要列出哪些是能出现的,例如:

    注意,插入的时候,不仅仅可以使用字符,也可以使用整形,比如以上图,1表示male,2表示female,3表示secret,以此类推。

    那么在插入数据的时候,可以使用整形,比如:

    enum是2个字节,范围从0-65535,因此最多可以有65535个选项。

    (6)日期时间(datetime/timestamp/date/year/time/):

    datetime:日期时间,用于保存大范围的日期时间,范围是从:

    ‘1000-01-01 00:00:00’到’9999-12-31 23:59:59’

    在处理的时候,是使用字符串的形式进行管理。

    timestamp:时间戳,从1970-1-1开始,空间小,使用整形的形式管理,但是是以一个字符串的形式展示的。

    date:日期,只记录日期,不记录时间采用date。

    year:只保存年份,采用一个字节保存,因此表示1901-2155。

  • 相关阅读:
    Java代码中,如何监控Mysql的binlog?
    springcloud dashboard控制面板上的各项指标详解(图文并茂)
    matlab练习程序(图优化)
    C# class模板文件路径
    PostgreSQL安全加固
    linux下安装7z命令及7z命令的使用
    python中for......else......的使用
    docker端口映射或启动容器时报错 driver failed programming external connectivity on endpoint quirky_allen
    python:关于py文件之间相互import的问题
    nginx 80端口跳转到443
  • 原文地址:https://www.cnblogs.com/jinbzblogs/p/12349664.html
Copyright © 2011-2022 走看看