24春季蓝旭培训第5周预习

MySQL

MySQL是一个开放源代码的关系型数据库管理系统,将数据保存在不同的表中,而不是将所有的数据放在一个仓库内,这样就增加速度并提高灵活性。

1.查看所有数据库

show databases;

2.自己创建数据库

//直接创建数据库db1
create database db1;
//判断是否存在,如果不存在则创建数据库db2
create database if not exists db2;
//创建数据库并指定字符集为 gb
create database db3 default character set gbk;

3.修改数据库 

将db3数据库的字符集改成 utf8                 alter database db3 character set utf8;
删除数据库                                                drop database db2;
使用数据库                                                select database();
查看正在使用的数据库                              use db4;

例子:

//创建 student表包含 id,name,birthday 字段
create table student (
    id int,
    name varchar(20),
    birthday date
);
//查看表
//查看某个数据库中的所有表
show tables;
//查看表结构  查看 student 表的结构
desc student;
//查看 student 的创建表 SQL 语句
show create table student;
//创建一个 s1 的表与 student 结构相同
create table s1 like student;
desc s1;
//直接删除表 s1 表
drop table s1;
//判断表是否存在并删除s1表
drop table if exists s1;
//为学生表添加一个新的字段 remark,类型为 varchar(20)
alter table student add remark varchar(20);
//student 表中的 remark 字段的改成 varchar(100)
alter table student modify remark varchar(100);
//将 student 表中的 remark 字段名改成 intro, 类型 varchar(30)
alter table student change remark intro varchar(30);
//删除student表中的字段intro;
alter table student drop column intro;
//将学生表 student 改名成 student2
rename table student to student2;
//修改字符集character set 字符集
//将 student2 表的编码修改成 gbk
alter table student2 character set gbk;

4.增加:使用insert语句向表中插入数据

1.如果只插入部分列,必须写列名
2.插入的数字直接写数字即可;
3.字符串\日期需要用单引号’'括住,日期格式为yyyy-MM-dd
4.插入空值时,传入nul
insert into 表名 values (值1,值2,...);顺序与表的一致

例子:

create table student
(
    id      int,
    name    varchar(20),
    age     varchar(20),
    sex     varchar(20),
    address varchar(20)
);
//插入所有的列,向学生表中
insert into student (id, name, age, sex)
values (1, "孙悟空", 20, "男");
insert into student (id, name, age, sex)
values (2, "孙悟天", 16, "男");
//向表中插入所有字段
//插入所有列
insert into student
values (3, "孙午饭", 18, "男", "龟仙人洞中");
//如果只插入部分列,必须写列名
insert into student # 报错
values (5, "孙午饭", 18, "男");

5.修改 - 更新数据

update 表名 set 字段1=值1,字段2=值2 [where 字段=值];

不加后面的where过滤条件,为更新全表
加后面的过滤条件,只更新符合条件的
如果where后的过滤条件找不到,就不更新

例子:

select *
from db4.student;
//不带条件修改数据,将所有的性别改成女
update db4.student
set sex="女"
where id = 2;
//带条件修改数据,将 id 号为 2 的学生性别改成男
update db4.student
set sex="男"
where id = 2;
//一次修改多个列,把 id 为 3 的学生,年龄改成 26 岁,address 改成北京
update db4.student
set age=26,
    address="北京"
where id = 3;

6.删除

delete from 表名 [where 字段=值];
注意:不加where条件,会清空表,慎用!

例子:

//删除表记录
//带条件删除数据,删除 id 为 1 的记录
delete
from student
where id = 1;
//不带条件删除数据,删除表中的所有数据
delete
from student;

JDBC

Java数据库连接,是一种用于执行SQL语句的java API,可以为多种关系型数据库提供统一访问,它由一组用Java语言编写的类和接口组成。

JDBC搭建

public class demo1 {
    /*
      1. 导入mysql驱动包
      2. 注册驱动
      3. 建立与mysql的连接驱动
      4. 向mysql发送sql语句
      5. 接收返回效果
      6. 关闭连接通道
     */
    public static void main(String[] args) {
        try {
            // 初始化驱动程序,这样就可以打开与数据库的通信信道
            Class.forName("com.mysql.cj.jdbc.Driver"); //以java反射机制来创建此类对象
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        //characterEncoding=utf8编码设置,连接mysql8 必须设置时区Timezone=Asia/Shanghai
        String url = "jdbc:mysql://127.0.0.1:3306/schooldb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai";
        try {
            //Connection接口  实际返回的mysql的实现类对象
            Connection connection =  DriverManager.getConnection(url,"root","root");
            //Statement 对象 发送sql
            Statement statement = connection.createStatement();
            //statement.executeUpdate(); statement.executeQuery();
            statement.executeUpdate("insert into major(mname)values('网络')");
            //statement.executeQuery();
            statement.close();
            connection.close();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
​
    }

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值