🐖🐖🐖🐖如果喜欢!!🐂🐂🐂🐂
🐖🐖🐖🐖欢迎关注!!🐂🐂🐂🐂
🐖🐖🐖🐖持续回访! !🐂🐂🐂🐂
CSDN主页:所有博客内容,Java大树逐渐成长
Gitee地址:想看博客代码??点击这里
QQ : 1939639916(有问题可以加好友,备注csdn)
目录
一、命名规则
(1)采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成,命名简洁明确,多个单词用下划线 ' _ ' 分隔
(2)全部小写命名,禁止出现大写
(3)字段必须填写描述信息
(4)禁止使用数据库关键字,如:name,time ,datetime password 等
(5)字段名称一般采用名词或动宾短语
(6)采用字段的名称必须是易于理解,一般不超过三个英文单词
(7)在命名表的列时,不要重复表的名称
例如,在名employe的表中避免使用名为employee_lastname的字段
(8)不要在列的名称中包含数据类型
(9)字段命名使用完整名称,禁止缩写
举个例子
user_name,user_id,is_friend,is_good
二、SQL 类型
数据类型 | 大小 | 说明 | 对应java类型 |
int | 4字节 | 与java一样 | int |
decima (M,D) | M/D最大值+2 | 双精度 M : 指定长度 D : 小数点位数 | BigDecima |
varchar (SIZE) | SIZE | 可变长度字符串 | String |
datetime | 8字节 | 表示时间范围: 1000-01-01 00:00:00 到9999-12-31 223:59:59 函数now(): 表示当前时间 | java.util.Date java.sql.Timestamp |
三、数据库操作
- create database 数据库名 ;
- show databases;
- use 数据库名
- drop database 数据库名;
四、表操作
- create table 表名( 列名1 类型1,列名2 类型2...);
- show tables;
- desc 表名;
- drop table 表名;
五、CURD增删查改
(一)新增
①普通新增
insert into 表名(列1,列2) values (数据1,数据2...);
说明: 表明后面括号可以省略,省略默认全列插入
①复制新增
insert into 表1 (列1,列2..) select 列1,列2 from 表2;
说明: 将表2 的列1 和 列2复制到 表1 中,要求查询的列要与插入的列匹配
(二)删除
delete from 表名 where 限制内容;
说明: 需要配合关键字进行条件限制删除
(三)查询
普通查询 --- 查询有很多点 可以参考下表
select 查询的内容 from 表名
说明: *是通配符,表示所有,可以选择查询全部,也可以查询部分内容
(四)修改
update 表名 set 内容 where 限制内容;
六、内容表格总结:
比较运算符 | |
>,>=,>, | 可以比较int ,varchar,datetime |
= , != , <> | 相等和不相等和早期不相等 注意只有一个等号,和java双等号不一样 |
<=> | 相等,null安全,null 和null比较结果为true ; =是false |
between A and B | 范围匹配, [A , B] |
in (option1,option2...) | 如果是option中的任意一个,返回true |
is null 和 is not null | 是空,不是空 : 相当于java中的 = null 和 != null |
like | 模糊匹配,&表示多个任意字符 ,_表示一个字符 |
逻辑运算符 | |
and | 相当于java中的 && |
or | 相当于java 中的 || |
not | 相当于java中的 ! |
查询常用 | |
distinct | 去重--针对去重的每一个条件都相同才会去重 select distinct 列名 from 表名 ; |
order by | order by asc 升序 order by desc 降序 |
where | 条件限制 |
limit | 分页查询---select ... from ... where ... order by ... limit S offset N; 从第S条开始查询 , 查询N条 ; offset 可以省略 |
数据库约束 | |
not null | 指示某列不能存储null值 |
unique | 保证这一列每一行必须有唯一的值(不重复) |
default | 规定没有给列赋值 时的默认值 |
primary key | 主键 : not null 和 unique 的结合 确保某列有唯一标识 |
foreign key | 外键 : 保证一个表中的数据匹配另一个表中的值的参照完整性 |
check | 保证列中的值符合指定的条件(mysql5并不支持这个功能,了解即可) |
聚合函数 | |
count | 返回查询到的数据的 数量(计算行数) |
sum | 返回查询到的数据的 总和(必须要是数字) |
avg | 返回查询到的数据的 平均值(数字或者日期) |
max | 返回查询到的数据的 最大值 |
min | 返回查询到的数据的 最小值 |
聚合关键用法 | |
group by | 分组聚合: 根据查询结果,把相同的记录分成一组,再针对每一组进行聚合 例子 : select from max(salary),min(salary) form emp group by role 查询每个role(员工岗位)的最高和最低工资 |
having | 条件限制:对分组结果进行过滤的时候要使用having,必须与 group by配合使用 和where类似,区别是分组前用where 分组后用having |
多表查询(联合查询) | |
join on 或者 , | 内连接:通过笛卡尔积让两个表连接到一起 主要where的限制条件 |
left/right join on | 左外连接: 左侧的表完全显示 右外连接: 右侧的表完全显示 |
子查询( 嵌套查询) | |
in ( ) | 嵌套查询: 是一种嵌套在其他 SQL 查询的 WHERE 子句中的查询。 子查询用于为主查询返回其所需数据,或者对检索数据进行进一步的限制。 |
七、外键约束
(一)什么是外键约束?
MySQL的外键约束用来在两个表数据之间建立链接,其中一张表的一个字段被另一张表中对应的字段约束。
被约束的表叫做从表(子表),另一张叫做主表(父表),属于主从关系。
(二)外检约束的关键字
- CASCADE :在父表上update/delete记录时,同步update/delete掉子表的匹配记录
- SET NULL :在父表上update/delete记录时,将子表上匹配记录的列设为null (要注意子表的外键列不能为not null)
- NO ACTION :如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作
- RESTRICT :同no action, 都是立即检查外键约束
- SET NULL :父表有变更时,子表将外键列设置成一个默认的值 但Innodb不能识别