第10章 MySQL快速入门和常用命令大全

1.命令行指令

(1)启动MySQL net start mysql
(2)连接与断开服务器
mysql -h 地址 -P 端口 -u 用户名 -p 密码;

2 数据库操作

(1)查看当前数据库
SELECT database();
(2)显示当前时间、用户名、数据库版本
SELECT now(),user(),version();
(3)创建数据库
CREATE DATABASE [IF NOT EXISTS] 数据库名 数据库选项;
其中,数据库选项:
CHARACTER SET charset_name COLLATE collation_name;
(4)查看已有数据库
SHOW DATABASE 数据库名;
(5)查看当前数据库信息
SHOW CREATE DATABASE 数据库名;
(6)修改数据库的选项信息
ALTER DATABASE 库名选项信息;
(7)删除数据库
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、Arcgive
        不同的存储引擎在保存表的结构和数据时采用不同的方式:
MyISAM表文件含义:.frm表定义,.MYD表数据,.MYI表索引
InnoDB表文件含义:.frm表定义、表空间数据和日志文件。
SHOW ENGINES 显示存储引擎的状态信息
SHOW ENGINES 因清明 {LOGS|STATUS} 显示存储引擎的日志或状态信息。
(2)查看所有表
SHOW TABLES [LIKE 'pattern'] 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=MyISQM;
2 对表进行重命名
RENAME TABLE 原表名 TO 新报名
3 修改表的字段结构
ALTER TABLE 表名 操作名
有如下操作
ADD [COLUMN] 字段名 --增加字段
ADD PRIMARY KEY (字段名) --创建主键
ADD UNIQUE [索引名] (字段名) 创建唯一索引
ADD INDEX [索引名] (字段名)
DROP [COLUMN] 字段名 删除字段
CHANGE [COLUMN] 原字段名 新字段名 字段属性 支持对字段明后进行修改
DROP PRIMARY KEY 删除主键
MODIFY [COLUMN]字段名 字段属性 --支持对字段进行修改
DROP INDEX 索引名 --删除索引
DROP FORIGN KEY 外键 --删除外键
(5)删除表
DROP TABLE [IF EXISTS] 表名 ...
(6)清空表数据
TRUNCATE [TABLE] 表名
(7)复制表结构
CREATE TABLE 表名 [AS] SELECT * FROM 要复制的表名

4数据操作

(1)增
INSERT [INTO] 表名 [(字段列表)] VALUES(值列表) [,(值列表),...]
--如果要插入的值列表包含所有字段并且顺序一致,则可以省略字段列表。
--可同时插入多条数据。
--字段列表可以用“*”代替,表示所有字段。
(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_cresults =gbk
setcharacter_set_connection =gbk
SET NAMES GBK;相当于完成以三个上设置

6 查询语句

SELECT [ALL|DISTINCT] select_expr FROM ->WHERE ->GROUP BY [聚合函数] ->HABING ->order ->LIMIT
(1)select_expr
1 计算公式、函数调用、字段也是表达式。例:SELECT stu,29+25,now() FROM tb;
2 可以使用as关键字为每个列设定别名,适用于简化列标识,避免多个列标识重复:
SELECT stu+10 AS add10 FROM tb;
(2)FROM 子句
FROM 子句可用于便是查询来源
1 可以使用AS关键字为表起别名
SELECT * FROM tb1 AS tt,tb2 AS bb;
2 FROM 子句后可以同时出现多个表。多个表横向叠加在一起,而数据会形成一个笛卡尔积
SELECT * FROM tb1,tb2;
(3)WHERE子句
WHERE子句用于从FROM 获得的数据院长进行筛选,1表示真、0表示假,表达式由运算符和运算数组成。
(4)GROUP BY子句(分组子句)
GROUP BY 字段/别名 [排序方式]
分组后会进行排序。升序:ASC,降序DESC
以下聚合函数需要配合GROUP BY子句一起使用。
COUNT:返回不同德非NULL值书目,如COUNT(*)、COUNT(字段)
SUM:求和
MAX:求最大值
MIN:求最小值
AVG:求平均值
(5)HAVING子句(条件子句)
与WHERE功能、用法相同,只是执行时机不同。WHERE在开始时执行数据监测,对元数据进行过滤。HAVING对筛选出的结果进行再次过滤。SQL标准要求HAVING子句必须引用GROUP BY子句中的列或用于聚合函数的列。
(6)ORDER BY 子句(排序子句)
ORDER BY 排序字段/别名排序方式[,排序字段/别名排序方式]
ORDER BY子句支持对多个字段的排序。升序:ASC,降序:DESC
(7)LIMIT子句
LIMIT子句仅对处理好的结果进行数量限制。将处理好的结果看做一个集合,按照记录出现的先后顺序,索引从0开始。
LIMIT 起始位置,获取条数
省略第一个参数,也就是‘起始位置’参数,表示索引从0开始,即LIMIT获取条数
(8)DISTINCT选项
DISTINCT选项用于去除重复记录。

7多表连接查询

(1)UNION
UNION将多个SELECT查询的结果组合成一个结果集合。
SELECT ...UNION [ALL|DISTINCT] SELECT ...
其默认方式为DISTINCT方式,即所有返回的行都是唯一的。建议对每个SELECT查询加上小括号。需要各SELECT查询的字段数量一样,即每个SELECT查询的字段列表(数量、类型)应一致,因为结果中的字段名以第一名SELECT语句为准。
(2)子查询
子查询需用括号括起来
1 FROM型
FROM后要求是一个表,必须给子查询结果取个别名,以简化每个查询内的条件:
SELECT * FROM (SELECT * FROM tb WHERE id>0) AS subform WHERE id>1;
2WHERE型
子查询返回一个值,不需要给子查询取别名
SELECT * FROM tb WHERE money =(SELECT MAX(money) FROM tb);
3 列子查询
列子查询使用IN或NOT IN子查询,查询结果返回单列。
使用EXISTS和NOT EXISTS条件,返回1或0,常用于判断条件:
SELECT column1 FROM t1 WHERE EXISTS (SELECT * FROM t2);
(3)JOIN连接查询
JOIN连接查询就是内连接,可省略INNER。只有数据存在时才能发送连接请求,即链接结果不能出现空行,ON表示链接条件,其条件表达式于WHERE类似。
2 交叉链接(CROSS JOIN)
交叉连接是没有条件的内连接
SELECT * FROM tb1 CROSS JOIN tb2;
3 外连接(OUTER JOIN)
即使数据不存在,外连接也会出现在联结结果中。包括:左外连接(LEFTOUTER JOIN),即如果谁不存在,坐标记录会出现,而右边以NULL填充;右外连接(RIGHT OUTER JOIN),即如果数据不存在,游标记录会出现,而左表以NULL填充

8存储过程

(1)创建存储过程
CREATE PROCEDURE 过程名 ([过程参数[,...]])
[特性]
存储过程体
存储过程的流程控制语句,包括以下几种
1 IF条件语句
IF 条件 THEN 语句列表
        [ELSEIF 条件 TEHN 语句列表]
        [ELSE 语句列表]
END IF;
2 CASE条件语句
CASE条件语句可以通过以下两种语法实现。
CASE
        WHEN 条件 THEN 语句列表
        [WHEN 条件 THEN 语句列表]
        [ELSE 语句列表]
END CASE

或者

CASE 列名
        WHEN 条件值 THEN 语句列表
        [WHEN 条件值 THEN 语句列表]
        [ELSE 语句列表]
END CASE
3 LOOP循环语句
[begin_label:]LOOP
语句列表
END LOOP [end_label];
4 WHILE循环语句
[begin_label:]WHILE 条件 DO
语句列表
END WHILE [END_label]
5 repeat循环语句
[begin_label:]REPEAT
语句列表
UNTIL 条件
END REPEAT [end_lable]
6 迭代语句 ITERATE label
(2)查看存储状态
1 查看状态
SHOW PROCEDURE STATUS;
2查看创建代码
SHOW CREATE PROCEDURE 存储过程名;
(3)修改存储过程
ALTER PROCEDURE 存储过程名 [特性]
ALTER关键字只能修改存储过程的属性。
(4)删除存储过程
DROP PROCEDURE;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值