SQL概述—JDBC学习笔记

来源:互联网 发布:淘口令没有在淘宝弹出 编辑:程序博客网 时间:2024/06/05 18:38

SQL概述—JDBC学习笔记

  • SQL语法
    1、 SQL语句可以在单行或多行书写,以分号结尾
    2、 可以使用空格和缩进来增强语句的可读性
    3、 MySQL不区分大小写,建议使用大写
  • SQL语句分类
    1、DDL(Data Definition Language)
    数据库定义语言,用来定义数据库对象: 库、表、列等
    创建、删除、修改:库、表结构
    2、DML(Data Manipulation Language)
    数据库操作语言,用来定义数据库记录(数据)
    增、删、改
    3、DCL(Data Control Language)
    数据库控制语言,用来定义访问权限和安全级别
    4、DQL(Data Query Language)
    数据库查询语言,用来查询数据记录(数据)

    DDL: 数据库或表的结构操作(**
    DML: 对表的记录进行更新(增、删、改)(**
    DQL: 对表的记录查询 (**
    DCL: 对用户的创建,及授权


MySQL

数据库操作

  • 创建数据库:CREATE DATABASE [IF EXISTS] <database> [CHARACTER SET utf8];
  • 删除数据库:DROP DATABASE [IF EXISTS] <database>;
  • 修改数据库编码集:ALERT DATABASE <database> CHARACTER SET utf8;

数据类型

  • int 整形
  • double 浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大999.99
  • decimal 浮点型,在表单<金融>方面使用该类型,因为不会损失精度
  • char 固定长度字符串类型,char(255),数据的长度不足指定长度时,补足到指定的长度!最大255
  • varchar 可变长度字符串类型,varchar(65535),会留出来存放数据的长度,因此对空间造成损失,最大 65535
  • text(clob) 字长串类型:

    很小:tinytext 可变长度字符串,最大2^8-1Byte
    小: text 同上,最大2^16-1Byte
    中: mediumtext 同上,最大2^24-1Byte
    大: longtext 同上,最大2^32-1Byte

  • blob 字节类型:

    很小:binary 固定长宽二进制类型,最大255Byte
    很小:varbinary 可变长度二进制类型,最大255Byte
    很小:tinytext 可变长度二进制类型,最大2^8-1Byte
    小: text 同上,最大2^16-1Byte (64KB)
    中: mediumtext 同上,最大2^24-1Byte (16MB)
    大: longtext 同上,最大2^32-1Byte (4GB)

  • date 日期类型,格式为:yyyy-MM-dd
  • time 时间类型,格式为:hh:mm:ss
  • timestamp 时间戳类型,即有日期也有时间

数据表操作

  # 创建表:    CREATE TABLE [IF NOT EXISTS] <table>(    columeName1 columType,    columeName2 columType    ...    columeNamen columType    );  # 查看当前数据库中所有表名称:  SHOW TABLES;  # 查看指定表的创建语句:   SHOW CREATE TABLE <table>  # 查看表结构:        DESC <table>  # 删除表:              DROP TABLE <table>  # 修改表:              ALTER TABLE <table> ...
    # 添加列    ALTER TABLE <table> ADD(        columeName1 columType,        columeName2 columType        ...        columeNamen columType     );    # 修改列类型:    ALTER TABLE <table> MODIFY <columeName columeType>;    # 修改列名:    ALTER TABLE <table> CHANGE <oldColumeName newColumeName newColumeType>;    # 删除列:    ALTER TABLE <table> DROP <columeName>;    # 表名称:    ALTER TABLE <table> RENAME TO <newTableName>;

DQL: (数据记录查询)
- SELECT * FROM <table>;

DML: (数据库操作,数据记录增删改查)
1. 插入数据
- INSERT INTO <table>(columeName1, columeName2,...) VALUES(columeValue1, columeValue2,...);

在表名后给出要插入的列名,其他没有指定的列等同于插入null值。所以插入记录总是插入一行,不可能是半行。
在VALUES后给出列值,值的顺序筱数必须与前面指定的列对应
INSERT INTO <table> VALUES(columeValue1,columeValue2...);
没有给出要插入的列,那么插入所有列,这时顺序很重要。
值的个数必须是该表列的个数
插入的顺序将与表创建的列顺序相同

  1. 修改数据库

    • UPDATE <talbe> SET columeName1=columeValue1, columeName2=columeValue2... [WHERE ...];

    • 条件(条件为可选的):
      条件必须是一个boolean类型的值或表达式, WHERE columeName=?
      条件中的运算符:=、!=、<>、>、<、>=、<=、BETWEEN … AND … 、IN(…)、 IS NULL、NOT、OR、AND、columeName=null(always false)、1=1(always true)
  2. 删除数据:

    • DELETE FROM <table> [WHERE ... ]
    • TRUNCATE TABLE <table>;TRUNCATE是DDL语句,它是先删除(DROP)该表,再CREATE该表。而且无法回滚

DCL(理解)

  • 一个项目创建一个用户!一个项目对应的数据库只有一个!
  • 这个用户只能对这个数据库有权限,其它数据库就不能操作了!

    1. 创建用户

      • CREATE USER username@ip IDENTIFIED BY 'password';
        用户只能在指定的IP地址上登录

      • CREATE USER username@'%' IDENTIFIED BY 'password';
        用户可以在任意IP地址上登录

    2. 给用户授权

      • GRANT 权限1,权限2,...权限n ON <database.*> TO username@ip;
        权限、用户、数据库
        给用户分派在指定的数据库上的指定权限
        例如:GRANT CREATE,ALTER,DROP,INSERT,UPDATE,DELETE,SELECT ON test.* TO kangliqi@localhost;

      • 给用户kangliqi分配在本机IP上操作test数据库的CREATE,ALTER,DROP,INSERT,UPDATE,DELETE,SELECT权限
        GRANT ALL ON <database.*> TO username@ip
        给用户分配指定数据库和IP上的所有权限

    3. 撤消权限

      • REVOKE 权限1,权限2,...权限n ON <database.*> TFROM username@ip;
        撤消指定用户在指定数据库上的所有权限
        例如: REVOKE CREATE,ALTER,DROP ON test.* FROM kangliqi@localhost;
    4. 查看权限

      • SHOW GRANTS FOR username@ip
        查看指定用户的权限
    5. 删除用户

      • DROP USER username@ip
0 0
原创粉丝点击