MYSQL高级查询

以shool数据库的demo为例:
#切换数据库
USE school;
#创建测试表
CREATE TABLE demo(
id INT(4) NOT NULL,
name VARCHAR(20)
) ;

一、修改表的语法

修改表名

ALTER TABLE 旧表名 RENAME [TO] 新表名;
在这里插入图片描述

添加字段

ALTER TABLE 表名 ADD 字段名 数据类型 [属性];

  • 如果表中已经存在数据则添加的列不可以有非空约束 (not null)在这里插入图片描述查看表格结构
    DESC demo1;

修改字段

ALTER TABLE 表名 CHANGE 原字段名 新字段名 数据类型 [属性];
在这里插入图片描述

删除字段

ALTER TABLE 表名 DROP 字段名;
在这里插入图片描述

添加主键

  • 语法:
    ALTER TABLE 表名 ADD CONSTRAINT 主键名
    PRIMARY KEY 表名(主键字段);

例题:

如何设置school表中demo字段为主键?

ALTER TABLE demo1 ADD CONSTRAINT pk_demo1_id PRIMARY KEY demo1(id);

添加外键

条件 :

1.外键在从表上创建
2.创建外键时 表里面不可以有数据
3.外键对于两张表关联的列所有特性必须完全一致,但是列名可以不相同
4.创建外键后两张表的增删改功能会被关联
5.删除主表数据必须先删除从表数据

ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY(外键字段) REFERENCES 关联表名(关联字段);

例题:

添加外键:学生和年级
在这里插入图片描述

DML:数据库

语法:

INSERT INTO 表名 [(字段名列表)] VALUES (值列表)

注意:

  1. 字段名是可选的,如省略则依次插入所有字段
  2. 多个列表和多个值之间使用逗号分隔
  3. 值列表和字段名列表一一对应
  4. 如插入的是表中部分数据,字段名列表必填

快速复制表

  1. 复制表的结构和数据
    在这里插入图片描述
  2. 只复制表的结构
    3.

增加:

插入单条记录: 语法:INSERT INTO 表名 [(字段名列表)] VALUES (值列表);
插入多条数据记录: 语法:INSERT INTO 新表(字段名列表) VALUES(值列表1),(值列表2),……,(值列表n);

例:
在这里插入图片描述

在这里插入图片描述

修改

语法:
UPDATE 表名
SET 字段1=值1,字段2=值2,…,字段n=值n
[WHERE 条件];
在这里插入图片描述

删除

语法:

  1. DELETE FROM 表名 [WHERE条件];
  2. TRUNCATE TABLE 表名;

在这里插入图片描述

DQL:散户局查询语言

  1. select 查询内容 from 表名
  2. where 查询条件
  3. group by 分组依据
  4. order by 排序依据 desc/asc
  5. limit 起始行的下标,返回的行数

例题:
在这里插入图片描述

聚合函数

函数名作用
AVG()返回某字段的平均值
COUNT()返回某字段的行数
MAX()返回某字段的最大值
MIN()返回某字段的最小值
SUM()返回某字段的和

limit子句

返回固定行数的数据 limit 起始行下标 ,行数 下标是从0开始的行的

在这里插入图片描述

日期函数

#获取年月日信息
SELECT CURDATE();
#获取时分秒信息
SELECT CURTIME();
#获取详细的时间和日期信息
SELECT NOW();
#获取某个时间是一年中的第几周
SELECT WEEK(NEW());
#计算两个时间之间间隔的天数
SELECT DATEDIFF(NOW(),‘1997-11-27’);
#推算日期
SELECT ADDDATE(NOW(),1000);

属性函数

#向上取整
SELECT CEIL(24.1);
#向下取整
SELECT FLOOR(24.1);
#随机数 0-1
SELECT RAND();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值