数据库的高级查询

本文介绍了MySQL数据库的高级查询技巧,包括修改表名、添加和删除字段、设置主外键、查看表结构以及插入数据的方法。此外,还详细讲解了日期时间函数的使用,如获取当前日期、时间、相差天数等。
摘要由CSDN通过智能技术生成

MySQL(高级查询)

1.建表
CREATE TABLE student(
studentNo INT(4) NOT NULL COMMENT '学号’PRIMARY KEY,
loginPwd VARCHAR(20) NOT NULL COMMENT ‘密码’,
studentName VARCHAR(50) NOT NULL COMMENT ‘姓名’,
sex CHAR(2) NOT NULL COMMENT ‘性别’ DEFAULT ‘男’,
gradeID INT(4) UNSIGNED COMMENT ‘年级编号’,
phone VARCHAR(50) COMMENT ‘电话’,
address VARCHAR(255) DEFAULT ‘地址不详’ COMMENT ‘地址’,
bornDate DATETIME COMMENT ‘出生日期’,
email VARCHAR(50) COMMENT ‘邮箱账号’,
identityCard VARCHAR(18) UNIQUE KEY COMMENT ‘身份证号’
) COMMENT=“学生表”; #表注释"学生表"

2.查看表结构
DESC student

ALter table
修改表

修改表名 alter table 旧表名 rename 新表名3333

ALTER TABLE demo01 RENAME demo02;
添加字段

添加字端 alter table 表名 add字段 类型 属性

ALTER TABLE demo02 ADD address VARCHAR(10) NOT NULL;
修改字段

修改字段 alter table 表名 change旧字段 新字段 类型 属性

ALTER TABLE demo02 CHANGE NAME username VARCHAR(20) NOT NULL;
删除字段

删除字段 alter table 表名 drop 字段

ALTER TABLE demo02 DROP address;

添加主外键

添加主键:alter table 表名 add constraint 主键名 primary key 表名(字段)

ALTER TABLE grade ADD CONSTRAINT pk_GradeID PRIMARY KEY grade(GradeId);

如何将student表的gradeId字段和grade表的gradeId字段建立外键关联

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

ALTER TABLE student ADD CONSTRAINT stu_gradeId FOREIGN KEY(gradeID) REFERENCES grade(gradeId);

查看表的定义(结构)

DESC student;

插入数据记录
插入单行
INSERT INTO 表名称 (列1, 列2,…) VALUES (值1, 值2,…)
插入多行
INSERT INTO 表名称 (列1, 列2,…) VALUES (值1, 值2,…),(值1, 值2,…),(值1, 值2,…)…

将查询的数据存放到新表中:

第1种,表事先创建:insert into 新表(字段1,字段2,…) SELECT 字段1,字段2,… from 原表

INSERT INTO stuaddress(StuName,StuAddress) SELECT studentName,address FROM student
SELECT * FROM stuaddress

第2中,表临时创建:create table 新表(SELECT 字段1,字段2,… from 原表)

CREATE TABLE stuAddressTemp(SELECT studentname,phone,address FROM student)

日期函数

时间日期函数

获取 当前日期 CURDATE() 2021-03-02

SELECT CURDATE()

获取 当前时间 14:46:36

SELECT CURTIME()-++

获取日期和时间 2021-03-02 14:47:31

SELECT NOW()

获取日期所在的周数(第几周)

SELECT WEEK(‘1998-02-20’)

获取日期中的年份

SELECT YEAR(‘2000-01-01’) AS 那一年

获取时间中的小时

SELECT HOUR(NOW())

获取时间中的分钟

SELECT MINUTE(NOW())

获取两个日期相差的天数 DATEDIFF(date1,date2) date1减date2

回顾 SQL SERVER中对应的语法DateDiff(DD,date1,date2) date2减date1

DD这里表示天数,MM表示月份,YY表示年

SELECT DATEDIFF(NOW(),‘2011-03-02’) AS 两个日期相差的天数

date加上n天后的日期 ADDDATE(date,n)

SELECT ADDDATE(NOW(),5)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值