一、DDL语句
1、含义:数据定义语言
2、作用:操作表
3、常用关键字:CREATE(创建)DROP(删除销毁)ALTER(修改)
4、格式
4-1SQL语言的注释
--单行注释
/*多行注释*/
4-2删除表:DROP TABLE[IF EXISTS] 表名;
4-3 创建表:参考javaBean中定义有参构造器
CREATE TABLE 表名(
列名1 数据类型[约束] [字段约束],
列名2 数据类型[约束] [字段约束],
.......
列名n 数据类型[约束] [字段约束]
);
注意!!最后一个列不要写逗号(,)
5、表约束
5-1又称字段约束或者列约束
5-2作用:限定表中指定字段存储数据的规则,根据表中列的含义和实际情况相结合来编写表约束
5-3分类
(1)通用约束--所有关系型数据库
5-3-1非空约束--NOT NULL(常用)
5-3-2唯一约束 --UNIQUE(常用)
5-3-3默认值约束--DEFAULT 值(没有特殊一般不使用)、
5-3-4外键约束 --FOREIGN KEY(必须使多表操作)
5-3-5主键约束--PRIMARY KEY(重点)
特点1:非空且唯一,等价于NOT NULL 和UNIQUE同时使用
特点2:每张表中有且仅有一个主键字段
特点3:如果表中定义主键字段,推荐使用不具备业务逻辑的列作为主键列
(2) “方言”约束--只适用于MySQL数据库
UTO_INCREMENT--主键自增长
特点1:必须配合主键字段编写
特点2:默认从1开始,每次增长一个,类似java 中得 ++或+=1
6、DDL应用
二、DML语句
1、含义:数据操作语言
2、作用:操作表中的数据
3、关键字:
INSERT INTO .......VALUES........插入
UPDATE ......SET.......修改
DELETE FROM.....删除
4、插入操作
4-1向表中的所有字段插入一条数据
INSERT INTO 表名VALUES(值1,值2......);
注意!!!VALUE语句中值得循序与表字段的顺序一致
4-2向表中指定字段(一般不具有自增长和默认值字段)插入一条数据
5、修改操作
注意!!!!执行修改操作时一定要带有条件的修改,否则
否则会将表中的所有数据都进行修改
5-2语法
UPDATE 表名SER 列1 = 值,列2 = 值,......[WHERE 条件];
5-3代码演示
(1)将所有学生的学科全部改为java
6、删除操作
6-1注意!!执行删除操作时一定要带有条件的删除,否则会将表中的所有数据都删除
6-2语法
DELETE FROM 表名[WHERE 条件];
6-3代码演示
(1)删除学号SYOO5的学生
(2)删除所有
6-4DELETE语句和DROP语句的区别
(1)DELETE语句:DML语句,操作表中的数据,删除表中数据,但是保留表结构
(2)DROP语句,DDL语句,操作表,将表结构删除
三、DQL语句
1、含义:数据查询语言
2、作用:查询表中数据
3、查询操作结果分类
(1)没有结果----0条数据
(2)有结果
3-1有一个结果--一条数据
3-2有多个结果--存放在List集合中
4、语法--(简单)
SELECT*|字段|函数 FROM 表名;
*:表示查询指定表中过的所有字段:实际开发中使用指定字段代替*编写
这是最简单的数据库优化的方式之一
字段:表示查询表中的指定字段
函数:表示调用MySQL中定义好的方法
5、使用Navicat导入别人定义好的表(重点掌握)
6、DQL基础操作
6-1查询Product表中的所有数据
6-2查询product表中的指定字段(实际开发中常用)
6-3去重操作
6-4算数运算 +-*/
(1)MySQL中得算数运算值只针对数值型和日期型数据
(2)数值型数据可以进行+-*/操作;日期型只支持+-操作,
代码演示
7、过滤查询--查询满足指定条件的数据
7-1
7-3逻辑判断:ADN(&&) OR(||) NOT(!)
7-6模糊查询
(1)又称关键字查询
(2)语法 SEKECT*|字段|函数FROM 表名 WHERE字段 LIKE值;
(3)通配符
为了防止不同开发人员使用符号不同导致开发受阻,因此MySQL提出通用配置符号(通配符)
_:表示一个字符
%:表示任意多个子字符,取值范围[0,正无穷]
8、排序显示
8-1分类
升序排序:默认的排序方式,关键字ASC,可省略不写
降序排序:关键字DESC,必须写
8-2实际开发中,如果没有特殊要求不提供排序操作,如果提供会增加用户的等待结果时长;
9、分页显示
9-1、好处
(1) 提高用户的观感度
(2)一定程度上避免了内存溢出的风险
9-2、语法
SELECT*|字段|函数
FROM表名
LIMIT?,?;