MySQL数据库——基础篇1

数据库(Database,简称DB)

  • 概念
    长期存放在计算机内,有组织、可共享的大量数据的集合,是一个数据“仓库”

  • 作用
    保存、管理数据

  • 分类

    • 关系型数据库(SQL)
      MySQL、Oracle、SQL Server、SQLite、DB2
    • 非关系型数据库(NOSQL)
      Redis、MongoDB

        现在的数据库主要以关系型数据库为主流,但是别的数据库也是存在的,比如层次型、网状型、面向对象数据模型等,但是用的少,所以上边分类只分关系型和非关系型。
我也就主要说说关系型数据库中代表性的应用广泛的MySQL数据库。

MySQL 数据库

  • 概念
    是现流行的开源、免费的关系型数据库
  • 特点
    免费、开源数据库
    小巧、功能齐全
    使用便捷
    可运行于Windows或Linux操作系统
    可适用于中小型甚至大型网站应用
    这是它的小标标,记住哦小海豚

        它的安装、管理工具SQLyog安装就不详说了,自己找应该挺多,也挺简单。我主要用的老师推荐的管理工具Navicat操作,语句都一样。

SQL语句(结构化查询语句)

  • 概念
    关系数据库的标准语言,也是通用的、功能极强的关系数据库语言

  • 分类

    - DDL(数据定义语言)

命令行操作数据库

  • 创建数据库: CREATE DATABASE 数据库名称;
CREATE DATABASE myschool;
  • 删除数据库: DROP DATABASE 数据库名称;
DROP DATABASE myschool;
  • 查询所有数据库
SHOW DATABASES;
  • 切换到数据库下: USE 数据库名称;
USE myschool;

命令行创建数据表

数据库下有多个属于自己的表,并且可以相互关联。创建表之前先要切换到该数据库下再创建。

  • 创建表:
    CREATE TABLE [ IF NOT EXISTS ] 表名 (
    字段名1 列类型 [ 属性 ] [ 索引 ] [注释] ,
    字段名2 列类型 [ 属性 ] [ 索引 ] [注释] ,
    … …
    字段名n 列类型 [ 属性 ] [ 索引 ] [注释]
    ) [ 表类型 ] [ 表字符集 ] [注释] ;

这里的列类型、列属性、表类型等咱们再详细说一说

列类型
  • 概念: 规定数据库中该列存放的数据类型
  • 分类:
    数值类型
    在这里插入图片描述字符串类型
    在这里插入图片描述
    日期和时间型数值类型
    在这里插入图片描述
    NULL值:就是能不能为null值(空)。注意:不要用NULL进行算术运算,结果仍为NULL
字段属性
  • UNSIGNED:
    无符号的
    声明该数据列不允许负数
  • ZEROFILL:
    0填充的
    不足位数的用0来填充,如 int(3),5则为 005
  • AUTO_INCREMENT:
    自动增长的,每添加一条数据,自动在上一个记录数上加1
    通常用于设置主键,且为整数类型
    可定义起始值和步长
  • COMMENT:
    注释 对于 表或 列的描述
    COMMENT=‘测试表’;
  • DEFAULT:
    默认的
    用于设置默认值
    例如,性别字段,默认为“男”,否则为“女”;若无指定该列的值,则默认为“男”的值
  • PRIMARY KEY :
    主键
表属性
  • ENGINE:
    表类型,也就是设置表的存储模式 ,一般为ENGINE=InnoDB / MyISAM
  • charset:
    字符编码集,设置 charset=utf8(包含中文的编码集);

下边举一个具体实例,创建一个课程表:

CREATE TABLE IF NOT EXISTS `subject`(
  subjectNo int(11) NOT NULL  PRIMARY KEY AUTO_INCREMENT COMMENT '科目编号',
  subjectName varchar(50) NOT NULL COMMENT '科目名称',
  classHour int(4) NOT NULL COMMENT '课时',
  gradeID int(4) COMMENT '年级编号'
) ENGINE =  InnoDB,COMMENT='年级表',charset=utf8;

创建成功,没有错误我们来看看这个创建好的空表:
查询语句再说这个表的属性(和咱们创建时设置的一样):

在这里插入图片描述然后说一些别的常用语句吧:

  • 创建表同时 复制原有表中的数据与结构
CREATE TABLE `newsubject`  SELECT * FROM `subject`;
  • 创建表同时 只复制表中的结构,不要数据
CREATE TABLE `newsubject2`  SELECT * FROM `subject` where 1=2;
  • 创建表同时 复制表中的指定列
CREATE TABLE `newsubject3`  SELECT subjectNo,subjectName FROM `subject` where 1=2;
  • 查询表的结构
DESC `subject`;                  -- 简单 常用(注释就是-- )
DESCRIBE `subject`;
SHOW COLUMNS IN `subject`;
SHOW COLUMNS FROM `subject`;
EXPLAIN  `subject`;
  • 查询已创建表的语句
SHOW CREATE TABLE `subject`;

命令行修改数据表

  • 修改表名称 语法:ALTER TABLE 旧表名 RENAME AS 新表名
ALTER TABLE  newsubject RENAME AS newsubject1;
  • 添加字段 语法: ALTER TABLE 表名 ADD 字段名 列类型 [ 属性 ]
ALTER TABLE newsubject1   ADD test  VARCHAR(50) NOT NULL;
  • 修改字段 语法一: ALTER TABLE 表名 MODIFY 字段名 列类型 [ 属性 ]
ALTER TABLE newsubject1 MODIFY test VARCHAR(10) NULL
语法二 : ALTER TABLE 表名   CHANGE 旧字段名  新字段名   列类型 [ 属性 ]
ALTER TABLE newsubject1   CHANGE test  test2 VARCHAR(10) NULL
  • 删除字段 语法: ALTER TABLE 表名 DROP 字段名
ALTER TABLE newsubject1 DROP test2
  • 增加主键 语法:ALTER TABLE 表名 ADD PRIMARY KEY (字段名);
ALTER TABLE  newsubject1 ADD PRIMARY KEY (subjectNo);
  • 删除主键 (主键只有一个,所以不需要名字)
ALTER TABLE newsubject1 DROP PRIMARY KEY;
  • 创建主外键关系: ALTER TABLE 外键表 ADD FOREIGN KEY (外键列) REFERENCES 主键表(主键列);
ALTER TABLE  news ADD FOREIGN KEY (ntid) REFERENCES topic(tid);
  • 创建主外键关系 命名关系
ALTER TABLE news ADD CONSTRAINT fk_news_ntid_topic_tid FOREIGN KEY (ntid) REFERENCES topic(tid);
  • 删除主外键关系 通过命的名字 fk_news_ntid_topic_tid
ALTER TABLE news DROP FOREIGN KEY `fk_news_ntid_topic_tid`;

命令行操作数据

  • 添加语句 语法:INSERT INTO 表名(列名1,列名2,列名3,列名4,…)VALUES(值1,值2,值3,值4,…)
INSERT INTO grade(gradeName)VALUES('大一'); --逐条添加
INSERT INTO grade(gradeName)VALUES('大二'),('大三'),('大四'); -- 逐列添加
INSERT INTO `subject`(subjectName,classHour,gradeID)VALUES('高等数学-1',120,4),('高等数学-2',110,5),('高等数学-3',100,6),('高等数学-5',90,7);    --批量添加
  • 修改语句 语法: UPDATE 表名 SET column_name(列名) = value(值) [ , column_name2 = value2, …. ] [ WHERE condition(筛选条件) ];
UPDATE student SET studentName = '李四' WHERE studentNo = 1011

UPDATE student SET loginPwd = '000000',email='123@qq.com' WHERE studentNo = 10000

UPDATE student SET loginPwd = '123456' WHERE gradeid=4 AND email = '123@qq.com'
  • 删除 语法1: DELETE FROM 表名 [ WHERE condition ]; – (要删主表先删子表)
             语法2:TRUNCATE 表名 --(完全清空表数据,但表结构、索引、约束等不变)
DELETE FROM student WHERE studentNo = 1010
TRUNCATE testTable 
  • 查询null值
SELECT * FROM student WHERE email is null
SELECT * FROM student WHERE email is NOT null

创建数据库、创建表(属性)、添加数据、修改数据、删除数据我们都简单聊了聊,最后最重要的查询语句,我们下一篇再详细介绍。希望对你有帮助,有问题的麻烦批评指正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会尽量回答你的问题。关于Java连接MySQL数据库实现登录注册功能,以下是一个简单的实现步骤: 1.下载并安装MySQL数据库,安装完成后,创建一个名为“test”的数据库。 2.下载并安装JDBC驱动程序,将下载的JDBC驱动程序的jar包添加到项目的classpath中。 3.编写Java代码,实例化JDBC驱动程序,连接MySQL数据库,创建用户表,实现用户的注册和登录功能。 以下是一个简单的Java代码示例: ``` import java.sql.*; public class JdbcTest { public static void main(String[] args) { // 数据库连接信息 String url = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC"; String username = "root"; String password = "123456"; // 注册JDBC驱动程序 try { Class.forName("com.mysql.cj.jdbc.Driver"); } catch (ClassNotFoundException e) { System.out.println("找不到JDBC驱动程序!"); e.printStackTrace(); return; } // 连接MySQL数据库 Connection conn = null; try { conn = DriverManager.getConnection(url, username, password); } catch (SQLException e) { System.out.println("连接MySQL数据库失败!"); e.printStackTrace(); return; } // 创建用户表 Statement stmt = null; try { stmt = conn.createStatement(); String sql = "create table if not exists user(id int primary key auto_increment, username varchar(50) not null, password varchar(50) not null)"; stmt.executeUpdate(sql); } catch (SQLException e) { System.out.println("创建用户表失败!"); e.printStackTrace(); return; } finally { if (stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } } // 用户注册 PreparedStatement pstmt = null; try { String sql = "insert into user(username, password) values (?, ?)"; pstmt = conn.prepareStatement(sql); pstmt.setString(1, "user1"); pstmt.setString(2, "123456"); pstmt.executeUpdate(); } catch (SQLException e) { System.out.println("用户注册失败!"); e.printStackTrace(); return; } finally { if (pstmt != null) { try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } } } // 用户登录 ResultSet rs = null; try { String sql = "select * from user where username=? and password=?"; pstmt = conn.prepareStatement(sql); pstmt.setString(1, "user1"); pstmt.setString(2, "123456"); rs = pstmt.executeQuery(); if (rs.next()) { System.out.println("用户登录成功!"); } else { System.out.println("用户名或密码错误!"); } } catch (SQLException e) { System.out.println("用户登录失败!"); e.printStackTrace(); } finally { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (pstmt != null) { try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } } } // 关闭数据库连接 try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } ``` 在上面的代码中,我们先注册了JDBC驱动程序,然后连接了MySQL数据库,接着创建了一个名为“user”的用户表,实现了用户的注册和登录功能。你可以根据自己的需求修改代码中的数据库连接信息和SQL语句。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值