Java数据库 1.3 SQL 语句

举报
我是小白呀iamarookie 发表于 2021/09/09 23:30:27 2021/09/09
【摘要】 SQL 语句 概述SQL 语句分类SQL 通用语法DDL 之数据库操作: database查看数据库删除数据库使用数据库 DDL 之表操作: table创建表查看表删除表修改表结构格式 D...

概述

数据库是不认识 Java 语言的, 但是我们同样要与数据库交互. 这时需要使用到数据库认识的语言 SQL 语句, 它是数据库的代码.

结构化查询语言 (Structured Query Language) 简称 SQL, 是关系型数据库管理系统都需要遵循的规范. 不同是数据库生产的厂商都支持 SQL 语句, 但都有特有内容.

SQL 语句分类

  • 数据定义语言: 简称 DDL (Data Definition Language). 用来定义数据库对象: 数据库, 表, 列等. 关键字: create, alter, drop 等
  • 数据操作语言: 简称 DML (Data Manipulation Language). 用来对数据库中表的记录进行更新. 关键字: insert, delete, update 等
  • 数据控制语言: 简称 DCL (Data Control Language). 用来定义数据库的访问权限和安全级别, 以及创建用户
  • 数据查询语言: 简称 DQL (Data Query Language). 用来查询数据库中表的记录. 关键字: select, form, where 等

SQL 通用语法

  • SQL 语句可以单行或者多行书写, 以分号结尾
  • 可以用空格和缩进来增强语句的可读性
  • MySQL 数据库的 SQL 语句不区分大小写, 关键字建议使用大写 (SELECT*FROM user)
  • 同样可以使用 /**/ 的方式完成注释

MySQL 中我们常使用的数据类型如下:

类型名称 说明
int (integar) 整数
double 小数类型
decimal (m,d) 指定整数位与小数为长度的小数类型
date 日期类型, 格式为 yyyy-MM-dd, 包含年月日, 不包含时分秒
datetime 日期类型, 格式为 YYYY-MM-DD HH:MM:SS, 包含年月日分秒
timestamp 日期类型, 时间戳
varchar (M) 文本类型, M 为 0~65535 之间的整数

DDL 之数据库操作: database

1. 创建数据库
2. 使用数据库
3. 查看某个数据库的定义的信息
4. 查看所有数据库
5. 查看正在使用的数据库
6. 删除数据库

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

例如:

#创建数据库 数据库中数据的编码采用的是安装数据库时指定的默认编码 utf8
CREATE DATABASE webdb_1;
#创建数据库 并指定数据库中数据的编码
CREATE DATABASE webdb_2 CHARACTER SET utf8;

  
 
  • 1
  • 2
  • 3
  • 4

执行结果:
在这里插入图片描述

查看数据库

查看数据库 MySQL 服务器中的所有的数据库:

show databases;

  
 
  • 1

执行结果:
在这里插入图片描述

查看某个数据库的定义的信息:

show create database 数据库名;

例如:
show create database webdb_1;

  
 
  • 1
  • 2
  • 3
  • 4

执行结果:

在这里插入图片描述

删除数据库

drop database 数据库名称;

例如:
drop database webdb_1;

  
 
  • 1
  • 2
  • 3
  • 4

执行结果:
在这里插入图片描述

使用数据库

查看正在使用的数据库:

select database();

  
 
  • 1

切换数据库操作命令:

use 数据库名;

例如:
use webdb_1;

  
 
  • 1
  • 2
  • 3
  • 4

DDL 之表操作: table

1.创建数据库表
创建分类表category  
 id name
2.设置自动增长从多少开始
 ALTER TABLE category AUTO_INCREMENT=200;

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

创建表

格式:

create table 表名(
  字段名 类型(长度) [约束],
  字段名 类型(长度) [约束],
  ...
);
类型:
varchar(n) 字符串
int 整形
double 浮点
date 时间
timestamp 时间戳
约束:(详情查看第四章)
primary key 主键, 被主键修饰字段中的数据, 不能重复, 不能为 null

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

例如, 创建分类表:

CREATE TABLE category (
cid INT primary key,  #分类ID
cname VARCHAR(100)  #分类名称
);

  
 
  • 1
  • 2
  • 3
  • 4

执行结果:
在这里插入图片描述

查看表

查看数据库中所有表:

格式: show tables;

  
 
  • 1

查看表结构:

格式: desc 表名;

例如: 
desc category;

  
 
  • 1
  • 2
  • 3
  • 4

执行结果:
在这里插入图片描述

删除表

格式:

drop table 表名;

例如:
drop table category;

  
 
  • 1
  • 2
  • 3
  • 4

执行结果:
在这里插入图片描述

修改表结构格式

修改表添加列, 格式:

alter table 表名 add 列名 类型(长度) [约束];

  
 
  • 1

修改表添加列:

ALTER TABLE category ADD `desc` VARCHAR(20);
为分类表添加一个新的字段为 分类描述 varchar(20)

  
 
  • 1
  • 2

修改表列的类型长度及约束:

ALTER TABLE category MODIFY `desc` VARCHAR(50) NOT NULL;
为分类表的描述字段进行修改,类型varchar(50) 添加约束 not null

  
 
  • 1
  • 2

修改表列名:

ALTER TABLE category CHANGE `desc` description VARCHAR(30);
为分类表的分类名称字段进行更换 更换为 description varchar(30)

  
 
  • 1
  • 2

修改删除列:

ALTER TABLE category DROP description;
删除分类表中description这列

  
 
  • 1
  • 2

修改表名:

RENAME TABLE category TO category2;
为分类表category 改名成 category2

  
 
  • 1
  • 2

修改表的字符集:

ALTER TABLE category CHARACTER SET gbk;
为分类表 category 的编码表进行修改, 修改成 gbk

  
 
  • 1
  • 2

DML 数据操作语言

插入表记录: insert

语法:

-- 向表中插入某些字段
insert into 表 (字段1,字段2,字段3..) values (值1,值2,值3..);
-- 向表中插入所有字段,字段的顺序为创建表时的顺序
insert into 表 values (值1,值2,值3..);

  
 
  • 1
  • 2
  • 3
  • 4

注意:

  • 值与字段必须对应, 个数相同, 类型相同
  • 值的数据大小必须在字段的长度范围内
  • 除了数值类型外, 其它的字段类型的值必须使用引号 (建议单引号)
  • 如果要插入空值, 可以不写字段, 或者插入 null

例如:

INSERT INTO category(cid,cname) VALUES('c001','电器');
INSERT INTO category(cid,cname) VALUES('c002','服饰');
INSERT INTO category(cid,cname) VALUES('c003','化妆品');
INSERT INTO category(cid,cname) VALUES('c004','书籍');
INSERT INTO category(cid) VALUES('c005');
INSERT INTO category(cname,cid) VALUES('耗材','c006');

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

更新表记录: update

用来修改指定条件的数据, 将满足条件的记录指定列修改为指定值.

更新所有记录的指定字段:

update 表名 set 字段名=值,字段名=值,...;

  
 
  • 1

更新符合条件记录的指定字段:

update 表名 set 字段名=值,字段名=值,... where 条件;

  
 
  • 1

注意:

  • 列名的类型与修改的值要一致
  • 修改值得时候不能超过最大长度
  • 除了数值类型外, 其它的字段类型的值必须使用引号引起

删除记录: delete

语法:

delete from 表名 [where 条件];

  
 
  • 1

DOS 操作数据乱码解决

我们在 dos 命令行操作中文时, 会报错:

insert into category(cid,cname) values(‘c010’,’中文’);
ERROR 1366 (HY000): Incorrect string value: '\xB7\xFE\xD7\xB0' for column 'cname' at
row 1

  
 
  • 1
  • 2
  • 3

错误原因: 因为 MySQL 的客户端设置编码是 utf-8, 而系统的 cmd 窗口编码是 gbk.

在 cmd 命令窗口输入命令, 此操作当前窗口有效, 为临时解决方案.

set names gbk;

  
 
  • 1

文章来源: iamarookie.blog.csdn.net,作者:我是小白呀,版权归原作者所有,如需转载,请联系作者。

原文链接:iamarookie.blog.csdn.net/article/details/112556963

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。