Navicat使用教程

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 商店.`商店编号`=商品.`商店编号` 
  • 6
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
05-28
好的,下面是一个使用MySQL数据库和Servlet的基本登录注册代码示例: 1. 创建一个名为`User`的JavaBean类,包含以下属性和方法: ```java public class User { private String username; private String password; // 构造方法 public User() {} public User(String username, String password) { this.username = username; this.password = password; } // getters 和 setters public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } ``` 2. 创建一个名为`DBUtil`的数据库工具类,用于连接数据库和执行SQL语句: ```java public class DBUtil { private static final String URL = "jdbc:mysql://localhost:3306/test?useSSL=false"; private static final String USER = "root"; private static final String PASSWORD = "123456"; // 获取数据库连接 public static Connection getConnection() { Connection conn = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection(URL, USER, PASSWORD); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } return conn; } // 执行查询操作 public static ResultSet executeQuery(String sql, Object... params) { Connection conn = getConnection(); PreparedStatement pstmt = null; ResultSet rs = null; try { pstmt = conn.prepareStatement(sql); for (int i = 0; i < params.length; i++) { pstmt.setObject(i + 1, params[i]); } rs = pstmt.executeQuery(); } catch (SQLException e) { e.printStackTrace(); } return rs; } // 执行更新操作 public static int executeUpdate(String sql, Object... params) { Connection conn = getConnection(); PreparedStatement pstmt = null; int result = 0; try { pstmt = conn.prepareStatement(sql); for (int i = 0; i < params.length; i++) { pstmt.setObject(i + 1, params[i]); } result = pstmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally { close(conn, pstmt, null); } return result; } // 关闭资源 public static void close(Connection conn, Statement stmt, ResultSet rs) { try { if (rs != null) { rs.close(); } if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } } ``` 3. 创建一个名为`UserDao`的数据访问对象类,用于对用户表进行CRUD操作: ```java public class UserDao { // 添加用户 public boolean addUser(User user) { String sql = "INSERT INTO user(username, password) VALUES(?, ?)"; int result = DBUtil.executeUpdate(sql, user.getUsername(), user.getPassword()); return result > 0; } // 根据用户名查询用户 public User getUserByUsername(String username) { User user = null; String sql = "SELECT * FROM user WHERE username=?"; ResultSet rs = DBUtil.executeQuery(sql, username); try { if (rs.next()) { user = new User(); user.setUsername(rs.getString("username")); user.setPassword(rs.getString("password")); } } catch (SQLException e) { e.printStackTrace(); } finally { DBUtil.close(null, null, rs); } return user; } } ``` 4. 创建一个名为`LoginServlet`的Servlet类,用于处理用户登录请求: ```java @WebServlet("/login") public class LoginServlet extends HttpServlet { private UserDao userDao; @Override public void init() throws ServletException { userDao = new UserDao(); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 获取表单参数 String username = request.getParameter("username"); String password = request.getParameter("password"); // 根据用户名查询用户 User user = userDao.getUserByUsername(username); // 验证用户信息 if (user != null && user.getPassword().equals(password)) { // 登录成功,将用户信息保存到Session中 HttpSession session = request.getSession(); session.setAttribute("user", user); // 跳转到首页 response.sendRedirect(request.getContextPath() + "/index.jsp"); } else { // 登录失败,返回错误信息 request.setAttribute("error", "用户名或密码错误!"); request.getRequestDispatcher("/login.jsp").forward(request, response); } } } ``` 5. 创建一个名为`RegisterServlet`的Servlet类,用于处理用户注册请求: ```java @WebServlet("/register") public class RegisterServlet extends HttpServlet { private UserDao userDao; @Override public void init() throws ServletException { userDao = new UserDao(); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 获取表单参数 String username = request.getParameter("username"); String password = request.getParameter("password"); // 封装用户对象 User user = new User(username, password); // 添加用户 boolean result = userDao.addUser(user); // 返回结果 if (result) { request.setAttribute("message", "注册成功,请登录!"); request.getRequestDispatcher("/login.jsp").forward(request, response); } else { request.setAttribute("error", "注册失败,请重试!"); request.getRequestDispatcher("/register.jsp").forward(request, response); } } } ``` 以上就是一个基本的登录注册代码示例,您可以根据自己的需要进行修改和完善。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值