对数据库的操作
启动数据库 net start mysql
关闭数据库 net stop mysql
登录数据库 mysql -uroot -p123
sql分类:数据库定义语言DDL,数据库操纵语言DML,数据库查询语言DQL,数据库控制语言DCL
创建一个库
create database 库名;
create database 库名 character set 编码;
查看编码
show create database 库名;
删除一个库
drop database 库名;
使用库
use 库名;
查看当前正在使用的库
select database();
对数据库表的操作
创建一张表
create table 表名(
字段名 类型(长度)约束,
字段名 类型(长度)约束,
字段名 类型(长度)约束
);
查看数据库所有的表
show tables;
查看表结构
desc 表名;
删除一张表
drop table 表名;
修改表
添加一列
alter table 表名 add 字段名 长度(类型) [约束];
修改列的类型(长度,约束)
alter table 表名 modify 字段名 长度(类型) [约束];
修改列名
alter table 表名 change 旧列名 新列名 类型(长度) [约束];
删除表的列
alter table 表名 drop 列名;
修改表名
rename table 表名 to 新表名;
修改表的字符集
alter table 表名 charater set 编码;
对数据库表进行操作
插入记录
insert into 表名(列名,列名....) values(值1,值2......);
insert into 表名 values(值1,值2......);
插入数据中文乱码问题解决办法
set 列名 编码;
修改表记录
update 表名 set 字段名=值,字段名=值......;
update 表名 set 字段名=值,字段名=值...... where 条件;
删除表记录
delete from 表名 where 条件;
delete from 表名; 删除后id不会重置
面试题:说说delete和truntruncate的区别?
delete删除的时候是一条一条记录的删除,配合事物可以将数据找回
start transaction;
delete from 表名;
rollback; 找回数据
truncate删除时是将整个表先摧毁,然后再创建一张一模一样的表。它的删除无法找回
start transaction;
truncate table 表名;
rollback; 无法找回数据
delete删除id不会重置而truncate删除id会重置
查询操作
select distinct *|列名,列名... from 表名 [where 条件];
简单查询
查询所有商品
select * from product;
查询商品名和商品价格
select pname,price from product;
查询所有商品信息使用表别名
select * fro product as p;;
查询商品名使用列别名
select pname as p from product;
去掉重复的值(按照价格)
select distinct(price) from product;
将商品价格加10进行显示
select pname,price+10 from product;
查询商品名包含'士'字的商品信息
select * from product pname like '%士%';
查询商品id在(3,6,9)范围内所有商品信息
select * from product where pid in(3,6,9);
排序
查询所有商品,按价格进行排序(升序,降序)
select * from product order by price asc;
查询商品名包含'士'字,并且按价格进行降序排序
select * from product where pname like '%士%' order by price desc;
聚合函数
获得所有商品个数
select count(*) from product;
分组操作
根据cid进行分组,分组后进行统计商品的个数
select cid,count(*) from product group by cid;
根据cid进行分组,分组统计每组商品的平均价格,并且平均价格大于20000
select cid,avg(price) from product group by cid having avg(price)>20000;
select
from
where
group by
having
order by
JDBC
Class.forname("com.mysql.jdbc.Driver");
Connection conn=DriverManeger.getConnection("jdbc:mysql://localhost:3306/web01",username,password);
String sql="select * from tb_user where s_number=?";
PreparedStatement pstmt=conn.preparedStatement(sql);
pstmt.setString(1,"s123");
ResultSet rs=pstmt.executeQuery();
rs.next();
rs.getString(1);