MySQL语法学习
登錄數據庫:/mysql/bin/mysql -u root -p
-u:用戶名
-p:密碼
-h:數據庫連接IP或域名,默認localhost的可省
-P:連接端口,默認3306的可省略
DatabaseName:數據庫名稱,帶此參數時,登錄成功后直接轉到該數據庫下;
輸入登錄用戶的密碼(輸入時不顯示出來,輸完回車即可):Enter password:
?
例:以root用戶,在域名為localhost,端口為3306上登錄并直接進入到mysql數據庫
mysql -h localhost -P 3306 -u root -p mysql
?
查詢時間:select now();
查詢當前用戶:select user();
查詢數據庫版本:select version();
查詢當前使用的數據庫:select database();
查詢當前日期:select current_date();
查詢從庫同步狀態:show slave status\G;
查詢數據庫進程情況:show processlist;
?
列出數據庫:mysql> show databases;
?
選擇數據庫:use DatabaseName;
例:mysql> use mysql; ?使用mysql數據庫
?
列出表格:mysql> show tables;
?
顯示表格列的屬性:show columns from tableName;
例:mysql> show columns from user; ?顯示user表格列的屬性
?
創建數據庫:create database DatabaseName;
例:mysql> create database mytest; ?使用mytest數據庫
?
刪除數據庫:drop database if exists DatabaseName;
例:mysql> drop database if exists mytest; ?刪除mytest數據庫
?
創建數據表:create table TableName(字段設定列表);
例:mysql> create table user(
`id` tinyint(8) not null auto_increment primary key,
`name` varchar(32) not null default '',
`password` varchar(32) not null default '',
`sex` enum('0', '1') not null default '0')ENGINE=MyISAM;
lock tables user write;
insert user(`name`, `password`, `sex`) values ('testNmae', '1234', '0'),('testNmae', '12345', '1'),
('testNmae', '123456', '0'),('testNmae', '12345678', '1');
unlock tables;
創建了一個表名為user表,含有id,name,password,sex字段;
?
刪除數據表:drop table if exists TableName;
例:mysql> drop table if exists user; ?刪除user數據表
?
清空數據表:truncate table TableName;
例:mysql> truncate table user; ?清空user數據表
?
優化數據表:optimize table TableName;
例:mysql> optimize table user; ?優化user數據表
?
修復數據表:repair table TableName;
例:mysql> repair table user; ?修復user數據表
?
分析數據表:analyze table TableName;
例:mysql> analyze table user; ?分析user數據表
?
檢查數據表:check table TableName;
例:mysql> check table user; ?檢查user數據表
?
數據表添加列(字段):alter table TableName add (字段設定列表) [ after ColumnName ];
例:alter table user add `e_mail` varchar(255) not null default '' after id ?在user數據表里插入一個新的字段e_mail位于字段id之后
?
數據表更改列(字段):alter table TableName change 舊列名 (新字段設定列表) [ after ColumnName ];
例:alter table user change `e_mail` `eMail` varchar(255) not null default '' after id; ?在user數據表里將字段為e_mail修改為eMail并更新位置?
?
數據表刪除列(字段):alter tables TableName drop column ColumnName, ColumnName2;
例:alter table user drop column `eMail`; ?在user數據表里將字段為eMail的列刪除?
?
導出一個完整數據庫:
登錄數據庫: /mysql/bin/mysqldump -u root -p DatabaseName > OutFileName
-u:用戶名
-p:密碼
-h:數據庫連接IP或域名,默認localhost的可省
-P:連接端口,默認3306的可省
DatabaseName:要導出的數據庫名稱;
>:輸出到指定文件
OutFileName:存放導出數據庫的文件
?
導出一個數據庫中的指定表(一個或多個):
/mysql/bin/mysqldump -u root -p DatabaseName DataTableName1 DataTableName2 > OutFileName
-u:用戶名
-p:密碼
-h:數據庫連接IP或域名,默認localhost的可省
-P:連接端口,默認3306的可省
DatabaseName:要導出的數據庫名稱;
>:輸出到指定文件
DataTableName1:要導出的一個表名
DataTableName2:要導出的另一個表名
...有多個表時,以空格形式書寫即可導出多個
OutFileName:存放導出數據庫的文件
?
grant 權限1,權限2,…權限n on 數據庫名稱.表名稱 to 用戶名@用戶地址 identified by ‘連接口令’;
控制到庫級的命令示范:
grant all privileges on mytest.* to shangcheng@'localhost' identified by '123456';
用戶名為:shangcheng
庫名:shangcheng
密碼:123456
?
刷新系統權限表:mysql> flush privileges;?
?
修改用戶密碼:set password for 'user'@'host' = PASSWORD('newpassword');
例:set password for 'root'@'localhost' = PASSWORD('123456'); ?將登錄方式為localhost的root用戶修改密碼為123456
?
查看用戶權限:show grants for 'user'@'host';
例:show grants for 'root'@'localhost'; ?查看登錄方式為localhost的root用戶的權限
轉載于:https://blog.51cto.com/chinatree/521745
總結
- 上一篇: 一条SQL语句查询数据库中的所有表、存储
- 下一篇: memcached 安装小结-1