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

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/5791.html

(0)
上一篇 2021年7月17日
下一篇 2021年7月17日

相关推荐

发表回复

登录后才能评论