类型
较少文本:
-
CHAR
存储定长数据,需要定义长度 -
VARCHAR
存储变长数据,需要在括号里定义长度,存储效率没char
高
- 字母、数字、标点符号 占用一个字节
- 中文占用三个字节
- 知道固定长度用
char
,经常变化用varchar
- 超过255字节用
varchar
或者text
较长文本:
-
TEXT
保存字符串文本 -
BLOB
保存二进制文本
日期:
-
DATATIME
YYYY-MM-DD HH:MM:SS -
DATASTAMP
时间戳 YYYYMMDD HHMMSS
常用语句
1. 插入INSERT
- 多行用
INSERT INTO
table_name ( field1, field2,...fieldN )VALUES
( value1, value2,...valueN ), ( value1, value2,...valueN ); - 单行用
value
2. 查询SELECT
-
SELECT
column_name,column_nameFROM
table_name
WHERE
condition
LIMIT
N; -
SELECT * from
table_nameWHERE
column_name = '菜鸟教程';
3. WHERE
-
WHERE
condition1AND
/OR
condition2..... -
WHERE
column_name =(SELECT MAX(
column_name) FROM
table_name
4. 更新UPDATE
UPDATE
table_name SET
field1=new-value1, field2=new-value2
WHERE
condition;
5. 删除表中数据
DELETE FROM
table_name WHERE
condition;
6.LIKE
SELECT * from
table_name WHERE
column_name LIKE
'%
COM';
获取表中column_name字段中以com结尾的记录
7. UNION - 连接SELECT语句
SELECT
country FROM
table_name1
UNION
/ UNION ALL
SELECT
country FROM
table_name2
ORDER BY
country;
SELECT
column1, column2 FROM
table_name1 WHERE
conditions
UNION
/ UNION ALL
SELECT
column1, column2 FROM
table_name2 WHERE
conditions
ORDER BY
column_name;
-
UNION
语句:用于将不同表中相同列中查询的数据展示出来;(不包括重复数据) -
UNION ALL
语句:用于将不同表中相同列中查询的数据展示出来;(包括重复数据)
菜鸟教程
8. 连接JOIN
-
INNER JOIN
(内连接,或等值连接):获取两个表中字段匹配关系的记录。 -
LEFT JOIN
(左连接):获取左表所有记录,即使右表没有对应匹配的记录。 -
RIGHT JOIN
(右连接): 与LEFT JOIN
相反,用于获取右表所有记录,即使左表没有对应匹配的记录
left join
SELECT
a.column_name, b.column_name
FROM
table_name1AS
a
LEFT JOIN
table_name2AS
b
ON
a.column_x_name = b.column_x_name;
9. 排序 OEDER BY
-
SELECT * from
table_nameORDER BY
column_nameASC
; -
SELECT * from
table_nameORDER BY
column_nameDESC
;
10. 分组 GROUP BY
GROUP BY
语句根据一个或多个列对结果集进行分组。- 在分组的列上我们可以使用
COUNT
,SUM
,AVG
,等函数。
- 使用
GROUP BY
语句 将数据表按名字进行分组,并统计每个人有多少条记录:
SELECT
column_name1,COUNT(*)
AS
column_name2
FROM
table_name
GROUP BY
column_name; -
WITH ROLLUP
可以实现在分组统计数据基础上再进行相同的统计(SUM
,AVG
,COUNT
…)。
例如我们按名字进行分组,再统计每个人登录的次数:
SELECT
column_name1,SUM
(记录登陆次数的列)AS
column_singinCount
FROM
table_name
GROUP BY
column_singinCount
WITH ROLLUP
;
菜鸟教程 -
HAVING
后接条件判断 #条件判断的字段必须是聚合函数返回的结果
SELECT
dept,COUNT
(user_name)AS
count_tmpFROM
table_nameGROUP BY
deptHAVING
count_tmp>1;
网友评论