注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Oracle、MySQL资料及经验

.

 
 
 

日志

 
 

MySQL库和表的相关命令  

2015-09-30 14:07:27|  分类: MySQL |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
MySql默认的四个库:test/mysql/information_schema/performanct_schema
mysql库:用户、权限、对象列表、帮助、日志
information_schema:记录用户、表、视图等元数据信息,类似oracle数据字典,是虚拟出来的库,有MySql实例创建和维护,其对象存在于内存中。
performanct_schema:性能指标库,类似oralce的v$视图和数据字典,从5.5引进。
test库:没有内容,可直接删除。
显示当前用户可访问哪些库:show databases; 
删库:drop database test;    drop database if exists test;
显示警告信息: show warnings;
Query OK, 0 rows affected, 1 warning (0.00 sec)   0 rows affected,表示表里面没有数据受影响。
MySql对库名大小写敏感。

help create database;
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
    [DEFAULT] CHARACTER SET [=] charset_name
  | [DEFAULT] COLLATE [=] collation_name

新建库jssdb后在/data/mysqldata/3306/data/jssdb目录下只有文件db.opt,指定了默认的字符集和校对规则,继承自参数character_set_database和collation_database
more db.opt 
default-character-set=utf8
default-collation=utf8_general_ci

查某库的字符集:
1. (system@localhost) [(none)]> show create database jssdb;
+----------+----------------------------------------------------------------+
| Database | Create Database                                                |
+----------+----------------------------------------------------------------+
| jssdb    | CREATE DATABASE `jssdb` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+----------------------------------------------------------------+
1 row in set (0.00 sec)
2. (system@localhost) [(none)]> select * from information_schema.schemata where schema_name='jssdb';
+--------------+-------------+----------------------------+------------------------+----------+
| CATALOG_NAME | SCHEMA_NAME | DEFAULT_CHARACTER_SET_NAME | DEFAULT_COLLATION_NAME | SQL_PATH |
+--------------+-------------+----------------------------+------------------------+----------+
| def          | jssdb       | utf8                       | utf8_general_ci        | NULL     |
+--------------+-------------+----------------------------+------------------------+----------+

转换库:  use 库名
$ mysql -usystem -p'123456' jssdb 登录时直接进入某库

建表:help create table;
查当前连接的是哪个库:select database();
+------------+
| database() |
+------------+
| jssdb          |
+------------+
建表:
create table users(
    -> username varchar(10),
    -> sex tinyint,
    -> birth date,
    -> address varchar(50),
    -> phoneno varchar(100));
Query OK, 0 rows affected (0.13 sec)

查表结构:desc users;   Extra附件信息:如果该列为自增列,则显示为: AUTO_INCREMENT


查索引信息:show index from mysql.user;

表的详细信息(表结构、索引、引擎、字符集):
show create table mysql.user \G

修改表结构:alter table
添加列:       alter table users add (email varchar(50), sal smallint); 
删除列:       alter table users drop email;
改列定义:alter table 表名 modify 列名 列定义; 
改列名:      alter table 表名 change 列名 新列名 列定义; 
修改:         rename table 表名 to 新表名;    
移动表:         rename table db1.表名 to db2.新表名;  

添加和修改列名一起来:alter table jssdb.users add email2 varchar(50), modify username varchar(20);   
InnoDB引擎的表,每次执行表结构的表更都相当于整表重建(create+drop),所以要尽量减少DDL的次数。

mysql的varchar(5) 和char(5) 能存储5个汉字。

MyISAM引擎的表,可以通过删除OS物理文件的方式删表,如果是InnoDB引擎的表稍微复杂,因为InnoDB引擎的表分为共享表空间和独立表空间存储,如果是前者,确定不能删除文件的方式删表,后者尽管可以这么操作,但不建议,会留下隐患的。
  评论这张
 
阅读(56)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018