数据库
首页 > 数据库> > MySQL使用(二)

MySQL使用(二)

作者:互联网

MySQL使用(二)

数据库的字段类型

数值

字符串

时间日期

null

数据库的字段属性

创建数据库表

CREATE TABLE IF NOT EXISTS `student` (
	`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
	`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
	`pwd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',
	`sex` VARCHAR(2) NOT NULL DEFAULT '女' COMMENT '性别',
	`birthday` DATETIME DEFAULT NULL COMMENT '出生日期',
	`address` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址',
	`email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
	PRIMARY KEY (`id`) 
)ENGINE=INNODB DEFAULT CHARSET=utf8

数据库引擎

引擎 MYSIAM INNODB
事务支持 不支持 支持
数据行锁定 不支持 支持
外键约束 不支持 支持
全文索引 支持 不支持
表空间大小 较小 较大,约为2倍

在物理文件上的区别:

字符集编码

修改和删除数据表字段

修改表

外键

DML操作数据

DQL查询数据(重要)

基本语法

SELECT [ALL | DISTINCT]
{* | table.* | [table.field[as alias1][,table.field2[as alias2]][,...]]}
FROM table_name [as table_alias]
[LEFT | RIGHT | INNER JOIN table_name2] -- 联合查询
[WHERE ...] -- 指定结果需满足的条件
[GROUP BY ...] -- 指定结果按照哪几个字段来分组
[HAVING] -- 过滤分组的记录必须满足的次要条件
[ORDER BY] -- 指定查询记录按一个或多个条件排序
[LIMIT {[offset,]row_count | row_countOFFSET offset}];

联表查询:join

img

思路:

  1. 分析需求,分析查询的字段来自哪些表
  2. 确定使用哪种连接查询
  3. 确定交叉点(这两个表中哪个数据时相同的)

举例:

SELECT s.`studentno`,`studentname`,`subjectname`,`studentresult`
FROM `student` s
RIGHT JOIN `result` r
ON r.`studentno` = s.`studentno`
INNER JOIN `subject` sub
ON r.`subjectno` = sub.`subjectno`

自链接

举例:

categoryid pid categoryname
2 1 信息技术
3 1 软件开发
4 3 数据库
5 1 美术设计
6 3 web开发
7 5 ps技术
8 2 办公信息
SELECT a.`categoryName` AS '父栏目',b.`categoryname` AS '子栏目'
FROM `category` AS a,`category` AS b
WHERE a.`categoryid` = b.`pid`
父栏目 子栏目
软件开发 数据库
软件开发 web开发
美术设计 ps技术
信息技术 办公信息

排序

分页

子查询

分组过滤

例子:

SELECT subjectname,AVG(studentresult) AS 平均分,MAX(studentresult),MIN(studentresult)
FROM result r
INNER JOIN `subject` sub
ON r.`subjectno`=sub.`subjectno`
GROUP BY r.subjectno
HAVING 平均分>80

MySQL函数

常用函数

聚合函数

标签:...,gradeid,表名,查询,使用,MySQL,TABLE,null
来源: https://www.cnblogs.com/xiafrog/p/14321966.html