mysql的表对象是基于库维护的,也就是说它属于某个库,不管对象是由谁创建的,只要库在表就在。这根Oracle不同Oracle中的表对象是基于用户的。属于创建改对象的用户所有,用户在表就在。
mysql中的数据库(database)和Oracle数据库中的数据库概念不同。每个mysql都是由多个数据库组成(创建好默认4个)而Oracle中的数据库则是一个整体。
mysql默认的4个库
information_schema:记录用户、表、视图等元素信息、提供类似oracle的数据字典功能,类似于oracle数据库的system表空间。值得关注的是这个库是个特例,它是虚拟出来的库,是由mysql实例构建和维护的,其对象都保存在内存中。也就是说在磁盘上找不到对应的物理存在,因为它是虚拟的。那么用户也无法再该库下创建对象。甚至是root身份用户也不行,该库只能查询。而且该库中的对象在用户权限上面也非常特别。
mysql:记录用户权限、帮助、日志等信息,提供类似oracle数据字典功能,类似于oracle数据库中的system和sysaux表空间。
performance_schema:mysql服务性能指标库提供类似oracle数据库中v$类视图和数据字典功能。5.5引入的
test:测试库可以删除掉

show databases;
显示当前连接用户拥有访问权限的数据库。最高权限root账户可以查看到所以存在的数据库。对于只拥有一定权限的用户就指挥看到它拥有访问权限的库和对象。
删除test库,提醒删除有风险操作需谨慎。
drop database test;
create database jason;
查某个数据库的字符集:
mysql> show create database jason;
+----------+----------------------------------------------------------------+
| Database | Create Database |
+----------+----------------------------------------------------------------+
| jason | CREATE DATABASE `jason` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+----------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select * from information_schema.schemata;
+--------------+--------------------+----------------------------+------------------------+----------+
| CATALOG_NAME | SCHEMA_NAME | DEFAULT_CHARACTER_SET_NAME | DEFAULT_COLLATION_NAME | SQL_PATH |
+--------------+--------------------+----------------------------+------------------------+----------+
| def | information_schema | utf8 | utf8_general_ci | NULL |
| def | jason | utf8 | utf8_general_ci | NULL |
| def | mysql | utf8 | utf8_general_ci | NULL |
| def | performance_schema | utf8 | utf8_general_ci | NULL |
+--------------+--------------------+----------------------------+------------------------+----------+
4 rows in set (0.01 sec)
选定某个数据库
use database_name;
mysql> use mysql
Database changed
也可以在登陆的时候指定数据库名
mysql -uroot -p'password' database_name
或者编写的sqlplus.sh 3306 mysql
查看库中的表对象show tables;
mysql> show tables;
建表:
use jason
create table users(
username varchar(10),
sex tinyint,
birth date,
address varchar(50),
phoneno varchar(15)
);

select database();

help create table;

desc mysql.db
Field 显示列名
Type 显示列的数据类型
Null 表示该列是否可以为空 显示NO表示不能为空 否则就是允许为空
Key 表示该列是主键列或索引列 为空的话表示该列上没有创建任何索引
Default 用于显示个该列的默认值,为空表示没有默认值。
Extra 用于显示一些额外的附件信息 比如说该列如果定义为自增列 则会显示为AUTO_INCREMENT 对于timestamp
列如果定义了on update选项 则此处也会显示相应的关键字。
也可以用show columns from table_name;
查看某个表的索引
获取mysql.db对象的创建脚本
alter table的语法 help alter table;
alter table users add (email varchar(50),salary smallint);
alter table users drop salary;
mysql数据库中,碰到字符类型列,如char/varchar这一类在定义长度时,长度声明的是字符长度不是字节长度。
GBK VARCHAR(30) 保存汉字30个 占用60字节
UFT8 汉字30 占用90字节
alter table users change username name varchar(10); 可以修改列名和列定义值。
alter table users modify name varchar(20); 只能修改列的定义值、
删除表:drop table users;
将jason_mc库下的users表移动至jason下保存:
rename table jason_mc.users to jason.users;
rename table information_schema.tables to jason_mc.tables;
ERROR 1044 (42000): Access denied for user 'system'@'localhost' to database 'information_schema' 报没权限,下章引入权限。

涂抹mysql笔记-管理mysql库和表的更多相关文章

  1. 涂抹mysql笔记-管理mysql服务

    -DSYSCONFDIR=/mysql/conf \ 所以在conf下建立my.cnf文件 vi my.cnf [client]port=3306socket=/mysql/conf/mysql.so ...

  2. mysql语句1-创建库和表

    一.DDL数据定义语言 就是对书库内部的对象进行创建.删除.修改等操作的语言. 关键字:create  drop  alter 1.连接数据库 mysql -u用户名 -p -h指定主机(不指定默认是 ...

  3. MySQL:管理MySQL、事务(三)

    干货: 命令行程序mysql实际上是MySQL客户端,真正的MySQL服务器程序是mysqld,在后台运行. 数据库事务具有ACID特性,用来保证多条SQL的全部执行. 五.MySQL 通过mysql ...

  4. 高性能可扩展mysql 笔记(一)数据库表、索引、SQL语句设计规范

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 项目说明:该笔记的背景为电商平台项目,电商项目由于其高并发.多线程.高耗能等特性,在众多的项目类型中涉及 ...

  5. 涂抹mysql笔记-搭建mysql高可用体系

    mysql的高可用体系<>追求更高稳定性的服务体系 可扩展性:横向扩展(增加节点).纵向扩展(增加节点的硬件配置) 高可用性<>Slave+LVS+Keepalived实现高可 ...

  6. Mysql基础(四):库、表、记录的详细操作、单表查询

    目录 数据库03 /库.表.记录的详细操作.单表查询 1. 库的详细操作 3. 表的详细操作 4. 行(记录)的详细操作 5. 单表查询 数据库03 /库.表.记录的详细操作.单表查询 1. 库的详细 ...

  7. mysql 权限管理 针对库 授权 db.*

    需求 只放行user表 db1库的select权限 mysql> grant select on db1.* to 'mike'@'localhost'; Query OK, rows affe ...

  8. Mysql基础语法-建库-建表(增、删、改、查、表关联及子查询)

    前言:MySQL是一个数据库管理系统,也是一个关系数据库.它是由Oracle支持的开源软件,MySQL可以在各种平台上运行UNIX,Linux,Windows等.可以将其安装在服务器甚至桌面系统上. ...

  9. 涂抹mysql笔记-安装mysql

    1.mysql安装:(1)RPM安装:rpm -ivh xxx 建议安装三个:MySQL-server-VERSION.PLATFORM-cpu.rpmMySQL-client-VERSION.PLA ...

随机推荐

  1. FileReader字符的读出

    1.fileReader是字符的读出,只能读文件. 2.在读取文件的之前,该文件必须存在. 3.int reader();一次读取一个字符,返回的该字符的码值,如果想要返回字符,直接进行强转char ...

  2. 转载 [c#] 虚函数(Virtual),抽象函数(abstract)和接口的区别

    1.virtual:允许被重写,但不强制要求.声明时提供其自身实现: 2.abstract:强制要求其继承者重写.声明时不提供其自身的实现,抽象类不能被实例化: 3.interface:接口就是协议, ...

  3. Oracle 监听器日志配置与管理

    十一假期间,某客户因为监听日志问题导致系统登录挂起,当时在返京的路上,因客户业务不允许中断,无奈之下,借了个本子帮客户做了紧急处理,今天恰好有空,在网上搜了下有关监听日志的内容,发现一个不错的帖子,内 ...

  4. 如何 distinct 只对一个字段有用,同时查出其他字段

    转至:http://blog.csdn.net/u013402772/article/details/51262524 在使用MySQL时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有d ...

  5. ionic框架使用步骤

    nodejs下载:https://npm.taobao.org/mirrors/node一.全局安装ionic: npm install -g cordova ionic 如果安装失败: npm in ...

  6. 1. qt 入门-整体框架

    总结: 本文先通过一个例子介绍了Qt项目的大致组成,即其一个简单的项目框架,如何定义窗口类,绑定信号和槽,然后初始化窗口界面,显示窗口界面,以及将程序的控制权交给Qt库. 然后主要对Qt中的信号与槽机 ...

  7. 阶段01Java基础day21IO流02

    21.01_IO流(字符流FileReader) 1.字符流是什么 字符流是可以直接读写字符的IO流 字符流读取字符, 就要先读取到字节数据, 然后转为字符. 如果要写出字符, 需要把字符转为字节再写 ...

  8. powerdesigner(数据设计工具)

    https://jingyan.baidu.com/album/4f7d57120468c91a2019279f.html?picindex=1  (摘抄 原网地址)

  9. Selenium+Eclipse+Python 环境搭建

    第一步:安装Python 根据下面的地址,直接一键安装,全部默认方式. 下载地址:http://www.python.org/ftp/python/2.7.5/python-2.7.5.msi 安装到 ...

  10. python day27--网络编程

    一‘.网络基础 1.什么是IP IP地址是指互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),是IP Address的缩写.IP地址是IP协议提供的一种统 ...