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 创建表时,必须指定以下信息:
- 要创建的表的名称不区分大小写,不能使用SQL语言中的关键字,如DROP、ALTER、INSERT等。
- 必须指定数据表中每个列(字段)的名称和数据类型,如果创建多个列,要用逗号隔开
查看表
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 列名 列类型;