MySQL常用命令大全

1.命令行指令

(1)启动mysql

 net START mysql

(2)连接与断开服务器

 mysql -h 地址 -P端口 -u 用户名 -p密码
 mysql -uroot -pok

2.数据库操作

(1)查看当前数据库

 SELECT DATABASE();

(2)显示当前时间,用户名,数据库版本

 SELECT NOW(),USER(),VERSION();

(3)创建库

 CREATE DATABASE [IF NOT EXISTS] 数据库名

(4)查看已有库

 SHOW DATABASES[LIKE 'pattern']

(5)查看当前库信息

 SHOW CREATE DATABASE 数据库名

(6)修改库的选项信息

 ALTER DATABASE 库名选项信息

(7)选择数据库

 USE 数据库名

(8)删除库

 DROP DATABASE[IF EXISTS]数据库名

3.表操作

(1)创建表

 CREATE[TEMPORARY] TABLE[IF NOT EXISTS][库名.]表名(表的结构定义)[表选项]
注:
1)每个字段必须有数据类型,最后一个字段后不能有逗号
2)temporary表示临时表,会话结束时表自动消失
3)对于字段的定义:
   字段名 数据类型 [NOT NULL][NULL][DEFAULT default_value][AUTO_INCREMENT][UNIQUE KEY]
   [PRIMARY][KEY][COMMENT'string']
4)表选项
①字符集
  CHARSET=charset_name
如果表没有设定,则使用数据库字符集
②存储引擎
  ENGINE=engine_name
  常用的存储引擎:InnoDB MYISAM MEMORY/HEAP BDB MERGE EXAMPLE CSV MaxDB ARCHIVE
  不同的存储引擎在保存表的结构和数据时常采用不同的方式
  MYISAM 表文件含义:.frm 表定义,.MYD 表数据,.MYI 表索引
  INNODB 表文件含义:.frm 表定义,表空间数据和日志文件
  SHOW ENGINES :显示存储引擎的状态信息
  SHOW ENGINE 引擎名{LOGS|STATUS}:显示存储引擎的日志和状态信息

(2)查看所有表

 SHOW TABLES[LIKE 'patten']
 SHOW TABLES FROM 表名

(3)查看表结构

 SHOW CREATE TABLE 表名
 DESC 表名/DESCRIBE 表名 /EXPLAIN 表名/SHOW COLUMNS FROM 表名[LIKE 'pattern']
 SHOW TABLE STATUS [FROM db_name][LIKE 'pattern']

(4)修改表

1)修改表本身的选项
 ALTER TABLE 表名 表的选项
 ALTER TABLE 表名 ENGINE=MYISAM;
2)对表进行重命名
 RENAME TABLE 原表名 TO 新表名
3)修改表的字段结构
  ALTER TABLE 表名 操作名
  
  ADD [COLUMN]字段名                          --增加字段
  ADD PRIMARY KEY(字段名)                     --创建
  ADD UNIQUE [索引名](字段名)                 --创建唯一索引
  ADD INDEX [索引名](字段名)                  --创建普通索引
  DROP [COLUMN]字段名                         --删除字段
  MODIFY [COLUMN]字段名 字段属性              --支持对字段属性进行修改
  CHANGE [COLUMN]原字段名 新字段名 字段属性   --支持对字段名进行修改
  DROP PRIMARY KEY                            --删除主键
  DROP INDEX 索引名                           --删除索引
  DROP FOREIGN KEY 外键名                     --删除外键

(5)删除表

 DROP TABLE[IF EXISTS]表名

(6)清空表数据

 TRUNCATE[TABLE]表名

(7)复制表结构

 CREATE TABLE 表名 LIKE 要复制的表名      

(8)复制表结构和数据

 CREATE TABLE 表名[AS]SELECT * FROM 要复制的表名

4.数据操作

(1)增

 INSERT [INTO]表名[(字段列表)]VALUES(值列表)
 注:1)如果要插入的值列表包含所有字段并且顺序一致,则可省略字段列表;
     2)可以同时插入多条数据记录;
     3)字段列表可以用"*"代替,代替所有字段。

(2)删

 DELETE FROM 表名[删除条件子句]
 没有条件子句的话会删除全部数据

(3)改

 UPDATE 表名 SET 字段名=新值[,字段名=新值][更新条件]

5.字符集编码

MySQL,数据库,表,字段均可设置编码。
注:数据编码与客户端编码不需一致
SHOW VARIABLES LIKE ‘character_set_%’ --查看所有字符集编码项
character_set_client --客户端向服务器发送数据时使用的编码
character_set_results --服务端将结果返回给客户端时使用的编码
character_set_connection --连接层编码
SET 变量名=变量值
setcharacter_set_client=gbk;
setcharacter_set_results=gbk;
setcharacter_set_connection=gbk;
SET NAMES GBK; --相当于完成以上三个设置

6.查询语句

SELECT [ALL|DISTINCT] select_expr 
FROM ->
WHERE ->
GROUP BY[合计函数]->
HAVING ->
ORDER BY->
LIMIT

(1)select_expr

1)计算公式,函数调用,字段也是表达式
eg:selectstu,29+25,now()FROM tb;
2)可以使用as关键字为每个列这顶别名,适用于简化列标识,避免多个列标识符重复。
eg:select stu+10 AS add10 FROM tb;

(2)from子句

用来标识查询来源
1)可以使用as关键字为表起别名
eg:SELECT * FROM tb1 AS tt,tb2 AS bb;
2)from子句后可以同时出现多个表,多个表会横向叠加到一起,而数据会形成一个笛卡尔积
eg:SELECT * FROM tb1,tb2;

(3)where子句

用于从from获得的数据源中进行筛选。1表示真,0表示假

(4)GROUP by子句

分组后进行排序。升序:asc,降序:desc。
以下聚合函数可与group by一起使用
COUNT 返回不同的非null值数目
SUM 求和
MAX 求最大值
MIN 求最小值
AVG 求平均值
GROUP_CONCAT 字符串连接

(5)having子句

对筛选出的结果进行再次筛选过滤
sql标准要求having子句必须引用group by子句中的列

(6)ORDER by子句

ORDER BY 排序字段/别名排序方式
升序:asc,降序:desc。

(7)limit子句

对处理好的结果进行数量限制

(8)distinct选项

用于去除重复记录

7.多表连接查询

(1)UNION

将多个select查询结果组合成一个结果集合

 SELECT ... UNION[ALL|DISTINCT]SELECT ...

(2)子查询

1)FROM 型
from后要求是一个表,必须要给子查询结果取个别名,以简化每一个查询内的条件。
eg:select * FROM (SELECT * FROM tb WHERE id>0)AS subfrom WHERE id>1;
2)WHERE 型
子查询返回一个值
eg:select * FROM tb WHERE money=(SELECT MAX(money) FROM tb);
3)列子查询
使用in或not in子查询,查询结果返回单列
使用exists和not exists条件,返回1或0,常用于判断条件
eg:select column1 FROM t1 WHERE EXISTS(SELECT * FROM t2)

(3)join连接查询

将多个表的字段进行连接,可以指定连接条件
1)内连接(INNER JOIN)
2)交叉连接(CROSS JOIN)
没有条件的内连接
eg:select * FROM tb1 corss JOIN tb2;
3)外连接(OUTER JOIN)
左外连接(LEFT OUTER JOIN): 以左表为基准,以左表来一一匹配,匹配不上,返回左表纪录,右表以null补充
右外连接(RIGHT OUTER JOIN): 以右表为基准,以右表来一一匹配,匹配不上,返回右表纪录,左表以null补充

摘抄自《MySQL数据库应用技术和实战》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值