由于本人的水平有限,可能会有一些遗漏,希望大家能够进行补充。
语句:create database [IF NOT EXISTS] 数据库名;
示例:CREATE DATABASE abc;
语句:drop database 数据库名;
示例:DROP DATABASE abc;
语句:use 数据库名;
示例:use abc;
语句:show tables;
示例:use abc; show tables;
列类型 | 说明 |
---|---|
tinyint/smallint/mediumint/int/bigint | 1字节/2字节/3字节/4字节/8字节整数,又可分为有符号和无符号两种。这些整数类型的区别仅仅是表示数的范围不同。 |
float/double | 单精度、双精度浮点类型。 |
decimal(dec) | 精确小数类型,相对于float和double不会产生丢失精度的问题。 |
date | 日期类型,不能保存时间。 |
time | 时间类型,不能保存日期。 |
datetime | 日期、时间类型。 |
timestamp | 时间戳类型。 |
year | 年类型,仅仅保存时间的年份。 |
char | 定长字符串类型。 |
varchar | 可变长度字符串类型。 |
binary | 定长二进制字符串类型,它以二进制形式保存字符串。 |
varbinary | 可变长度的二进制字符串类型,它以二进制形式保存字符串。 |
tinyblob/blob/mediumblob/longblob | 1字节/2字节/3字节/4字节的二进制大对象,可用于存储图片,音乐等二进制数据,分别可存储:255B/64KB/16M/4GB的大小。 |
tinytext/text/mediumtext/longtext | 1字节/2字节/3字节/4字节的文本对象,可用于存储超长长度的字符串,分别可存储:255B/64KB/16M/4GB的大小的文本。 |
enum | 枚举类型。 |
set | 集合类型。 |
首先先创建数据库
CREATE DATABASE cjgl;USE cjgl;/*Table structure for table `course` */DROP TABLE IF EXISTS `course`;CREATE TABLE `course` (`courseID` char(8) NOT NULL,`coursename` varchar(20) NOT NULL,`totalperiod` tinyint(4) DEFAULT NULL,`weekperiod` tinyint(4) DEFAULT NULL,`credithour` tinyint(4) DEFAULT NULL,`remark` varchar(50) DEFAULT NULL,PRIMARY KEY (`courseID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;/*Data for the table `course` */insert into `course`(`courseID`,`coursename`,`totalperiod`,`weekperiod`,`credithour`,`remark`) values ('1','计算机网络',NULL,NULL,NULL,NULL),('2','计算机组成原理',NULL,NULL,NULL,NULL),('3','计算机操作系统',NULL,NULL,NULL,NULL),('4','数据结构',NULL,NULL,NULL,NULL);/*Table structure for table `courseteacher` */DROP TABLE IF EXISTS `courseteacher`;CREATE TABLE `courseteacher` (`courseID` char(8) NOT NULL,`teacherID` char(8) NOT NULL,PRIMARY KEY (`courseID`,`teacherID`),KEY `FK_CourseTeacher_Teacher` (`teacherID`),CONSTRAINT `FK_CourseTeacher_Course` FOREIGN KEY (`courseID`) REFERENCES `course` (`courseID`),CONSTRAINT `FK_CourseTeacher_Teacher` FOREIGN KEY (`teacherID`) REFERENCES `teacher` (`teacherID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;/*Data for the table `courseteacher` */insert into `courseteacher`(`courseID`,`teacherID`) values ('1','1'),('2','2'),('3','3'),('4','4');/*Table structure for table `grade` */DROP TABLE IF EXISTS `grade`;CREATE TABLE `grade` (`studentID` char(10) NOT NULL,`courseID` char(8) NOT NULL,`teacherID` char(8) NOT NULL,`grade` tinyint(4) DEFAULT NULL,PRIMARY KEY (`studentID`,`courseID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;/*Data for the table `grade` */insert into `grade`(`studentID`,`courseID`,`teacherID`,`grade`) values ('1','1','1',88),('1','2','2',90),('2','3','3',NULL),('3','3','3',78),('4','2','2',86),('6','4','4',90);/*Table structure for table `student` */DROP TABLE IF EXISTS `student`;CREATE TABLE `student` (`studentID` char(10) NOT NULL DEFAULT '',`studentName` varchar(10) NOT NULL,`sex` char(2) DEFAULT NULL,`birthday` datetime DEFAULT NULL,`speciality` varchar(30) DEFAULT NULL,`credithour` tinyint(4) NOT NULL,`ru_date` char(4) DEFAULT NULL,`password` varchar(20) DEFAULT NULL,`remark` varchar(200) DEFAULT NULL,`LoginName` char(20) DEFAULT NULL,PRIMARY KEY (`studentID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;/*Data for the table `student` */insert into `student`(`studentID`,`studentName`,`sex`,`birthday`,`speciality`,`credithour`,`ru_date`,`password`,`remark`,`LoginName`) values ('1','曾星宇','男','1998-08-09 00:00:00','计算机',22,NULL,'123456',NULL,NULL),('2','李兴','男','2002-08-05 00:00:00','数学',18,NULL,NULL,NULL,NULL),('3','张裕','女','1998-06-09 00:00:00','计算机',22,NULL,NULL,NULL,NULL),('4','张华','男','1996-12-12 00:00:00','化学',24,NULL,NULL,NULL,NULL),('5','姜丽','女','1997-09-08 00:00:00','化学',23,NULL,NULL,NULL,NULL),('6','孙悟空','男','1999-08-12 00:00:00','数学',21,NULL,NULL,NULL,NULL);/*Table structure for table `teacher` */DROP TABLE IF EXISTS `teacher`;CREATE TABLE `teacher` (`teacherID` char(8) NOT NULL,`teachername` varchar(10) NOT NULL,`sex` char(2) DEFAULT NULL,`technicalPost` char(16) DEFAULT NULL,`telephone` char(16) DEFAULT NULL,`PASSWORD` varchar(20) DEFAULT NULL,`remark` varchar(200) DEFAULT NULL,PRIMARY KEY (`teacherID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;/*Data for the table `teacher` */insert into `teacher`(`teacherID`,`teachername`,`sex`,`technicalPost`,`telephone`,`PASSWORD`,`remark`) values ('1','赵天宇','男',NULL,NULL,NULL,NULL),('2','苏北','男',NULL,NULL,NULL,NULL),('3','雪儿','女',NULL,NULL,NULL,NULL),('4','张佐恩','男',NULL,NULL,NULL,NULL);
语法:ALTER TABLE 表名 ADD (#列名 ,可以有多个列定义 )
例:在表student中新增一列登录名,列名为LoginName,数据类型为VARCHAR。
ALTER TABLE student ADD LoginName VARCHAR(20);
语法:ALTER TABLE 表名 MODIFY 列名 数据类型;
例:将LoginName的类型修改为char类型。
ALTER TABLE student
MODIFY LoginName CHAR(20) NULL;
语法:ALTER TABLE 表名 DROP 列名;
例:删除student中的LoginName列。
ALTER TABLE student
DROP LoginName;
语法:
INSERT INTO 表名 VALUES (value1, value2, value3,…)
或
INSERT INTO 表名 (column1, column2, column3,…) VALUES (value1, value2, value3,…)
例:向student表中插入数据
INSERT INTO student VALUES('1','曾星宇','男','1998-8-9','计算机',20,NULL,'123456',NULL,NULL);
语法:UPDTE 表名 set column1=value,column2=value,…
例1:在student表中将李兴的所属学院改为数学
UPDATE student SET speciality='数学' WHERE studentName='李兴';
例2:将所有计算机系学生的选课成绩加5分
UPDATE grade SET grade = grade+5
WHERE studentID IN(SELECT studentID FROM student WHERE speciality='计算机');
delete from 语句用于删除指定数据表的记录
语法:delete from 表名 【条件】
例:删除student表
DELETE FROM student;
语法:select column1,column2…
from 要查询的表
# 查询当前MySQL的版本信息
SELECT @@VERSION;
# 查询圆周率常数及其正弦、余弦值
SELECT PI();
SELECT SIN(5);
SELECT COS(5);
# 查询student表的信息
SELECT * FROM student;
# 查询所有学生的学号,姓名和年龄
SELECT studentID,studentName,sex FROM student;
语法:select column1,column2…
from 要查询的表
where 条件
例1:查询所有计算机学院的学生学号和姓名
SELECT studentID,studentName
FROM student
WHERE speciality='计算机';
例2:查询student表中所有年龄大于19岁的学生信息
SELECT *
FROM student
WHERE YEAR(CURDATE())-YEAR(birthday)>19;
拓展:MySQL中关于时间的函数
获得当前日期+时间(date + time)函数:NOW()
获得当前日期(date)函数:CURDATE()
YEAR()是获取其年份
当然这只是其中一些,如果还想了解更多可以查询相关的资料
例3:查询student表中所有男生或者年龄大于19岁的学生姓名和年龄
SELECT studentName AS 姓名,YEAR(CURDATE())-YEAR(birthday) AS 年龄
FROM student
WHERE sex='男' OR YEAR(CURDATE())-YEAR(birthday)>19;
例4:查询grade表中成绩为空的学生学号
SELECT studentID
FROM grade
WHERE grade IS NULL;
在进行模糊查询时需要使用LIKE关键字,下面介绍以下其用法:
- LIKE ‘AB%’:返回以“AB”开始的的任意字符串。
- LIKE ‘%ABC’:返回以“ABC”结束的任意字符串。
- LIKE ‘[%]ABC%’:返回以“%ABC”开始的任意字符串。
- LIKE ‘_ABC’:返回以“AB”结束的3个字符的字符串。
- LIKE ‘[ABC]%’:返回以“A",“B”,"C"开始的任意字符串。
例1:查询所有姓张的学生的姓名,学号和性别
SELECT studentName,studentID,sex
FROM student
WHERE studentName LIKE '张%';
例2:查询所有不姓张的学生姓名和学号
SELECT studentName,studentID
FROM student
WHERE studentName NOT LIKE '张%';
例3:查询姓名中第二个字为丽字的学生信息
SELECT *
FROM student
WHERE studentName LIKE '_丽%';
谓词IN,NOT IN和BETWEEN…AND,NOT BETWEEN…AND…可以用来查询属性值在或不在指定范围内的元组。其中,BETWEEN后是范围的上限,AND后是下限。
例1:查询年龄在22~24之间的学生姓名,年龄和所属院系
SELECT studentName AS 姓名,YEAR(CURDATE())-YEAR(birthday) AS 年龄,speciality AS 院系
FROM student
WHERE YEAR(CURDATE())-YEAR(birthday) BETWEEN 22 AND 24;
例2:查询所属院系为数学或者化学的学生信息
SELECT *
FROM student
WHERE speciality IN('数学','化学');
第二期地址
本文发布于:2024-02-01 07:48:16,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170674489834988.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |