zoukankan      html  css  js  c++  java
  • MySQL库和表的管理

    MySQL数据库服务配置好后,系统会有4个默认的数据库.

    information_schema:虚拟对象,其对象都保存在内存中
    performance_schema:服务器性能指标库
    mysql:记录用户权限,帮助,日志等信息
    test:测试库

    MySQL数据库及表的管理

    1.查询所有数据库

    mysql> show databases;
    

    2.创建数据库

    语法:CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
    

    默认指定编码格式为utf-8

    mysql> create database if not exist db_name;
    

    自定义编码格式

    mysql> create database db_name default character set utf8;
    

    删除数据库

    mysql> drop database if exists db_name;
    

    3.修改数据库

    查询编码格式

    mysql> show create database db_name;
    

    修改编码格式

    alter database db_name default character set gbk;
    

    4.管理表

    1.创建表及查看表

    查看表

    USE db_name;
    show tables;
    

    查看表结构

    desc tbl_name;
    

    查看表中的列

    SHOW COLUMNS FROM tbl_name;
    

    查看表的状态信息

    show table status like 'tbl_name';
    

    创建表语法:  

    CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name (
    ... 字段定义 ...,
    model VARCHAR(20) NOT NULL,
    ... 字段定义 ...
    );
    

    创建表:

    mysql> create table tbl_name(
        -> id int(11) not null auto_increment,
        -> name char(16) not null,
        -> age int default null,
        -> address char(50) not null,
        -> primary key(id)
        -> )engine=innodb default charset=utf8
        -> ;
    Query OK, 0 rows affected (0.02 sec)

    表中插入数据:

    向MySQL数据表插入数据通用的 INSERT INTO SQL语法:

    INSERT INTO table_name ( field1, field2,...fieldN )
                           VALUES
                           ( value1, value2,...valueN );

    5.添加,删除或重新定义列,使用ALTER命令.

    给表中添加字段

    alter table tbl_name add column 字段名 varchar(5);
    

    在表中删除字段

    alter table tbl_name drop column 字段名;
    

    在表中添加id字段

    alter table tbl_name add id int not null
    primary key auto_increment first;
    

    更改列定义或名称

    要改变列的定义,使用MODIFY 或CHANGE 子句以及ALTER命令。 例如, 要改变字段 c 从 CHAR(1) 修改为 CHAR(10), 那么可以这样做:

    mysql> ALTER TABLE tbl_name MODIFY c CHAR(10);
    

    CHANGE语法可能有点不同。CHANGE关键字后的名称是要修改的列,然后指定新的定义,其中包括新的名称。试试下面的例子:

    #其中i为旧字段,j为新字段.
    mysql> ALTER TABLE tbl_name CHANGE i j int; 

    更改列的默认值

    可以使用ALTER命令更改任何列的默认值。尝试下面的例子.

    mysql>ALTER TABLE tbl_name ALTER d SET DEFAULT 1000;
    mysql> SHOW COLUMNS FROM tbl_name;
    +-------+---------+------+-----+---------+-------+
    | Field | Type    | Null | Key | Default | Extra |
    +-------+---------+------+-----+---------+-------+
    | c     | char(1) | YES  |     | NULL    |       |
    | d     | int(11) | YES  |     | 1000    |       |
    +-------+---------+------+-----+---------+-------+
    2 rows in set (0.00 sec)
    

    从任何一列删除默认的约束,可以使用ALTER命令以及DROP子句

    mysql> ALTER TABLE tbl_name ALTER i DROP DEFAULT;
    mysql> SHOW COLUMNS FROM tbl_name;
    +-------+---------+------+-----+---------+-------+
    | Field | Type    | Null | Key | Default | Extra |
    +-------+---------+------+-----+---------+-------+
    | c     | char(1) | YES  |     | NULL    |       |
    | d     | int(11) | YES  |     | NULL    |       |
    +-------+---------+------+-----+---------+-------+
    2 rows in set (0.00 sec)
    

    更改表类型
    可以通过使用ALTER命令以及TYPE子句修改表的类型。试试下面的例子,将 tbl_name 的类型更改为MyISAM 表类型。
    若想要知道一个表的当前类型,那么可使用 SHOW TABLE STATUS 语句。

    mysql> ALTER TABLE tbl_name TYPE = MYISAM;
    mysql>  SHOW TABLE STATUS LIKE 'tbl_name'G
    *************************** 1. row ****************
               Name: tbl_name
               Type: MyISAM
         Row_format: Fixed
               Rows: 0
     Avg_row_length: 0
        Data_length: 0
    Max_data_length: 25769803775
       Index_length: 1024
          Data_free: 0
     Auto_increment: NULL
        Create_time: 2017-04-03 18:35:36
        Update_time: 2017-04-03 18:35:36
         Check_time: NULL
     Create_options:
            Comment:
    1 row in set (0.00 sec)

    删除数据表:

    mysql> DROP TABLE tbl_name;
    

    将表中记录清空:

    mysql> DELETE FROM tbl_name;
    mysql>truncate table tbl_name;
    

    重命名表:

    mysql> rename table tbl_name to tb2_name;
    或者
    mysql> ALTER TABLE tbl_name RENAME TO tb2_name;

    复制表数据(数据一样结构不同)

    create table t2 select * from t1;
    

    复制表结构

    CREATE TABLE 新表 SELECT * FROM 旧表WHERE 1=2
    或者
    CREATE TABLE 新表 LIKE 旧表
    

    参考文档:
    http://www.cnblogs.com/zmxmumu/p/4424877.html

    http://www.cnblogs.com/chenmh/p/5644644.html

     http://www.yiibai.com/mysql/mysql_alter_command.html

     

  • 相关阅读:
    java在线预览txt、word、ppt、execel,pdf代码
    java读写文本文件大全
    经典SQL语句大全
    javascript和jQuery知识点总结
    30条经典的SQL语句
    js 树菜单
    一天一记
    笔记本驱动的安装事项[acer]
    拒绝买房的八大理由
    javascript 常用类
  • 原文地址:https://www.cnblogs.com/saneri/p/6675313.html
Copyright © 2011-2022 走看看