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)
、