文章目录
1.连接数据库
1.1 启动MySQL
- 使用管理员身份打开命令提示符
net start mysql 启动服务
net stop mysql 关闭服务
1.2 Navicat连接数据库
第一步:连接数据库之前一定要前启动mysql : net start mysql(重要!!!)
第二步:
第三步:可以先测试查看是否连接成功
1.3 操作数据库
点击链接,新建数据库
1.4 导入EXcel表内容
选择数据库,点击右键,导入,选择Excel文件
选择文件路径,并选择要导入的表
一直点击"下一步",到下图后选择"开始"即可导入Excel的数据
1.5 新建查询
选择"查询",点击鼠标右键,新建查询
输入SQL语句,查询具体内容
1.6 模式(数据库)的新建与删除
新建数据模式
CREATE SCHEMA 数据库名称
鼠标指到连接,点击鼠标右键,选择刷新即可看见新建的数据库
删除数据模式
DROP SCHEMA 数据库名称 <CASCADE|RESTRICT>
CASCADE(级联):表示在删除模式的同时把该模式中的所有数据库对象全部删除
RESTRICT(限制):表示如果该模式中已经定义了下属的数据库对象,则拒绝该删除语句的执行。
CASCADE和RESTRICT两者必选其一
运行语句成功后,刷新即可
1.7 基本表的定义、删除、修改
student、course、sc(选课表)定义
CREATE TABLE student
(Sno CHAR(9) PRIMARY KEY, /*列级完整性约束条件*/
Sname CHAR(20) UNIQUE, /*Sname取唯一值*/
Ssex CHAR(2),
Sage SMALLINT,
Sdept CHAR(20)
) ;
CREATE TABLE course
(Cno CHAR(4) PRIMARY KEY, /*列级完整性约束条件*/
Cname CHAR(40) NOT NULL, /*列级完整性约束条件*/
Cpno CHAR(4),
Ccredit SMALLINT,
FOREIGN KEY(Cpno)REFERENCES course(Cno) /*Cpno是外码,被参照表是course,被参照列是*/
);
CREATE TABLE sc /*选课表*/
(Sno CHAR(9),
Cno CHAR(4),
Grade SMALLINT,
PRIMARY KEY (Sno,Cno),
FOREIGN KEY(Sno)REFERENCES student(Sno),
FOREIGN KEY(Cno)REFERENCES course(Cno)
);
运行后刷新即可,
可以将我们的SQL语句保存
这样就可了
2. 连接查询
-- 连接查询
SELECT*FROM `客户`
SELECT*FROM `订单`
SELECT*FROM `商品`
SELECT*FROM `商店`
-- 1.查询有“计算机”的店名,负责人,客服电话。
SELECT 商店名称 店名,负责人,客服电话
FROM 商品,商店
WHERE 商店.商店编号=商品.商店编号 AND 商品名称 LIKE '%计算机%'
-- 2.查询购买了“打印机”的客户姓名、年龄、电话、地址
SELECT 姓名,2022-`出生日期` 年龄,电话,地址
FROM 客户,订单,商品
WHERE 客户.客户编号=订单.客户编号 AND 商品.商品编号=订单.商品编号 AND 商品名称 = '打印机'
-- 3.查询商品表中商品种类大于三种的卖家店名、负责人、商品数量。此处为运行成功!!!!!
SELECT 商店名称,负责人, COUNT(商品编号) 商品数量
FROM 商品,商店
WHERE 商店.商店编号=商品.商店编号
GROUP BY 商店名称,负责人
HAVING COUNT(商品编号)>2
-- Unknown column '商品编号' in 'having clause'
-- having 后跟的筛选条件所包含的字段必须是select后展示的字段或者group by 的条件字段!!!
-- 4.查询购买了五种以上商品的客户姓名、电话、商品名称、数量、地址。
SELECT 姓名,电话,商品名称,数量,地址
FROM 订单,客户,商品
WHERE 客户.客户编号=订单.客户编号 AND 商品.商品编号=订单.商品编号 AND 订单.客户编号 IN
(SELECT 客户编号
FROM 订单
GROUP BY 客户编号
HAVING COUNT(商品编号)>5)
-- 5.查询所有店铺的店名、负责人、客服电话及其商品名称,单价。(不论该店铺是否有商品,均需要列出店铺信息)
-- left Join俗称左连接,即left join左边的表的记录全部找出来。系统会先用表A和表B做个笛卡儿积,
-- 然后以表A为基表,去掉笛卡儿积中表A部分为NULL的记录。最后形成需要的结果。
SELECT ALL 商店名称,负责人,客服电话,商品名称,单价
FROM 商店 LEFT JOIN 商品 ON 商店.`商店编号`=商品.`商店编号`