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

     

  • 相关阅读:
    Ubuntu adb devices :???????????? no permissions (verify udev rules) 解决方法
    ubuntu 关闭显示器的命令
    ubuntu android studio kvm
    ubuntu 14.04版本更改文件夹背景色为草绿色
    ubuntu 创建桌面快捷方式
    Ubuntu 如何更改用户密码
    ubuntu 14.04 返回到经典桌面方法
    ubuntu 信使(iptux) 创建桌面快捷方式
    Eclipse failed to get the required ADT version number from the sdk
    Eclipse '<>' operator is not allowed for source level below 1.7
  • 原文地址:https://www.cnblogs.com/saneri/p/6675313.html
Copyright © 2011-2022 走看看