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-1Byteblob 字节类型:
很小: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...);
没有给出要插入的列,那么插入所有列,这时顺序很重要。
值的个数必须是该表列的个数
插入的顺序将与表创建的列顺序相同
修改数据库
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)
删除数据:
DELETE FROM <table> [WHERE ... ]
TRUNCATE TABLE <table>;
TRUNCATE是DDL语句,它是先删除(DROP)该表,再CREATE该表。而且无法回滚
DCL(理解)
- 一个项目创建一个用户!一个项目对应的数据库只有一个!
这个用户只能对这个数据库有权限,其它数据库就不能操作了!
创建用户
CREATE USER username@ip IDENTIFIED BY 'password';
用户只能在指定的IP地址上登录CREATE USER username@'%' IDENTIFIED BY 'password';
用户可以在任意IP地址上登录
给用户授权
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上的所有权限
撤消权限
REVOKE 权限1,权限2,...权限n ON <database.*> TFROM username@ip;
撤消指定用户在指定数据库上的所有权限
例如:REVOKE CREATE,ALTER,DROP ON test.* FROM kangliqi@localhost;
查看权限
SHOW GRANTS FOR username@ip
查看指定用户的权限
删除用户
DROP USER username@ip
- SQL概述—JDBC学习笔记
- JDBC学习笔记(1)—JDBC概述
- Oracle学习笔记day05——SQL概述
- JDBC学习笔记(3)—Statement执行SQL语句
- JDBC学习笔记(4)—PreparedStatement执行SQL语句
- 黑马程序员—学习笔记之SQL数据库概述、SQLServer的使用
- 学习笔记:jdbc连接、操作数据库SQL Server 2008 ——MyEclipse web示例
- JDBC编程学习笔记(二)——执行SQL语句 ExecuteSQL.java
- 学习笔记:jdbc连接、操作数据库SQL Server 2008(二)
- java学习笔记---Java中批处理SQL的使用方法(JDBC)
- 学习笔记:jdbc连接、操作数据库SQL Server 2008
- SQL学习重点概述
- JDBC学习笔记——JDBC性能优化
- JDBC学习笔记——JDBC性能优化
- linux内核学习笔记——概述
- C学习笔记——概述
- 计算机网络学习笔记——计算机网络概述
- 学习笔记:第一章——计算机网络概述
- 修改PyCharm的设置让新建python文件指定编码为utf-8
- h5第一课
- 求一个整数的位数,输出它,以及逆序
- hdu 1002大数加法
- 入门Webpack,看这篇就够了
- SQL概述—JDBC学习笔记
- java中compareTo和compare方法之比较
- Torch7入门续集(三)----Simple Layers的妙用
- 用户自动建立脚本
- hihocoder 1329 splay 伸展树
- 常用汇编串指令
- socket实现Ping命令
- 如何设置MathType下标的正斜体
- dubbo框架源码剖析- 环境准备[磨刀不误砍柴工]