MySQL数据库中存储引擎和数据类型
2018-08-21 本文已影响12人
Torin76
一.什么是存储引擎
二.操作存储引擎
-
查看存储引擎
1.查看mysql支持的存储引擎
show engines;
2.看你的mysql当前默认的存储引擎
show variables like '%storage_engine%';
3.查看某个表使用的存储引擎
show create table 表名
show create table newpersonTable;
4.查看mysql服务器上的版本
select version();
5.在表上插入数据
-- 插入完整的数据记录
INSERT INTO test01 VALUES(103,'赵云'),(105,'关羽'),(106,'刘备')
-- 指定字段插入
INSERT INTO test01 (cID,`name`) VALUES(104,'张飞')
把一张一样结构的表的数据插入到另外一张相同结构的表中,先创建一张表,再把 test01表中的数据插入到test02
CREATE TABLE test02(
cID INT(11) NOT NULL,
name VARCHAR(20) DEFAULT NULL);
INSERT INTO test02 SELECT * FROM test01
6.数据的简单查询
-- 简单的数据查询
SELECT * FROM student
-- 指定字段名
SELECT age,stu_name FROM student
-- as 作为别名 as 也可以省略
SELECT age as '年龄',stu_name as '姓名' FROM student
7.避免重复数据查询distinct
-- 去重查询
SELECT DISTINCT age,stu_name FROM student
8.实现四则运算查询
-- 四则运算查询
SELECT age+10,stu_name FROM student
9.concat 格式化查询
-- 格式化
SELECT CONCAT('名字为',stu_name,'年龄是',age) FROM student
输出结果:
名字为san年龄是12
名字为san2年龄是13
名字为san年龄是13
名字为san2年龄是12
名字为san年龄是12
9.where 条件
<1>.运算符
--where条件查询
SELECT * FROM student WHERE age>12
SELECT *FROM student WHERE sex = '男' AND age>=13
SELECT *FROM student WHERE salary BETWEEN 2000 AND 4000
<2>带Null值的查询
SELECT *FROM student WHERE number_id IS NULL
<3>带IN关键字集合查询
SELECT *FROM student WHERE salary in (1000,1500,3000)
<4>带like关键字模糊查询
“_”通配符,该通配符值能匹配单个字符
“%”通配符,该通配符值可以匹配任意个数的字符
SELECT *FROM student WHERE stu_name like '李_'
SELECT *FROM student WHERE stu_name LIKE '李%'
输出结果分别为:
5 李微 1 男 12 17673043786 10000.00
4 李飞刀 1 男 12 17673043786 3500.00
5 李微 1 男 12 17673043786 10000.00
<5>ORDER BY语句查询
你可以使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升排列。
--升序
SELECT *FROM student ORDER BY salary ASC
--降序
SELECT *FROM student ORDER BY salary DESC
10.统计函数
<1>count : image.png-- 利用该函数计算月薪大于等于10000的学生个数
SELECT COUNT(salary) '薪资' FROM student WHERE salary>=10000
<2>AVG:平均值
-- 平均值
SELECT AVG(salary) '平均薪资' FROM student WHERE salary > 3000
<3>SUM:统计计算求和
-- 统计计算求和
SELECT SUM(salary) '薪水总和' FROM student
<4>MAX,MIN最大值最小值
-- 统计最大值和最小值
SELECT MAX(salary) '最高工资',MIN(salary) '最低工资',SUM(salary) '薪水总和' FROM student
11.简单分组查询
--分组数据查询,和统计函数一起配合使用
SELECT '学生姓名',COUNT(*) FROM student GROUP BY stu_name
12.连接的使用
在前面我们已经学会了如果在一张表中读取数据,这是相对简单的,但是真正的应用中经常需要从多个数据表中读取数据,下面我们来一起学习如何使用JOIN来联合夺标查询.首先创建两张
表一:runoob_tbl
+-----------+--------------+---------------+---------------------+
| runoob_id | runoob_title | runoob_author | submission_date |
+-----------+--------------+---------------+---------------------+
| 1 | 学习 PHP | Torin学院 | 2017-04-12 00:00:00 |
| 2 | 学习MySQL | Torin学院 | 2017-04-12 00:00:00 |
| 3 | 学习 Java | RUNOOB.COM | 2015-05-01 00:00:00 |
| 4 | 学习Python | RUNOOB.COM | 2016-03-06 00:00:00 |
| 5 | 学习C | FK | 2017-04-05 00:00:00 |
+-----------+--------------+---------------+---------------------+
表二:tcount_tbl
+---------------+--------------+
| runoob_author | runoob_count |
+---------------+--------------+
| Torin学院 | 10 |
| RUNOOB.COM | 20 |
| Google | 22 |
+---------------+--------------+
<1> INNER JOIN
SELECT a.runoob_id,a.runoob_author,b.runoob_count FROM runoob_tbl a INNER JOIN tcount_tbl b ON a.runoob_author = b.runoob_author;
输出如下:
+-----------+---------------+--------------+
| runoob_id | runoob_author | runoob_count |
+-----------+---------------+--------------+
| 1 | Torin学院 | 10 |
| 2 | Torin学院 | 10 |
| 3 | RUNOOB.COM | 20 |
| 4 | RUNOOB.COM | 20 |
+-----------+---------------+--------------+
<2>LEFT JOIN
SELECT a.runoob_id,a.runoob_author,b.runoob_count FROM runoob_tbl a LEFT JOIN tcount_tbl b ON a.runoob_author = b.runoob_autho;r
输出如下:
+-----------+---------------+--------------+
| runoob_id | runoob_author | runoob_count |
+-----------+---------------+--------------+
| 1 | Torin学院 | 10 |
| 2 | Torin学院 | 10 |
| 3 | RUNOOB.COM | 20 |
| 4 | RUNOOB.COM | 20 |
| 5 | FK | NULL |
+-----------+---------------+--------------+
<3> RIGHT JOIN
SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a RIGHT JOIN tcount_tbl b ON a.runoob_author = b.runoob_author
输出如下:
+-----------+---------------+--------------+
| runoob_id | runoob_author | runoob_count |
+-----------+---------------+--------------+
| 1 | Torin学院 | 10 |
| 2 | Torin学院 | 10 |
| 3 | RUNOOB.COM | 20 |
| 4 | RUNOOB.COM | 20 |
| NULL | NULL | 22 |
+-----------+---------------+--------------+