Mysql数据库表的操作

登录数据库

mysql -u 用户名 -h 服务器的主机地址 -p密码 -A

-u 后面跟登录数据库的用户名,这里使用root

-h 后面的参数是服务器的主机地址,在这里客户端和服务器在同一台机器上,所以输入 localhost 或 者 IP 地址

-p 后面是用户登录密码,注意:-p 和密码之间没有空格。如果出现空格,系统将不会把后面的字符串 当成密码来对待,没有密码时不写(为了安全一般不写,以不回显形式登录

-A参数:不预读数据库信息,加上该参数则不预读数据库中的表等信息,不会有表明及列名的补全, 但读取速度会加快,不加该参数可能使用数据库时出现下列提示(不影响使用,一般可用)

对于数据库

查看数据库

show databases;--注意有s(全部)show databases like 'sys';(条件查找)

MySQL自带数据库

Information_schema: 主要存储了系统中的一些数据库对象信息,如:用户表信息、列信息、权限信 息、字符集信息、分区信息等

performance_schema:主要存储数据库服务器的性能参数

mysql: 存储了系统的用户权限信息及帮助信息

sys: 5.7新增,之前版本需要手工导入。这个库是通过视图的形式把information_schema 和 performance_schema结合起来,查询出更加令人容易理解的数据

查看当前用户

select user();

切换数据库

select database(); --(如果没有就null)

use 数据库名 -- 只有进入库才能创建表

select database();

创建数据库

create database 数据库名;

查看创建数据库的语句

show create database 数据库名;如果表大 \G解决(旋转九十度看)

删除数据库

drop database 数据库名;

对于数据表

创建表

create table 表名 (表选项)

默认的情况是,表被创建到当前的数据库中。若表已存在、没有当前数据库或者数据库不存在,则会出现错误

使用 crate table 创建表时,必须指定以下信息:

  1. 要创建的表的名称不区分大小写,不能使用SQL语言中的关键字,如DROP、ALTER、INSERT等。
  2. 必须指定数据表中每个列(字段)的名称和数据类型,如果创建多个列,要用逗号隔开

查看表

show tables [from 数据库名][like wild];

show tables; #查当前库

show tables from sys; # 查看另一个库的表示信息

查看数据表中各列的信息

desc 表名;

删除表

drop table [if exists] 表名;

修改表

更改表名 alter table 表名 rename 新表名; 添加新列 alter table 表名 add 新列名 列类型 [after|first] 列名; after:在指定列之后插入新列 first:在第一列插入新列 #注意:无before关键字 删除列 alter table 表名 drop 列名; 修改列名 alter table 表名 change 旧列名 新列名 列类型; 修改列类型 alter table 表名 modify 列名 列类型;