mysql常用命令

mysql 系统级操作和基本语法规定

  • 命令行模式:net start/stop mysql
  • 服务模式:控制面板>管理工具>服务>mysql>启动/停止

登录、退出基本操作

  • 登录:
mysql [-h 服务器地址] -u 登录名 -p 端口号 -p
  • 退出:
quit;或 exit;

备份恢复数据库

  • 备份数据库:
mysqldump -h服务器地址 -u登录名 -p 要备份的数据库 > 要保存的文件 

  • 恢复数据库:
mysql -h服务器地址 -u登录名 -p 数据库名 < 文件名

source 路径地址/*.sql

基本语法规定

  • 单行注释:#注释内容
  • 单行注释:-- 注释内容(两个“--”之后有空格)
  • 多行注释:/*注释内容*/

php中操作数据库的基本代码和流程

基本流程

  1. 连接数据库
$myink = mysql_connect("localhost","root","123456");
  1. 设定连接编码(通常utf8)
mysql_set_charset("utf8");/mysql_query("set names utf8");

  1. 选择数据库(如有需要)
mysql_select_db("数据库名");/mysql_query("use 数据库名");

  1. 执行sql 命令
$result = mysql_query($sql);

补充sql语句

set names gbk;
use 数据库名;
show databases;
desc 表名

补充php操作mysql的函数


$record = mysql_fetch_array($result);
$n1 = mysql_num_rows($result);//获取结果集行数
$n2 = mysql_num_fields($result);//获取结果集列数
mysql_field_name($result,$i);//获取结果集中第i个字段名(i从0开始)

数据定义语句

create database [if not exists] 数据库名 [ charset utf8] [collate 字符排序规则];

alter database 数据库名 character set=utf8 collate=新校对集;

drop database 数据库名;

use 数据库名;



数据类型

  • 整数:tinyint(-128——127),smallint(-32769——32767),mediumint(-8388608——8388607),int(),bigint()
  • 小数型:float,Double,decimal
  • 日期时间型:year,timestamp,time,date,datetime
  • 字符串型:set,enum,blob,text,varchar,char

表相关语句

 create table [if not exists] 表名(字段列表,[约束或者索引列表])[表选项列表]  

字段属性

  • not null
  • auto_increment
  • [primary] key
  • unique [key]
  • default
  • comment

索引设置

  • 普通索引:key(字段1,字段2,...)
  • 唯一索引:unique key(字段1,字段2,...)
  • 主键索引:primary key(字段1,字段2,...)
  • 全文索引: fulltext(字段1,字段2,...)

表选项

  • comment="表的注释";
  • charset="字符编码";
  • auto_increment=起始整数;
  • engine=“InnoDB/MyIsam”;

修改表

alter table 表名 add [column] 字段名 字段类型 字段属性 //增
alter table 表名 drop 字段名 //删
alter table 表名 change 原字段名 新字段名 新字段类型 新字段属性 //改

删除表

drop table [if exists] 表名;

表的其他操作

show tables;
desc 表名;
show create table 表名;//显示表的创建语句
create table [if not esists] 新表名 like 原表名;//从已有表复制表结构


数据操作语言

数据插入

insert into 表名(字段1,字段2,...) values(值a1,值a2,...),(值b1,,值b2,...),...;

create table 表1 select * from 表名2 //复制一个表的结构和数据

insert into tab2 select * from tab1;//同时复制结构和数据

删除数据

delete from 表名[where条件][order排序][limit限定];

truncate [table] 表名;//直接删除整个表并重新创建该表

修改数据

update 表名 set 字段名1=值的表达式1,字段名2=值的表达式2,...[where][order][limit]

数据查询语句

select [all|distinct] 字段或表达式列表 [from 子句][where][group by][having][order by][limit]

连接查询

from 表1 [连接方式] join 表2 [on 连接条件];

内连接

from 表1 [inner] join 表2 on 表1.字段1=表2.字段2;

左【外】连接

from 表1 left [outer] join 表2 on 连接条件

** 说明:左连接会把表1的所有列表展示出来,表2不符合条件的用null表示,内连接只会把两个表所符合条件的列表展示出来 **

子查询

select 字段或者表达式或者(子查询1)[as 别名] from 表名或者(子查询2) where 字段或者表达式或者(子查询3)的条件判断

数据控制语言

创建用户

create user '用户名'@'允许其登陆的地址' identified by '密码'; //%代表任何地址

删除用户

drop user '用户名'@'允许登陆的地址';

修改用户密码

set password=password('新密码');//修改自己密码

set password for "用户名"@'允许其登陆的地址' = password("新密码");

权限分配

增加权限

grant 权限名1,权限名2,... on 数据库名.对象名 to '用户名'@'允许其登陆的地址' identified by '密码';

删除权限

revoke 权限名1,权限名2,... on 数据库名.对象名 from '用户名'@'允许其登陆的地址';

你可能感兴趣的:(mysql常用命令)