mysql_涂抹笔记--第四章 管理mysql库与表

第四章 管理mysql库与表

1.配置好一套mysql数据库服务后,系统会默认创建4个库

 

1). information_schema: 记录用户,表,视图等元数据信息,这个库在内存中,也就是在磁盘上找不到对应的物理内存,因此它是虚拟的。那么用户也无噶在改库下创建对象,root也不行对于该库,用户唯一能做的事情就是查询。该库中的对象在用户权限上面特别。

2). mysql: 记录用户权限,帮助,日志等信息

3). performance_schema: mysql 服务性能指标库

4). test: 测试库

2.删除

drop {database| schema } [IF EXISTS ] db_name
drop database test;
drop database if exists test;

drop tables if exists users;

3.创建库

create {database|schema} [if not exists] db_name [default ] character set charset_name  [default]  collate  collation_name;

create database test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

show create database yang;   查看数据库字符集

select * from  information_schema.schemata;    查看数据库里面的所有库的,字符集

4.创建表

create table if not exists yang.users
(username varchar(10),
sex tinyint,
birth date,
address varchar(50),
phoneno varchar(15));

select database(); show tables 一样

Field   显示列名
type   显示列的数据类型
Null    标识该列是否可以为空,显示NO表示不能为空,否则就是允许为空
key    标识该列是主键列或索引列 为空的话表示该列上没有创建任何索引
default  用于显示该列的默认值,为空表示没有默认值
extra     用于显示一些额外的附加信息,比如该列如果为自增列,则会显示为 auto_increment; 对于timestamp列如果定义了 on update 选项,则此处也会显示相应的关键字

 5.修改表

ALTER table users add(email varchar(50),salary smallint); 增加
alter table users drop salary; 删除


alter table tab_name change col_name new_col col_definition;    #修改列名,修改列定义
alter table tab_name modify col_name col_definition;        #修改定义

alter tables users change username user_name varchar(20);
alter tables users modify user_name varchar(10);


alter table users add email varchar(50), modify username varchar(20);

6.引擎

引擎: MyISAM  InnoDB

MyISAM  存储引擎的表对象,完全可以通过删除操作系统层物理文件的方式删除表

InnoDB  引擎中的表对象分为(共享表空间方式存储) 和 (独立表空间方式存储

共享表空间方式存储:  不能以删除文件的方式删表的

独立表空间方式存储:可以通过删除操作系统层物理文件的方式删除,但不建议选择这种方式,可能留下一些隐患,因为InnoDB 引擎的表对象,某些信息是必定会写在数据字典中的,只在操作系统成删除文件并不会清除数据字典中的信息,也许会在某些场景下触发异常

7.把一个库移到另外一个库 rename table

rename table tb1_name to new_tb1_name

原文地址:https://www.cnblogs.com/augustyang/p/7747065.html