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 [email protected];
删除用户
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;
查看支持的字符集和校对规则.
1、mysql> show character set;
2、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: [email protected] --登陆的用户
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;
查看建表语句
1、mysql> show create table hehe;
2、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://blog.51cto.com/13744837/2118548
时间: 2024-10-05 04:24:47