jdbc简单步骤与mysql 基本语句

jdbc简单步骤与mysql基本语句

JDBC

    //1. 导入外部的驱动包
    Class.forName("com.mysql.jdbc.Driver");
    //2. 加载驱动
    //3. 建立连接     url:全球资源定位 
    Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/库名?useUnicode=true&characterEncoding=UTF-8", "root", "123456");
    //?useUnicode=true&characterEncoding=UTF-8      将数据进行相应的格式转化,避免乱码
    String sql = "select * from user where money > ? and userid > ?";
    //4. 创建PreparedStatement对象
    PreparedStatement ps = conn.prepareStatement(sql);
    ps.setDouble(1, 10000);
    ps.setInt(2, 1003);

    //5. 执行并获得结果集
    ResultSet rs = ps.executeQuery();

MySQL

SQL语句分类:

DDL:数据定义(对数据库和表结构的,增、删、改)

查看所有数据库:SHOW DATABASES
切换(选择要操作的)数据库:USE 数据库名
创建数据库:CREATE DATABASE [IF NOT EXISTS] mydb1 [CHARSET=utf8]
删除数据库:DROP DATABASE [IF EXISTS] mydb1
修改数据库编码:ALTER DATABASE mydb1 CHARACTER SET utf8

创建表:
CREATE TABLE [IF NOT EXISTS] 表名(
列名 列类型,
列名 列类型,
……
列名 列类型
);
查看当前数据库中所有表名称:SHOW TABLES;
查看指定表的创建语句:SHOW CREATE TABLE 表名;
查看表结构:DESC 表名;
删除表:DROP TABLE 表名;
修改表:前缀为 ALTER TABLE 表名
a) 添加列:
ALTER TABLE 表名 ADD(
列名 列类型,
列名 列类型,
……
);
b) 修改类类型(如果被修改的列已存在数据,那么新的类型可能会影响到已存在数据):ALTER TABLE 表名 MODIFY 列名 列类型;
c) 修改列名:ALTER TABLE 表名 CHANGE 原列名 新列名 列类型;
d) 删除列:ALTER TABLE 表名 DROP 列名;
e) 修改表名称:ALTER TABLE 原表名 RENAME TO 新表名;

** DML:数据操作(对表记录的操作,增、删、改)

1. 插入数据
INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…);
在表名后给出要插入的列名,其他没有指定的列等同于插入null值。所以插入记录总是插入一行;
在VALUES后给出列值,值的顺序和个数必须与前面指定的列对应;
在数据库中所有的字符类型,必须使用单引号,不能使用双引号,日期类型也要使用单引号
INSERT INTO 表名 VALUES(列值1,值2);
没有给出要插入的列,那么表示插入的所有列;
值的个数必须是该表列的个数;
值的顺序,必须与表创建时给出的列的顺序相同。

  1. 修改数据
    UPDATE 表名 SET 列名1=列值1,列名2=列值2,… [WHERE 条件]
    条件(条件可选):
    条件必须是一个boolean类型的值或表达式:UPDATE t_person SET gender=’男’, age=age+1 WHERE sid=’1’;
    运算符:=,!=,<>,>,<,>=,<=,BETWEEN…AND,IN(…),IS NULL,NOT,OR,AND

  2. 删除数据
    DELETE FROM 表名 [WHERE 条件];
    TRUNCATE TABLE 表名:TRUNCATE是DDL语句,它是先删除drop该表,再create该表,而且无法回滚。

    DCL:数据控制

  3. 创建用户
    CREATE USER 用户名@IP地址 IDENTIFIED BY ‘密码’;
    用户只能在指定的IP地址上登录
    CREATE USER 用户名@’%’ IDENTIFIED BY ‘密码’;
    用户可以在任意IP地址上登录

  4. 给用户授权
    GRANT 权限1,……,权限n ON 数据库.* TO 用户名@IP地址;
    给用户分派在指定的数据库上的指定权限
    例如:GRANT CREATE,ALTER,DROP,INSERT,UPDATE,DELETE,SELECT ON mydb1.* TO user1@localhost;
    给user1用户分派在mydb1数据库上的CREATE、ALTER、DROP、INSERT、UPDATE、DELETE、SELECT权限
    GRANT ALL ON 数据库.* TO 用户名@IP地址;
    给用户分派指定数据库上的所有权限

  5. 撤销授权
     REVOKE 权限1,……,权限n ON 数据库.* FROM 用户名@IP地址;
    撤销指定用户在指定数据库上的指定权限
    例如:REVOKE CREATE,ALTER,DROP ON mydb1.* FROM user1@localhost;
    撤销user1用户在mydb1数据库上的CREATE、ALTER、DROP权限

  6. 查看权限
    SHOW GRANTS FOR 用户名@IP地址;
    查看指定用户的权限

  7. 删除用户
    DROP USER 用户名@IP地址;

    * DQL:数据查询(对表记录的查询操作)

  8. 基本查询
    字段(列)控制
    查询所有列

SELECT * FROM 表名;
其中“*”表示所有列
查询指定列
SELECT 列1[,列2,……列n] FROM 表名;
完全重复的记录只显示一次
当查询结果中的多行记录完全一样时,只显示一行,一般用于查询某个字段中一共有几种类型的值。
SELECT DISTINCT * | 列1[,列2,……,列n] FROM 表名;
例如:SELECT DISTINCT sal FROM emp;
查询员工表的工资,如果存在相同的工资只显示一次
列运算
数量类型的列可以做加、减、乘、除运算
SELECT *,sal*1.5 FROM emp;
字符串做算术运算时,会被当做0来进行运算,在字符串中+号不代表拼接
字符串类型可以做连续运算
SELECT CONCAT(‘$’,sal) FROM emp;
转换NULL值
有时需要把NULL转换成其他值,例如com+1000时,如果com列存在NULL值,那么NULL+1000还是NULL,而我们这是希望把NULL当做0来运算。
SELECT IFNULL(comm,0)+1000 FROM emp;
IFNULL(comm,0):如果comm中存在NULL值,那么当成0来运算;
给列起别名
当使用列运算后,查询出的结果集中的列名称不好看,这时我们需要给列名起个别名,这样在结果集中列名就显示别名了。
SELECT IFNULL(comm,0)+1000 AS 奖金 FROM emp;
其中AS可以省略

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值