MySQL操作基本命令
启动/关闭数据库服务以及登录数据库:
启动数据库服务:NET START mysql57
关闭数据库服务: NET STOP mysql57
Mysql –h localhost –P 3308 –u root –proot -D database_name
一、数据库操作:
(1)显示数据库:SHOW DATABASES;
(2)选择数据库:USE database;
(3)创建数据库:CREATE DATABASE database_name
二、数据表操作:
(1)显示数据表:SHOW TABLES;
(2)创建数据表:
CREATE TABLE table_name(
属性名 数据类型,
属性名 数据类型,
.
属性名 数据类型
);
(3)查看表结构:DESCRIBE table_name
(4)查看表详细定义:SHOW CREATE TABLE table_name \G
(5)删除表:DROP TABLE table_name
(6)修改表:
1.修改表名:ALTER TABLE old_table_name RENAME [TO] new_talbe_name;
2.增加字段到最后一行:ALTER TABLE table_name ADD 属性名 属性类型;
3.增加字段到第一行:ALTER TABLE table_name ADD 属性名 属性类型 FIRST;
4.指定字段之后增加字段:ALTER TABLE table_name ADD 属性名 属性类型 AFTER 指定属性名
5.删除字段:ALTER TABLE table_name DROP 属性名
6.修改字段数据类型:ALETE TABLE table_name MODIFY 属性名 数据类型
7.修改字段名字:ALETE TABLE table_name CHANGE 旧属性名 新属性名 旧数据类型
8.同时修改字段的名字和属性:ALETE TABLE table_name CHANGE 旧属性名 新属性名 新数据类型
9.修改字段顺序:ALETE TABLE table_name MODIFY 数据名1 数据类型 FIRST|AFTER 属性名2
三、操作表约束:
(1)设置非空约束:NOT NULL
CREATE TABLE table_name (
属性名 数据类型 NOT NULL,
属性名 数据类型 NOT NULL
);
(2)设置字段的默认值:
CREATE TABLE table_name (
属性名 数据类型 DEFAULT 默认值,
属性名 数据类型 DEFAULT 默认值
);
(3)设置唯一约束:
CREATE TABLE table_name (
属性名 数据类型 UNIQUE
)
(4)设置单字段主键约束:
CREATE TABLE table_name (
属性名 数据类型 PRIMARY KEY
)
(5)设置多字段主键约束:
CREATE TABLE table_name (
属性名 数据类型,
……..
CONSTRAINT 约束名 PRIMARY KEY (属性名,属性名…….)
)
(6)设置自动增加字段:
CREATE TABLE table_name (
属性名 数据类型 AUTO_INCREMENT
);
(7)设置外键约束:
CREATE TABLE table_name (
属性名 数据类型,
属性名 数据类型,
CONSTRAINT 外键约束名 FOREIGN KEY(属性名1)
REFERENCES 表明 (属性名2)
)
四、数据的操作:
(1)插入数据:
(1)插入完整的数据记录:INSERT INTO table_name (field1, field2, field3……)
VALUES (value1, value2, value3…….);
INSERT INTO table_name VALUES (value1, value2, value3……)
(2)插入数据记录的一部分:INSERT INTO table_name (field1, field2, field3……)
VALUES(value1, value2, value3…….)
(3)插入多行数据记录:INSERT INTO table_name (field1, field2, field3, field4…....) VALUES
(value1, value2, value3, value4……),
(value1, value2, value3, value4……),
(value1, value2, value3, value4……);
INSERT INTO table_name VALUES
(value1, value2, value3, value4……),
(value1, value2, value3, value4……),
(value1, value2, value3, value4……);
(4)插入查询结果:INSERT INTO table_name (field,field…..)
SELECT field,field FROM table_name WHERE field = ?
(2)更新数据:
更新特定数据:UPDATA table_name SET field1=value1, field2=value2, field3=value3 WHERE CONDITION
(3)删除数据:
DELETE FROM table_name WHERE CONDITION;
五、单表数据查询:
1.简单数据记录查询
(1)简单数据查询:
查询所有字段:SELECT * FROM table_name;
查询指定字段:SELECT field FROM table_name;
(2)避免重复数据查询——DISTINCT: SELECT DISTINCT field1,field2 FROM table_name;
(3)实现数学四则运算查询:SELECT field*num FROM table_name;
(4)修改查询字段名字: SELECT field*num AS new_fieldname FROM table_name;
(5)设置显示格式数据查询:SELECT CONCAT (field1, ‘文本内容’,field2) AS new_fieldname FROM table_name
2.条件数据记录查询
MySQL支持的比较运算符
运算符 | 描述 |
> | 大于 |
< | 小于 |
= | 等于 |
!= | 不等于 |
>= | 大于等于 |
<= | 小于等于 |
MySQL支持的逻辑运算符
运算符 | 描述 |
AND(&&) | 逻辑与 |
OR(||) | 逻辑或 |
XOR | 逻辑异或 |
NOT(!) | 逻辑非 |
(6)条件数据记录查询:SELECT * FROM table_name WHERE CONDITION;
单条件数据查询:SELECT * FROM table_name WHERE CONDITION
多条件数据查询:SELECT * FROM table_name WHERE CONDITION && CONDITION
带BETWEEN AND关键字范围查询:SELECT * FROM table_name WHERE field BETWEEN num1 AND num2
不符合范围的数据记录查询:SELECT * FROM table_name WHERE field NOT BETWEEN num1 AND num2
空值数据记录查询:SELECT * FROM table_name WHERE field IS NULL;
非空值数据记录查询:SELECT * FROM table_name WHERE field IS NOT NULL;
在集合中数据记录查询:SELECT * FROM table_name WHERE field IN (values1, values2, values3);
不在集合中数据记录查询 : SELECT * FROM table_name WHERE field NOT IN (values1, values2,values3);
IN使用注意事项:如果集合中存在null,对于IN没有任何影响,但是对于NOT IN 查询出来将会为空。
LIKE关键字查询:SELECT * FROM table_name WHERE field LIKE value
说明:通配符“_”,能匹配单个字符
通配符“%”,能匹配任意长度字符
通配符“%%”,匹配所有的字段
通配符“%”查询:SELECT * FROM table_name WHERE field LIKE ‘a%’
通配符“_”查询:SELECT * FROM table_name WHERE field LIKE ‘_a%’
LIKE查询非关键字:SELECT * FROM table_name WHERE field NOT LIKE ‘_a%’
LIKE查询所有记录:SELECT * FROM table_name WHERE field LIKE ‘%%’
4.排序数据记录查询
(1)关键字说明:
ASC:表示按升序的升序排序(默认方式)
DESC:表示按照降序的顺序进行排序
ORDER BY:后面可以设置多个不同的字段进行排序
(2)单字段排序
1.升序排序:SELECT * FROM table_name ORDER BY field ASC;
2.降序排序:SELECT * FROM table_name ORDER BY field DESC;
(3)多字段排序
说明:当按照第一个字段进行排序的时候出现字段的值相同时则会按照第二个字段进行排序,以此类推。
多字段排序:SELECT * FROM table_name ORDER BY field1 DESC, field2 ASC;
5.限制数据记录查询数量
LIMIT参数说明:
OFFSET_START:表示数据记录的起始偏移量
ROW_COUNT:表示显示的行数
(1)不指定初始位置:SELECT * FROM table_name LIMIT ROW_COUNT;
(2)指定初始位置:SELECT * FROM table_name LIMIT OFFSET_START, ROW_COUNT;
6.统计函数和分组数据记录查询
函数说明:
COUNT():该函数实现统计表中记录的平均值
AVG():该函数实现计算字段值的平均值
SUM():该函数实现计算字段值的总和
MAX():该统计函数实现查询字段值的最大值
MIN():该统计函数实现查询字段值的最小值
GROUP_CONCAT():该函数可以实现显示每个分组中指定的字段值。
如果表中没有记录,那么COUNT()函数返回的值为0,而其他函数返回的值是NULL;
(1)COUNT():
COUNT(*):可以实现对表中记录进行统计,不管字段中包含的是null还是非null;
COUNT(field):可以实现对表中记录进行统计,在具体统计是忽略NULL;
例1:SELECT COUNT(*) FROM table_name;
例2:SELECT COUNT(field) FROM table_name;
(2)AVG():
说明:在使用此函数时自动忽略null;
SELECT AVG(field) FROM table_name;
(3)SUM():
SELECT SUM(field) FROM table_name;
(4)MAX()和MIN():
SELECT MAX(field), MIN(field) FROM table_name;
(5)分组数据查询——简单分组查询
SELECT field1(分类名),function(field2) FROM table_name GROUP BY field1;
(6)分组数据查询——实现统计功能分组查询
SELECT COUNT(field1),State,GROUP_CONCAT(field) FROM table_name GROUP BY field;
(7)分组数据查询——实现多个字段分组查询
SELECT GROUP_CONCAT(field),function(field) FROM talbe_name WHERE CONDITION GROUP BY field1, field2
(8)分组数据插叙——实现HAVING子句限定分组查询
SELECT function(field) FROM table_name WHERE CONDITION GROUP BY field1,field2 HAVING CONTITION;
六、多表数据记录查询:
1.关系数据操作:
(1)并(UNION):
新关系字段数:为表1或为表2字段数;
新关系数据记录:表1记录数 + 表2记录数
(2)笛卡尔积(CARTESIAN PRODUCT):
新关系的字段数为:表1字段数 + 表2字段数
新关系的记录数为:表1记录数 * 表2记录数
(3)内连接(INNER JOIN):
1.自然连接(NATURAL JOIN)
新关系字段数:表1(去除重复字段)+ 表2字段数
新关系记录数:表1记录数 * 表2记录数 – 两表不相同字段的值不相等记录数
2.等值连接
新关系字段数:表1字段数 + 表 2 字段数
新关系记录数:表1记录数 * 表2记录数 – 两表不相同字段的值不相等记录数
3.不等连接:
新关系字段数:表1字段数 + 表 2 字段数
新关系记录数:表1记录数 * 表2记录数 – 两表相同字段的值不相等记录数
(4)外连接(OUTER JOIN)
概念:所谓外连接就是在表关系的笛卡尔积数据记录中,不仅保留表关系中所有匹配的数据记录,而且还会保留部 分不匹配的数据记录。按照保留不匹配条件数据记录来源可以分为以下三种连接:
左外连接(LEFT OUTER JOIN)
概念:就是表关系的笛卡尔积中,除了选择相匹配的数据记录,还包含关联左边表中不匹配的数据记录。
新关系中字段数:表1字段数 + 表2字段数
新关系中记录数:表1记录数 + 表2记录数 – 两表相同字段不匹配的值不相等的记录数 + 左表中未匹配 记录数
右外连接(RIGHT OUTER JOIN)
概念:就是表关系的笛卡尔积中,除了选择相匹配的数据记录,还包含关联右边表中不匹配的数据记录。
新关系中字段数:表1字段数 + 表2字段数
新关系中记录数:表1记录数 + 表2记录数 – 两表相同字段不匹配的值不相等的记录数 + 右表中未匹配 记录数
全外连接(FULL OUTER JOIN)
概念:就是表关系的笛卡尔积中,除了选择相匹配的数据记录,还包含关联左右两边表中不匹配的数据记录。
新关系中字段数:表1字段数 + 表2字段数
新关系中记录数:表1记录数 + 表2记录数 – 两表相同字段不匹配的值不相等的记录数 + 左右两表中未 匹配记录数
================================================================================================
======================================后续补充===============================================
2.内连接查询:
自连接
等值连接
不等连接
3.外连接查询:
左外连接
右外连接
七、操作:
八、操作: