新建数据库

QQ截图20201115140231.png
QQ截图20201115140550.png

那就要用到sql语句使用命令将数据库中数据读取出来

  • 查询语句:普通查询,指定字段查询,去重, 分组查询,排序,模糊查询,单行函数
  • 插入语句:insert
  • 修改语句:update
  • 删除语句:delete

    查询

    1 * from全部查询
    QQ截图20201115140610.png
    2.按照属性查询

image.png
3.模糊查询,%的位置标示此处可能有其他字或内容
QQ截图20201115141535.png

  1. 按照某个属性的一定次序查询 select * from book order by bookprice desc (asc为升序,desc 为降序,不写默认为降序)

    如果有多个条件 order 命令放在最后,
    5.去重查询:DISINCT
    select DISINCT bookprice from book
    6.单行函数
    例如查询某个属性的最大值:select max(bookprice) from book;

    其他增删改查方法如下

    一、增:e79fa5e98193e78988e69d8331333365653163有2种方法
    1.使用insert插入单行数据:
    image.png
    只会插入指定属性,不用指定id属性
    语法:insert [into] <表名> [列名] values <列值>
    例:insert into Strdents (姓名,性别,出生日期) values (‘小明’,’男’,’1983/6/15’)
    注意:如果省略表名,将依次插入所有列

2.使用insert,select语句将现有表中的 数据添加到已有的新表中
语法:insert into <已有的新表> <列名> select <原表列名> from <原表名>
例:insert into addressList (‘姓名’,’地址’,’电子邮件’)select name,address,email
from Strdents
注意:查询得到的数据个数、顺序、数据类型等,必须与插入的项保持一致

二、删:有2中方法
一般不用delete语句,因为一般数据库中都有一个delete属性,0为没删除,1为已删除,删除
1.使用delete删除数据某些数据
语法:delete from <表名> [where <删除条件>]  
例:delete from a where name=’王伟华’(删除表a中列值为王伟华的行) 
注意:删除整行不是删除单个字段,所以在delete后面不能出现字段名

2.使用truncate table 删除整个表的数据
语法:truncate table <表名>
例:truncate table addressList
注意:删除表的所有行,但表的结构、列、约束、索引等不会被删除;不能
用于有外建约束引用的表

三、改  使用update更新修改数据
image.png
语法:update <表名> set <列名=更新值> [where <更新条件>]
例:update addressList set 年龄=18 where 姓名=’小明’
注意:set后面可以紧随多个数据列的更新值(非数字要引号);where子句是可选的(非数字要引号),用来限制条件,如果不选则整个表的所有行都被更新

四、查
语法:select <列名> from <表名> [where <查询条件表达试>] [order by <排序的列
名>[asc或desc]]
1).查询所有数据行和列
例:select from a
说明:查询a表中所有行和
2).查询部分行列—条件查询
例:select i,j,k from a where f=5
说明:查询表a中f=5的所有行,并显示i,j,k3列
3).在查询中使用AS更改列名
例:select name as 姓名 from a where gender=’男’
说明:查询a表中性别为男的所有行,显示name列,并将name列改名为(姓名)显示
4).查询空行
例:select name from a where email is null
说明:查询表a中email为空的所有行,并显示name列;SQL语句中用is null或者is not null
来判断是否为空行
5).在查询中使用常量
例:select name ‘北京’ as 地址 from a
说明:查询表a,显示name列,并添加地址列,其列值都为’北京’
6).查询返回限制行数(关键字:top )
例1:select top 6 name from a
说明:查询表a,显示列name的前6行,top为关键字(oracle 中没有top关键字
用rownum替代)
select
from a where rownum<6
7).查询排序(关键字:order by , asc , desc)
例:select name
from a
where grade>=60
order by desc
说明:查询表中成绩大于等于60的所有行,并按降序显示name列;默认为ASC升序

调用数据库

String URL=”jdbc:mysql://127.0.0.1:3306/sss? useUnicode=true&characterEncoding=utf-8”; //lainije
String USER=”root”;
String PASSWORD=”123456”;

//1.加载驱动程序
Class.forName(“com.mysql.jdbc.Driver”);
//2.获得数据库链接
Connection conn=DriverManager.getConnection(URL, USER, PASSWORD);
//3.通过数据库的连接操作数据库,实现增删改查(使用Statement类)
Statement st=conn.createStatement(); 调用Statement方法;
//String sql = “select from book”;
ResultSet rs=st.executeQuery(“select
from book”); select from book是查询命令

while(rs.next()) {
System.out.println(rs.getObject(“bookName”)); 查询所有书籍的名字
}
总结(后续需补充)
*直接连接,主要步骤:

先导包:mysql-connector-java-5.0.8-bin.jar(点击跳转到下载界面),放在WebRoot/WEB-INF/lib/下,如果继续报错就抛异常Exception
1.加载驱动//com.MySQL.jdbc.Driver
2.获取连接 Connection对象
3.获取用于向数据库发送SQL的Statement对象
4.执行sql,获取数据,解析数据
5.关闭连接,释放资源