MySQL--操作和函数

数据库分类

关系型数据库

  • (MySQL,Oracle,Sql Server)
  • 通过表和表之间,行和列之间的关系进行数据的存储

非关系型数据库

  • (Redis,MongDB)
  • 对象存储,通过对象的自身属性来决定

数据库语言 CRUD

DDL 定义
DML 操作
DQL 查询
DCL 控制

操作数据库

[]内为可写,可不写
1、创建

CREATE  DATABASE  [IF NOT EXISTS] firstTable

2、删除

DROP DATABASE [IF EXISTS] firstTable

3、使用
在这里插入图片描述

USE secondTable

4、查看

SHOW firstTable
SHOW DATABASE
数据库的列类型

数值

  • tinyint 十分小的数据 1个字节
  • smallint 较小的数据 2个字节
  • mediumint 中等大小的数据 3个字节
  • int 标准的整数 4个字节
  • bigint 较大的数据 8个字节
  • float 浮点数 4个字节
  • double 浮点数 8个字节 (精度问题)
  • decimal 字符串形式的浮点数 (金融计算)

字符串

  • char 字符串固定大小的 0~255
  • varchar 可变字符串 0~65535 常用的 String
  • tinytext 微型文本 2^8-1
  • text 文本串 2^16-1 保存大文本

时间日期

java.util.Date

  • date YYYY-MM-DD, 日期格式
  • time HH:mm:ss 时间格式
  • datetime YYYY-MM-DD HH:mm:ss 最常用的时间格式
  • timestamp 时间戳,1970.1.1到现在的毫秒数,也较为常用
  • year 年份表示

null

  • 没有值,未知
  • 注意,不要使用NULL进行运算,结果为NULL
数据库的字段属性

Unsigned

  • 无符号的整数
  • 声明了该列不能声明为负数

zerofill

  • 0填充的
  • 不足的位数,使用0来填充,int(3), 5—005

自增

  • 通常理解为自增,自动在上一条记录的基础上+1(默认)
  • 通常用来设计唯一的主键~index,必须是整数类型
  • 可以自定义设计主键自增的起始值和步长

非空 NULL not null

  • 假设设置为 not null ,如果不给他赋值,就会报错
  • NULL ,如果不填写值,默认就是null

默认

  • 设置默认值
  • sex,默认值为男,如果不指定该列的值,则会有默认的值

操作表

1、创建数据库表
AUTO_INCREMENT 自增
PRIMARY KEY 主键,一般一个表只有一个唯一的主键

--创建表student
CREATE TABLE IF NOT EXISTS `student`(
	`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
	`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
	`sex` VARCHAR(2) NOT NULL DEFAULT '女' COMMENT '性别',
	`address` VARCHAR(100) DEFAULT NULL COMMENT '住址',
	PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8

在这里插入图片描述
在这里插入图片描述
数据表的类型
INNODB 默认使用~
MYISAM 早些年用
在这里插入图片描述
2、修改和删除表

修改

change用来字段重命名,不能修改字段类型或约束
modify不能用来重命名字段,只能修改字段类型和约束

--修改表名:
ALTER TABLE student RENAME AS studentNew
--增加表的字段:
ALTER TABLE studentNew ADD age INT(11)
--修改表的字段(重命名,修改约束)
ALTER TABLE studentNew MODIFY age VARCHAR(11)
ALTER TABLE studentNew CHANGE age ageNew INT(1)
--删除表的字段
ALTER TABLE studentNew DROP ageNew

删除

--删除表
DROP TABLE IF EXISTS studentNew

操作表

外键

创建表的时候没有外键关系

ALTER TABLE `student`
ADD CONDTRAINT `FK_gradeid` FOREIGN KEY(`gradeid`) REFERENCES `grade`(`gradeid`);

在这里插入图片描述
创建表的时候添加外键约束
在这里插入图片描述
在这里插入图片描述
数据库的意义:数据存储,数据管理

DML语言:数据库操作语言
1、添加:insert
INSERT INTO `student`(`name`) VALUES('张三'),('李四')
INSERT INTO `student`(`name`,`pwd`,`sex`)VALUES('张三','a123456','男')
INSERT INTO `student`(`name`,`pwd`,`sex`)VALUES('张三','a123456','男'),('lisi','222222','男')

在这里插入图片描述

2、修改:update
--修改学员名字,带了简介
UPDATE `student` SET `name`='tt' WHERER id=1
--不指定条件的情况下,会改动所有的表
UPDATE `student` SET `name`='ttttt'
--修改多个属性,逗号隔开
UPDATE `student` SET `name`='tt',email='208743678326@qq.com' WHERER id=1
--通过多个条件定位数据
UPDATE `student` SET `name`='ttttt' WHERE `name`='llll' AND sex=``

在这里插入图片描述

3、删除:delete
--删除数据(避免这样写,会全部删除)
DELETE FROM `student`
--删除指定数据
DELETE FROM `student`WHERE id =1

TRUNCATE命令
作用:完全清空一个数据库表,表的结构与索引不变

--清空student表
TRUNCATE `student`

delete和TRUNCATE区别

  • 相同点:都能删除数据,都不会删除表结构
  • 不同:
    - TRUNCATE 重新设置,自增列,计数器会归零
    - TRUNCATE 不会影响事务
DQL(Data Query Language)语言:查询数据
--查询全部
SELECT * FROM student
--查询指定字段
SELECT `name`,`sex` FROM student
--别名,给结果起一个名字 AS 可以给字段起别名,也可以给表起别名
SELECT `StudentNo` AS 学号,`StudentName` AS 学生姓名 FROM student AS s
--函数Concat(a,b)拼接查询结果
SELECT CONCAT('姓名:',StudentName) AS 新名字 FROM student

在这里插入图片描述

查询去重
SELECT DISTINCT `StudentNo`FROM result

数据库的列(表达式)
在这里插入图片描述

Where子句之逻辑运算符

在这里插入图片描述

在这里插入图片描述

模糊查询运算符

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

联表查询JoinON

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

分页和排序

以下语法顺序不能颠倒
在这里插入图片描述
分页limit
排序order by
升序ASC,降序DESC

子查询和嵌套查询
子查询

本质:在where语句中嵌套一个子查询语句
where (select * from)

在这里插入图片描述

MySQL函数
常用函数

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

聚合函数
函数名称描述
COUNT()计数
SUM()求和
AVG()平均值
MAX()最大值
MIN()最小值

在这里插入图片描述

在这里插入图片描述

拓展之数据库级别的MD

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值