数据库数据库常见操作指令
Posted Jucway
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库数据库常见操作指令相关的知识,希望对你有一定的参考价值。
更新记录
时间 | 操作 | 备注 |
---|---|---|
2021.12.27 | 添加常见指令操作 |
目录
操作类型 | ||||
---|---|---|---|---|
cmd连接数据库指令 | 创建表,插入表 | 更新,查看 | 更改表名,增加删除字段 | JDBC连接数据库 |
指令
SQL:结构化查询语言
DDL(定义),DML(操作),DQL(查询),DCL(控制)
操作指令
连接数据库
// 进入mysql
mysql -u root -p
// 显示数据库
show databases;
show tables;
//进入某个数据表
use dataname;
// 当前数据库显示其他数据表
show tables from mysql; 从mysql 显示mysql
// 显示当前是在哪个数据量
show database();
//插入数据
INSRERT INTO 表名 (字段名) values (插入数据值);
// 显示表内容 desc describe 描述
desc 表名;
// 更新表内容
update news_users set uname='jucw' where uname='zcw'; // 将uname 名字更换
- 创建表
create table NEWS_USERS
(
usid int not null primary key AUTO_INCREMENT,
uname VARCHAR(20) not null,
upwd VARCHAR(20) not null
);
创建表字段 : 类型 非空 主键
varchar() 是可变字符集,最大长度是指定的长度,char 是不变字符集,小于指定长度空间依旧是分配指定长度,不能大于指定长度;
表中插入数据
INSERT INTO 表名 (对应字段名) values (对应数据)
更改操作:
alter table news_users AUTO_INCREMENT=10;
INSERT into news_users(uname,upwd) VALUES('danny','32333');
指定编号,原本是自增1;现在指定位置是10,接下来是从10开始插入数据
查看创建表的语句
show create teble 表名;
修改表名:
rename table 旧 to 新;
增加删除新的字段:interest
alter table 表名 add column 字段名 类型; // 指定放在前面使用first
//删除
alter table 表名 drop 字段名;
使用JDBC 来连接数据库
装驱动
- con 连接到数据库
- stamt 声明用于执行语句
- 执行sql 查询或者更新操作
- 移动游标来定位需要的结果
- 关闭数据传输流,关闭连接流
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class jdbc
public static void main(String[] args)
Connection con = null;
ResultSet rs = null;
try
// 1. 引入驱动
String sql = "select * from news_users where usid = 10";
Class.forName("com.mysql.cj.jdbc.Driver");
// 访问驱动管理程序
con = DriverManager.getConnection("jdbc:mysql://localhost/db_news?useSSL=FALSE&serverTimezone=Asia/Shanghai","root","123456");
Statement stmt = con.createStatement();
rs = stmt.executeQuery(sql);
while(rs.next())
// 使用游标获取当前行,每次往下移动
//获取当前行的每一列数据
int id = rs.getInt("usid");
String uname = rs.getString("uname");
String pwd = rs.getString("upwd");
System.out.println(id+uname+pwd);
System.out.println("\\t连接成功");
catch (Exception e)
// TODO Auto-generated catch block
e.printStackTrace();
try
// 插入数据
System.out.println("\\t插入数据 ");
// 1. 创建执行语句
String sql1 = "insert into news_users(uname, upwd) values('zcw', '123456')";
// 2. 声明用于执行数据库语句
Statement stmt = con.createStatement();// statement 来执行数据库
// 3. 将数据执行插入到数据库
stmt.executeUpdate(sql1);
System.out.println("\\t数据更新成功+'zcw', '123456'!!!");
catch (Exception e)
e.printStackTrace();
try
// 插入数据
System.out.println("\\t统计数据: ");
// 1. 创建执行语句
String sql1 = "select COUNT(*) from news_users";
// 2. 声明用于执行数据库语句
Statement stmt = con.createStatement();// statement 来执行数据库
// 3. 将数据执行插入到数据库
rs = stmt.executeQuery(sql1);
rs.next();
int c = rs.getInt(1);
System.out.println("\\tcount:"+c);
catch (Exception e)
e.printStackTrace();
try
// 插入数据
System.out.println("\\t统计数据: ");
// 1. 创建执行语句
String sql1 = "DELETE FROM news_users where usid = 16";
// 2. 声明用于执行数据库语句
Statement stmt = con.createStatement();// statement 来执行数据库
// 3. 将数据执行插入到数据库
int row = stmt.executeUpdate(sql1);
System.out.println("\\t删除了:"+row);
System.out.println();
catch (Exception e)
e.printStackTrace();
使用DAO 进行增删改查
-
preparedStatement :预处理的接口
-
- 通过占位符设参数
-
定义函数
-
查找用户
String sql = "select * from 表名 where usid=?"; //传进来的参数是id #使用prepareStatement 可以预编译sql #设置占位符的参数 pre.setInt(1,id) # 这里的占位符跟format 是一样的,指定的位置是第几个参数 # 开始执行参数 rs = pre.executeQuery() # 这里不同于Statement 不用传进来sql 使用try catch finally 最终在finally关闭连接
-
添加用户
# 需要传进来两个参数 用户名和密码 String sql = "Insert into 表名(uname, upwd) value (?,?)" # 在这里占位 # 预编译sql # 设置占位符的值 pre.setString(1, user.getUsername()); #传进来数据 pre.setString(2, user.getUserpwd()); # 传进来密码
-
修改用户数据
# 将所有数据重新写入一边 #一行设置
-
删除数据
# 根据指定的id把用户数据删除 pre.setInt(1,id); # 将sql 语句的值补充完整
-
-
测试的时候:
-
添加用户
- 创建新的用户类,设置新的用户信息,将新的用户信息传到添加函数里面去;
-
删除用户
-
根据指定的id找到指定的用户
-
将指定的用户添加到删除函数里面,返回删除的行数
-
-
修改用户数据
- 根据id查找到指定的用户
- 将找到的用户添加到修改函数里,返回删除的行数
-
查找用户
- 根据指定的id查找的用户
- 提取用户的字段显示
-
注意点
- mysql 不能使用 TOC 来限制查询长度,这个是ORACLE有的;使用Limit;
以上是关于数据库数据库常见操作指令的主要内容,如果未能解决你的问题,请参考以下文章