MySQL 用户, 库, 表的操作语法
关于用户的语法
查看当前系统里的用户:
select user,host from mysql.user;
查看当前登陆的用户
select user();
创建用户
语法: create user '用户'@'主机' identified by '密码';
示例: create user 'anuo'@'localhost' identified by '123'
创建用户并授权
grant 权限 on 库. 表 to '用户名'@'主机域' identified by '用户密码'
示例: grant all on *.* to 'anuo'@'localhost' identified by '123';
查看某用户的权限
show grants for '用户'@'主机'\G
示例: show grants for 'anuo'@'10.0.0.0/24'\G
回收权限
revoke 权限 on 库. 表 from 用户名 @主机;
示例: revoke insert on *.* from anuo@localhost;
删除用户
drop user '用户名'@'主机'
示例: drop user 'anuo'@'10.0.0.0/24';
库操作语法
查看数据库 - 查看全部
mysql> show databases;
查看你相关的帮助
mysql> ? show databases;
创建一个数据库
语法: create database 库名;
mysql> create database haha;
创建数据库时定义字符编码
语法: create database 库名 charser 字符编码;
mysql> create database haha charset utf8 ;
查询数据库定义信息
语法: show create database 库名;
mysql> show create database haha;
存在的数据库修改字符编码
语法: alter database 库名 charser 字符编码
mysql> alter database haha charset gbk;
标准修改系统
ALTER DATABASE [库名] CHARACTER SET 字符集名 COLLATE 校对规则;
ALTER DATABASE haha CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
查看支持的字符集和校对规则.
- ,mysql> show character set;
- ,mysql> show collation;
查看当前数据库的状态:
- mysql> status;
- --------------
- mysql Ver 14.14 Distrib 5.6.25, for Linux (x86_64) using EditLine wrapper
Connection id: 2 -- 链接的 id 号
Current database: test -- 当前的库名
Current user: root@localhost -- 登陆的用户
SSL: Not in use -- 是否使用了 ssl
- Current pager: stdout
- Using outfile: ''
Using delimiter: ; -- 会话的终结符
Server version: 5.6.25-log Source distribution --MySQL 的版本号
Protocol version: 10 -- 协议版本
Connection: Localhost via UNIX socket -- 使用的链接类型, 是通过 socket 文件进行链接
Server characterset: utf8 -- 服务器使用的字符集
Db characterset: utf8 -- 当前数据库使用的字符集
Client characterset: utf8 -- 当前客户端使用的字符集
Conn. characterset: utf8 -- 当前链接使用的字符集
UNIX socket: /data/3306/mysql.sock --socket 文件路径
Uptime: 12 min 10 sec -- 数据库的运行时长
Threads: 1 Questions: 22 Slow queries: 0 Opens: 71 Flush tables: 1 Open tables: 64 Queries per second avg: 0.030
删除数据库
语法: drop database 库名
mysql> drop database haha;
切库
mysql> use haha;
表操作的语法
查看库里面的表 (注意: 选进入库才能看库里的表)
mysql> show tables;
查看库里所有表状态信息
mysql> show table status\G
查看单个表的状态
语法: show table status like '表名'\G
mysql> show table status like 'xixi'\G
创建表
语法: create table 表名 (结构);
mysql> create table xixi(id int);
查看表
mysql> show tables;
删除表
语法: drop table 表名;
mysql> drop table xixi;
创建更多的表结构;
语法: create table 表名 (字段 1, 字段 2,......) -- 注意每字段要用逗号隔开
mysql> create table hehe(id int,name char(20),sex char(4));
字段的定义: 字段名, 数据类型, 约束
常用的数据类型
int -- 整型数值
char -- 定长字符
varchar -- 变长字符
date -- 日期
time -- 时间
year(2|4) -- 年份
常用的约束:
null -- 表示该字段可以为空 (不设置默认为此类型)
not null -- 表示该字段为非空
aoto_increment -- 自增长, 适用于数值型
定义主键
primary key(字段 1, 字段 2,......) --(一个表只能有一个主键, 一个主键可以包含多个字段)
alter table xixi add primary.key(id) -- 把 xixi 表下的 id 字段设置为主键
创建表规格时就定义主键
1,create table xixi(id int(4) primary key,name chat(11)); -- 定义了单一主键
2,create table xixi(id int(4),name char(11),primary key(id,name)); -- 定义联合主键
unique key(字段 1, 字段 2,......) -- 定义唯一键, 一个表中可以有多给唯一键
创建索引
index index_name(字段)
alter table xixi add index index_name(name) -- 把 xixi 表下的 name 字段创建普通索引
创建表时就定义索引:
create table xixi(id int(4),name char(11),primary key(id),index index_name(name));
查看索引
show index from xixi; -- 表示查看 xixi 表中的索引
查看表中的部分索引
show index from xixi where key_name like 'ind'; -- 查看 xixi 表中以 ind 开头的索引
注意: 下面这种语法格式也是可以的, 更能看清楚定义时的语句 推存此用法.
- mysql> create table anuo
- -> (
- -> id int(4),
- -> name char(11),
- -> primary key(id),
- -> index index_name(name)
- -> );
- Query OK, 0 rows affected (0.27 sec)
创建新表时复制另外一个旧表的结构
语法: create table 新表名 like 旧表名;
示例: create table anuo like xixi;
查看建表语句
- ,mysql> show create table hehe;
- ,mysql> show create table hehe\G
修改表名字
1, 语法: rename table 表名 to 新表名;
mysql> rename table hehe to wahaha;
2, 语法: alter table 表名 rename to 新表名;
mysql> alter table wahaha rename to xixi;
查看表结构
mysql> desc xixi;
修改表结构
- mysql> alter table xixi add char(40) NOT NULL;
- mysql> desc people;
after 在指定字段后面添加
语法: alter table 表名 add 新字段 after 指定的字段
示例: alter table xixi add age int(4) after name;
first 在指定字段前面添加 (默认添加在最前面)
alter table xixi add id1 int first ,add shouji char(11) after name ;
删除表字段:
mysql> alter table xixi drop sex;
修改表字段的定义
mysql> alter table xixi modify name char(20);
修改列名:
mysql> alter table xixi change name a_name char(30) ;
创建表时指定多个选项如: 存储引擎, 自增长, 字符集
示例:
- mysql> create table xixi
- -> (
- -> id int primary key auto_increment,
- -> name char(11) not null,
- -> index index_name(name)
- -> )
- -> engine=InnoDB auto_increment=2 default charset=utf8;
-- 指定了 InnoDB 存储引擎 ,id 字段设置了自增长从 2 开始 , 默认的字符集是 utf8
来源: http://www.bubuko.com/infodetail-2610220.html