开发环境准备
首先安装mysql环境,本文使用的开发工具是Navicat Premium,这是一款数据库管理工具,这个工具安装非常方便、使用也很简单,当然SQL Server Management Studio 工具也是可以的,但是我个人觉得安装麻烦,软件安装包与破解文件如下:
链接: https://pan.baidu.com/s/1zrT1CmDDi-pwahR5c80vAg 提取码: 9pky
测试是否安装好,点击“开始”—“所有程序”—“MySQL”—然后选择下面的命令行工具“MySQL 5.6 Command Line Client”,输入所设置的密码,一般是123456;
mysql>show databases; 正常的话会列出当前所存在的数据库列表,如下:
然后安装Navicat Premium,按readme.txt中的步骤操作…
创建数据库与表
1.新建连接
打开Navicat Premium,首先要新建一个连接,选择你需要操作哪种数据库,这里选择MySQL
自己取一个数据库名,然后点击确定
2.创建数据库
字咱就不敲了,用图说话!
填入自己需要建的数据库名,单击确定
至此连接建好了,数据库也建好了,但是数据库中还没有任何东西
3.创建表
选中新建的数据库,单击新建查询,就可以输入sql语句操作了
输入sql语句,点击运行,这里顺带提一嘴,mysql跟sql server语法上是有些区别的,每条mysql语句都要用分号”;”结束,还有PRIMARY KEY部分也有些区别,如下代码是在刚建的数据库mstar中创建三个表,在下面信息那一栏可以看到相关信息
USE mstar;-- 选择数据库mstar
CREATE TABLE students (--创建students表,下面是表中各元素属性
Sno CHAR (7),
Sname CHAR (8) NOT NULL,
Ssex CHAR (2) NOT NULL DEFAULT '男' CHECK (Ssex IN('男', '女')),
Sbirthday date NULL,
Sdept CHAR (8) NULL,
PRIMARY KEY(Sno),
memo TEXT
);
CREATE TABLE courses (--创建courses 表,下面是表中各元素属性
Cno CHAR (3),
Cname VARCHAR (20) NOT NULL,
PreCno CHAR (3) NULL,
PRIMARY KEY(Cno),
Credit TINYINT
);
CREATE TABLE sc (--创建courses 表,下面是表中各元素属性
Sno CHAR (7) NOT NULL,
Cno CHAR (3) NOT NULL,
Grade SMALLINT,
CONSTRAINT CK_Grade CHECK (Grade BETWEEN 0 AND 100),
CONSTRAINT PK_SC PRIMARY KEY clustered (Sno, Cno),
CONSTRAINT FK_Sno FOREIGN KEY (Sno) REFERENCES Students (Sno),
CONSTRAINT FK_Cno FOREIGN KEY (Cno) REFERENCES Courses (Cno)
);
然后刷新数据库,正常的话可以看到创建的三个表,展开表可以看到表中的信息
4.填充表
向表中添加内容, 输入如下代码点击运行,如果报错,可以每条语句分开单独执行
INSERT INTO courses VALUES ('C1','程序设计基础(C)',NULL,'4'),('C2','数据库原理','C1','4'),('C3','SQL 程序设计','C2','4'),('C4','音乐欣赏',NULL,'1');
INSERT INTO students VALUES ('0602001','钟文辉','男','1987-05-01','计算机','优秀毕业生'),('0602002','吴细文','女','1987-03-24','计算机','爱好:音乐'),('0602003','吴朝西','男','1988-07-01','计算机',NULL),('0701001','王冲瑞','男','1988-05-04','机电','爱好:音乐'),('0701002','林滔滔','女','1987-04-03','机电',' 爱好:体育'),('0701003','李修雨','女','1986-03-03','机电',NULL),('0703001','李奇','男','1988-09-17','商贸管理',NULL);
INSERT INTO sc VALUES
('0602001', 'C1', '61'),
('0602001', 'C2', '72'),
('0602001', 'C3', '88'),
('0602002', 'C1', NULL),
('0602002', 'C2', '61'),
('0701001', 'C1', '50'),
('0701001', 'C2', NULL),
('0701002', 'C3', '78'),
('0701003', 'C1', '52'),
('0701003', 'C3', '87');
刷新表,双击可打开查看表中内容,如下是students表中的内容
至此,数据库与表已经创建好,并且表中内容也填充好,接下来可以进行增删改查等各种测试了
测试
1.查表中的内容
use mstar;--选择需要查询的数据
SELECT * FROM students;--选取students表中的信息,SELECT是选取,*代表所有信息
2.查询计算机系全体学生的信息
SELECT * FROM students WHERE Sdept='计算机'--WHERE是条件选取,相当于C语言中if
3.查询姓“李”的学生的学号和姓名。
SELECT Sno,Sname FROM Students WHERE Sname LIKE '李%'--从Students表中条件选取姓李的同学的Sno,Sname 这两项数据
4.查询课程表中先行课为空的课程名。
SELECT Cname FROM Courses WHERE PreCno IS NULL--这个简单,条件选取PreCno为NULL的Cname
5.查询考试成绩有不及格的学生的学号。
SELECT Sno, Grade FROM SC WHERE Cno='C1' OR Cno='C2'
6.查询全体计算机系学生的姓名及其年龄。
SELECT 姓名=Sname ,年龄=YEAR(GETDATE())-YEAR(Sbirthday)
FROM Students WHERE Sdept='计算机'
7.查询计算机系在1986-1987 年之间出生的学生的姓名。
SELECT Sname FROM Students
WHERE Sdept='计算机'AND YEAR(Sbirthday) BETWEEN 1986 AND 1987
8.查询姓“李”的前两个学生的学号和姓名。
SELECT Top 2 Sno,Sname FROM Students WHERE Sname LIKE ' 李%'
9.查询选修了两门以上课程的学生学号与课程数。
SELECT Sno,COUNT(Sno) FROM SC GROUP BY Sno HAVING
COUNT(*)>2
10.查询选修课程数大于等于2 的学生的学号、平均成绩和选课门数,并按
平均成绩降序排列。
SELECT Sno AS '学号', AVG(Grade)AS '平均成绩', COUNT(*) AS '选课门数'
FROM SC GROUP BY Sno HAVING COUNT(*)>=2
ORDER BY AVG(Grade) DESC
后面例子就不一一举了,有兴趣可以自己多试试,推荐一个个人觉得比较好的sql学习网站:https://www.runoob.com/sql/sql-tutorial.html,上面有很多例子。
本文地址:https://blog.csdn.net/maodewen11/article/details/111039753