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 |
+-----------+---------------+--------------+
上一篇下一篇

猜你喜欢

热点阅读