数据库概论
一,什么是SQL?
结构化查询语言,即定义好的所有关系型数据库规则,每种数据库也有其不一样的地方被称为其“方言”。
二,通用语法
1,SQL可以单行或者多行书写,以分号结尾。
2,可以使用空格和缩进来增强可读性。
3,SQL语句不区分大小写,但关键字建议使用大写。
4,三种注释:
单行注释:-- 注释内容 或 # 注释内容(MySQL“方言”)
多行注释:/* 注释内容 */
三,SQL分类
1.DDL: 数据定义语言,用于定义数据库对象(数据库、表、列、等,即创建和操作数据库和表的语言)
#操作表:CRUD(了解)
1.创建(create):create table 表名(
列名1 数据类型,
列名2 数据类型,
......................
);
(数据类型中tiamstamp 代表时间戳,如果不给其赋值或者赋值为空,那么会默认使用系统当前时间进行保存,可以简化开发)
2.查询(retrieve):show tables (查询数据库中的所有表)
3.修改(update):alter table 表名 rename to 新的表名 (修改表名,还可以修改列、数据类型等等此处不多做举例)
4.删除(delete):drop table 表名(删除指定表)
#操作数据库: (了解)
1.创建(create):create database if not exit 数据库名 character set 编码格式;(如果没有这个指定数据库就创建)
2.查询(retrieve):show create database 数据库名(查询创建指定数据库的信息);show database(查看所有数据库)
3.修改(update):alter database 数据库名 character set 编码格式(修改指定数据库编码格式)
4.删除(delete):drop database 数据库名(删除指定数据库)
2.DML: 数据操作语言,用于对数据库中的表数据进行增删改 (即Java代码中常见的增删改语句)
1.添加数据:insert into 表名(列名1,列名2,列名3...)values(值1,值2,值3...)
注:如果不定义列名,则是给表中所有列添加数据,并且值与列名必须一一对应,除了数字类型其他数据都需要用引号括起来
2.删除数据:delete from 表名 [where 条件]
3.修改数据:update 表名 set 列名 1= 值1,列名2 = 值2,.....[where 条件]
3.DQL: 数据查询语言,用于查询数据库中的表数据 (即Java代码中常见的查询语句)
单表查询:排序*可以多次排序(order by 排序字段,order by 排序字段) 分组(group by 排序字段)
聚合函数:将一列数据做为整体进行纵向的计算(count、max、min、sum、avg)
分页查询(MySQL方言limit):limit 开始的索引,每页显示的条数
开始的索引=(当前的页码减1)乘以每页显示的条数
基础查询:select 字段名 from表名;去除重复:distinct;计算列:ifnull(列名,替换值)
条件查询:只能在where后,运算符(<,>,=,<=,>=,<>;between...and...;in(集合);is null;and;or;not)
模糊查询:like (_:单个字符 %:多个字符)
多表查询:
内连接查询:分为隐式内连接(使用where后面的条件来清除无用的笛卡尔积项)
和显式内连接(select 查询的列 from 表名1 inner join 表名2 on 条件 ;
使用on后面的条件来消除无用的笛卡尔积项)两种方式效果相同,只是语法不同。
内连接查询需要注意的事项:
1.需要查询的表名。
2.确定好条件。
3.需要查询那些字段。