SQL语句

SQL语句不区分大小写,关键字建议使用大写,必须再后面加分号
单行注释-- ,或#(mysql特有)
多行注释:/* */
数据库创建出来的默认字符集是utf8
sql分类
分类:DDL(操作数据库、表)
DML(增删改表中的数据)
DQL(查询表中的数据)
DCL(权限和访问)

操作数据库:
CRUD

create创建 : create
1.创建数据库:create database 数据库名称;
2.创建数据库,判断不存在,再创建:
create database if not exists 数据库的名称;
3.创建数据库,并指定字符集
create database 数据库名称 character set 字符集名;
4.创建db4数据库,判断是否存在,并指定字符集为gbk
create database if not exists db4 character set gbk;

Retrieve查询:
1.查询所有数据库的名称
show databases;
2.查询某个数据库的字符集:查询某个数据库的创建语句
show create database 数据库名称;

Updata修改
1.删除数据库
drop database 数据库名称;(操作比较危险)
2.判断数据库是否存在,存在再删除
drop database if exists 数据库名称

使用数据库
1.查询当前正在使用的数据库名称
select database();
2.使用数据库
use 数据库名称

2.操作表
Create创建
1.语法:
create table 表名(
列名1 数据类型1,
列名2 数据类型2,

列名n 数据类型n
);
注意:最后一列,不需要加逗号(,)

数据类型:常见的
1.int 整数类型
age int
2.double 小数类型
score double(5,2)#最多五位,小数点后保留两位
3.date 日期,只包含年月日,yyyy-mm–dd
4.datetime 日期,包含年月日时分秒 yyyy–mm-dd hh:mm:ss
5.timestamp 时间戳类型 包含年月日时分秒 yyyy-mm-dd hh:mm:ss
如果将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值
6.varchar:字符串
name varchar(20)姓名最大20个字符
张三 两个字符

1.创建表
create table student(
id int,
name varchar(32),
age int ,
score double(4,1),
birthday data,
insert_time timestamp
);

2.复制表
create table 表名 like 被复制的表名

Retrieve查询
1.查询某个数据库中所有的表的名称
show tables;
2.查询表结构
desc 表名;

Update修改
1.修改表名
alter table 表名 rename to 新的表名
2.修改表的字符集
alter table 表名 character set 字符集名称;
3.添加一列
alter table 表名 add 列名 数据类型;
4.修改列名称 类型
alter table 表名 change 列名 新列名 新数据类型;
alter table 表名 modify 列名 新数据类型;
5.删除列
alter table 表名 drop 列名;

Delete删除
1.drop table 表名;
2.drop table if exists 表名;

##DML:增删改表中数据
1.添加数据:
语法:insert into 表名(列名1,列名2,…列名n)values(值1,值2,…值n)
注意:1.列名和值要一一对应。
2.如果表名后,不定义列名,则默认定义所有列名

2.删除数据:
语法:
delete from 表名 [where 条件]
注意:
1.如果不加条件,则删除表中所有记录。
2.如果要删除所有记录
1.delete from 表名; --不推荐使用
2.truncate table 表名–推荐使用,效率高
3.修改数据
语法:
update 表名 set 列名1=值1,列名2=值2,…[where 条件];
注意:
1.如果不加任何条件,则会将表中所有记录全部修改。

##DQL:查询表中的记录
1.select *from 表名;

1.语法:
select
字段列表
from
表名列表
where
条件列表
group by
分组字段
having
分组之后的条件
order by
排序
limit
分页限定

2.基础查询
1.多个字段的查询
select 字段名1,字段名2,…from 表名;
注意:
如果查询所有字段,则可以使用*来替代字段列表;
2.去除重复
distinct
3.计算列
一般可以使用四则运算计算一些列的值。
ifnull(表达式1,表达式2):null参与的运算,计算结果都为null
表达式1:哪个字段需要判断是否为null
如果该字段为null后的替换值。
4.起别名
as:as也可以省略

3.条件查询
1.where子句后跟条件
2.运算符
*>、<、<=、>=、=、<>(不等于)
between…add
in集合(19,20,21)
like:模糊查询
占位符:
_:单个任意字符
%:多个任意字符
is null
is not null
or或||
not或|

查询语句
1.排序查询
*语法:order by 子句
order by 排序字段1 排序方式1,排序字段2,排序方式2(第一条件一样才会使用)
排序方式:
asc:升序,默认的
desc 降序的
*注意:如果有多个排序条件,则当前面的条件值一样时,才会判断第二条件

2.聚合函数:将一列数据作为一个整体,进行纵向的计算。
1.count:计算个数
select count(列名) from 表名;
1.一般选择非空的列:主键(不能为null)
注意:聚合函数的计算会排除null值。
解决方案:
1.选择不包含非空的列进行计算

1.ifnull函数
2.sum:计算总和
3.max
4.min
5.avg:计算平均值

3.分组查询:
1.语法:group by 分组字段;
2.注意:
分组之后查询的字段:分组字段,聚合函数
where和having的区别?
1.where在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足条件,则不会被查询出来
2.where后不可以跟聚合函数,having可以进行聚合函数的判断

4.分页查询
1.语法:limit开始的索引,每页查询的条数
2.公式:开始的索引=(当前的页码-1)*每页显示的条数
3.分页操作是一个mysql”方言“,limit时mysql特有

##约束
概念:对表中的数据进行限定,保证数据额正确性、有效性、完整性
分类:
1.主键约束:primary key
2.非空约束:not null
3.唯一约束:unique
4.外键约束:foreign key

#非空约束:not null
1.创建表时添加约束
2.创建表后,添加非空约束
alter table 表名 modify 列名 not null

#唯一约束:某一列的值不能重复
注意:唯一约束可以有null值,但时只能有一条记录为null
1.创建表时添加约束
2.删除唯一约束
alter table 表名 drop index 列名 unique;
3.在表创建完后,添加唯一约束
alter table 表名 modify 列名 unique;

#主键约束:primary key
1.注意:
1.含义:非空且唯一
2.一张表只能有一个字段为主键
3.主键就是表中记录的唯一标识
2.在创建表时,添加主键约束
3.删除主键
alter table 表名 drop primary key;
4.创建完表后,添加主键
alter table 表名 modify primary key;
5.自动增长:
概念:如果某一列时数值类型的,使用auto_increment可以来完成值的自动增长(也能实现主键为null)
2.创建表的时候,添加自动增长
3.删除自动增长
alter table 表名 modify 列名;
4.添加自动增长
alter table 表名 modify 列名auto_increment;

#外键约束,可以关联好友和群foreign key,让表和表产生关系,从而保证数据的正确性
1.在创建表时,可以添加外键
语法:创建表时有一个外键列
外键列
constraint 外键名称 foreign key (外键列名称) references 主表名称(主表列名称)

2.删除外键
alter table 表名 drop foreign key 外键名称;

3.创建表之后,添加外键
alter table 表名 add constraint 外键名称 foreign key(外键字段名称)references 主表名称(主表列名称)

4.级联操作
1.添加级联操作
语法:alter table 表名 add constraint 外键名称
foreign key (外键字段名称)references 主表名称(主表列名称) onupdate cascadeondelete cascade ;

2.分类:
1.级联更新:on update cascade
2.级联删除:on delete cascade

##数据库的设计
1.多表之间的关系
1.一对一:
*如:人和身份证
2.一对多(多对一);
*如:部门和员工
3.多对多:
*如:学生和课程
2.实现关系:
1.一对多:
实现方式:在多的一方建立外键,指向一的一方的主键
2.多对多:
实现方式:需要借助第三张中间表。中间表至少包含两个字段,这两个字段作为第三张表的外键,分别指向两个表的主键
3.一对一:
实现方式:可以在任意一方添加外键指向另一方的主键

Java基础——SQL语句相关推荐

  1. Mysql学习笔记(基础)基础sql语句详细记录

    数据库学习(基础) // 个人网课学习记录,如果有违规等问题,请联系我删除~ mysql下载安装( 解压版安装配置 下载版安装配置 ) 需求分析:使用cmd命令来创建一个数据库,并对数据库中得一张分类 ...

  2. JAVA中用 SQL语句操作小结

    1.添加记录(INSERT) 使用SQL语句的INSERT命令可以向数据库中插入记录,INSERT命令的基本形式为: INSERT INTO 表名 [(字段名1,字段名2-)] VALUES (值1, ...

  3. java拼接sql语句的in条件

    1.问题 java拼接sql语句的in条件,需要将列表或数组转换为(" "," ")的格式 2.代码 StringBuffer sbuffer= new Str ...

  4. 《SQL Server基础——SQL语句》

    SQL Server基础--SQL语句 一.创建和删除数据库: 1.创建数据库(默认化初始值) 格式: CREATE DATABASE 数据库名称 例如: CREATE DATABASE SCC 2. ...

  5. Sqlserver,Mysql基础SQL语句

    Sqlserver,Mysql基础SQL语句 SqlServer 建表 修改字段默认值 修改表名 修改字段名 添加字段 例子 更改字段 删除字段 添加表注释 添加字段注释 数据排序 方法一 ROW_N ...

  6. java 查询sql语句_java执行SQL语句实现查询的通用方法详解

    完成sql查询 并将查询结果放入vector容器,以便其他程序使用 /* * 执行sql查询语句 */ public static vector executequery(class clazz, s ...

  7. java中sql语句_java中sql语句的编写规则

    java中sql语句的编写规则 发布时间:2020-06-26 15:11:11 来源:亿速云 阅读:143 作者:Leah 这期内容当中小编将会给大家带来有关java中sql语句的编写规则,文章内容 ...

  8. Java中SQL语句的拼接规则

    拼接规则示例 java中的字符串只能双引号,如果字符串中需要拼接变量,该变量用单引号括起来,然后加两个双引号再加两个加号,中间就是变量. 例如:查询数据库中的用户名和密码. 注:为和sql表中的use ...

  9. 数据库基础SQL语句

    文章目录 一.数据库的四大特性ACID: 二.事务 三.终端安装数据库(Docker插件) 1.安装命令 2.检验安装 3.进入服务 4.登录MySQL 5.创建数据库 6.登出 7.退出服务 8.执 ...

最新文章

  1. Sublime遇见中文乱码问题?
  2. windows 安装python-pcl 测试ok
  3. icp点云匹配迭代最近邻算法
  4. eclipse/MyEclipse 日期格式、注释日期格式、时区问题[转]
  5. Java中sleep()与wait()的区别
  6. 微信小程序web-view的H5页面如何使用微信直播功能
  7. Thinkphp微信幸运大转盘抽奖实例
  8. IAR_EW_MSP430下载
  9. java整理快捷鍵_常用Eclipse快捷键整理,提高效率
  10. Java众神之路(2)-标志符
  11. cala中隐式转换(implicit conversion)的优先顺序
  12. 宋宝华: 用off-cpu火焰图进行Linux性能分析
  13. 一次ffmpeg -c copy 在avformat_write_header函数处报错:Could not find tag for codec rawvideo in stream #0的原因分析
  14. SSJ项目给我的感悟
  15. 二分法求中点最佳code写法
  16. GitHub 上传大小限制 大文件无法上传问题!
  17. 基于DHT11的温湿度显示
  18. OkHttp全解析(一)——基本概念与使用方法
  19. nginx启动成功,但是访问不了页面解决办法
  20. 信息处理技术员知识点总结(错题记录)——考试通过,完结撒花

热门文章

  1. 深入了解大数据分析师
  2. learnopencv 之 Delaunay 显示动态绘制obama脸型特征 @ Jupyter
  3. [OpenGL]一个简单的地球月亮太阳运转模型
  4. elf 取路径_利用libbfd获取elf可执行文件的section(节)及symbol(符号)信息
  5. Makfile笔记——patsubst函数、foreacch函数、wildcard函数
  6. 初中生计算机考试实施方案,2021 年德阳市初中毕业生信息技术学业水平考试实施方案,精英中考网...
  7. phpexcel导出-PHP_XLSXWriter
  8. 学生和教师信息管理系统
  9. 宝藏级UI组件库:FirstUI,微信小程序版+uniapp版双版至V1.5.0,完美支持vue3
  10. js 前端抠图 性能优化