1. 程式人生 > >MySQL用戶、庫、表的操作語法 關於用戶的語法

MySQL用戶、庫、表的操作語法 關於用戶的語法

MySQL數據庫

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;

查看支持的字符集和校對規則.
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:       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;

查看建表語句
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

MySQL用戶、庫、表的操作語法 關於用戶的語法