文章目录

  • MySQL
    • SQL
      • MySQL的语法要求
      • SQL分类
      • DDL:数据定义语言
      • DML:数据库操纵语言,对表中数据的增删改
      • 简单的查询
      • 数据的导入和写出
    • 约束与索引
      • 约束与索引的概念
      • DDL
        • 约束的分类
        • 主键约束:primary key
        • 非空约束:not null
        • 唯一约束:unique key
        • 默认值约束:default
        • 检查约束:check(mysql5.7不支持)
        • 自增约束:auto_increment
        • 外键约束:foreign key
          • 外键的级联策略
    • 函数
      • 单行函数
        • 字符串函数
        • 数学函数
        • 日期函数
        • 流程函数
      • 多行(分组)函数
    • 关联查询(联合查询,多表联查)
      • 关联查询的七种结果
      • 如何实现
        • 内连接:实现A ∩ B [inner] join
        • 外连接
          • 左外连接 left join:显示左表中所有数据
          • 右外连接 right join:显示右表中所有数据
          • 全外连接 union :将两个结果进行合并
        • 特殊的关联查询:自连接(自己连接自己)
          • 三表查询

MySQL


SQL

MySQL的语法要求

  1. mysql 不区分大小写
    关键字,表名,数据库名都不区分大小写
show variables like 'coll%';--显示mysql的校对规则 ci :不区分大小写;cl :区分大小写
  1. 字母数字下划线美元符组成
    数字是可以开头的
  2. 命名时不可以有空格
  3. 命名是不要使用mysql的关键字
    如果非要使用,需要使用飘号(`关键字`)
  4. DBMS内不能有同名的库,一个库中不能有同名表,一个表中不能有同名字段
  5. 标点符号:英文半角
  6. 注释:
    1. – 单行注释
    2. # 单行注释
    3. /* */ 多行注释

SQL分类

  • DDL (Data Definition Language)︰数据定义语言,定义库,表结构等,包括create,drop,alter等
  • DML (Data Manipulation Language):数据操作语言,增删改查数据,包括insert,delete,update,select等
  • DQL(Data query Language):数据查询语言select
  • DCL (Data Control Language)︰数据控制语言,权限,事务等管理(例:保证转账的双方要么都成功,要么都失败)。

DDL:数据定义语言

-- 展示当前DBMS内所有的库
show databases;
--创建库
create database 数据库名 charset 字符编码();
create database 数据库名;
-- 删除数据库
drop database 数据库名;
-- 使用数据库(数据库切换)
use 数据库名;
-- 展示当前库内所有的表
show tables;
-- 创建表 (字段与字段之间用逗号分隔,最后一个字段后无逗号)
-- 列的定义(有字段名 数据类型)
create table 表名(
字段名 数据类型,id int
);
-- 删除表
drop table 表名;
-- 对表重新命名
alter table stu rename newstu;
-- 展示当前表的信息
desc 表名;
-- 创建表
create table stu(
id int,
sname varchar(20),
sex char
);
-- 新增字段
-- 新增一列在末尾
alter table stu add money double;
-- 新增一列在开头
alter table stu add money double first;
-- 新增一列在指定列的后面:col_name 列的名字
alter table stu add money double after sname;
-- 修改money列 将money修改为account double(5,2)
-----------表名--------旧列名--新列名--新列类型
alter table stu change money account double(5,2);
-- 修改列的类型 sname varchar(20)改为varchar(10)
alter table stu modify sname varchar(10);
--删除列
alter table stu drop sex;

DML:数据库操纵语言,对表中数据的增删改

create table teacher(
id int,
sname varchar(20),
sex char,
money double
);
--数据添加 使用 insert into 表名 values(每一个字段的值);要求值的数量与字段的数量保持一致
-- 如果数据类型不一样,数据也可插入
-- 给指定列赋值
insert into 表名(字段1,字段2) values(值1,值2);
insert into teacher(id,sname) values(1,"李白");
-- 给指定列赋值
insert into 表名 set 字段名=字段值;
-- 给多个列赋值
insert into 表名 set 字段名=字段值,字段名=字段值;
-- 批量新增
insert into 表名 values(值1,值2……),(值1,值2……),(值1,值2……),……;
-- 使用delete删除数据(不加条件则删除全部delete from 表名;)。底层是一条一条的删除,效率低
delete from 表名 [where] 删除的条件;
-- 使用truncate删除数据:相当于新建一张表,效率高
truncate 表名;-- update 修改表中数据
-- 如果没有条件限制,则是对整张表的修改
update 表名 set 字段=字段值 [where];
-- 如果有多个字段需要更新,则也是只写一个set,多个字段之间使用逗号隔开
update 表名 set 字段=字段值,字段=字段值 [where];

简单的查询

-- 展示该表所有内容
select * from 表名;
-- 查询指定字段
select 字段名,字段名,…… from 表名;
-- 查询该表指定字段为该字段值的所有内容
select * from 表名 where 字段名=字段值;
-- 查询该表为该字段列的所有内容
select 字段名 from 表名;
-- distinct 去除重复数据
select distinct 字段名 from 表名;
-- 对表中的字段起别名(字段名 [as] 别名)
-- 如果字段中右关键字或者空格用引号包裹
select 旧字段名 as 别名,…… from 表名;

数据的导入和写出

-- 导出数据
-- 先退出mysql
mysqldump -uroop -p 数据库名 > 路径
-- 导入外部的数据
-- 先mysql处于登录状态
-- 再选择数据库后导入
source 存储数据的路径

约束与索引

约束与索引的概念

约束是用来对数据业务规则和数据完整性进行实施、T维护。约束的作用范围仅限在当前数据库,约束可以被当做数据库对象来处理,它们具有名称和关联模式,是逻辑约束,不会因为设置约束而额外占用空间。

  1. 数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。它是应防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。

    数据的完整性要从以下四个方面考虑:

  • 实体完整性(Entity Integrity):例如,同一个表中,不能存在两条完全相同无法区分的记录
  • 域完整性(Domain Integrity) :例如︰年龄范围0-120,性别范围"男/女”
  • 引用完整性(Referential lntegrity):例如:员工所在部门,在部门表中要能找到这个部门
  • 用户自定义完整性(User-defined Integrity)︰例如:用户名唯一、密码不能为空等,本部门经理的工资不得高于本部门职工的平均工资的5倍。
  1. 根据约束的特点,分为几种:
  • 键约束:主键约束、外键约束、唯—键约束
  • Not NULL约束:非空约束
  • Check约束:检查约束(5.7版本不支持)
  • Default约束:默认值约束
  • 自增约束
  1. 约束(CONSTRAINTS)与索引(INDEX)

索引是一个单独、物理的存储在数据页上的数据库结构,它是表中一列或若干列值的集合和相应的指向表中数据值的物理标识数据页的逻辑指针清单(类似于新华字典的目录索引页)。索引的存在会增加数据库的存储空间,也会使插入、修改数据的时间开销变多(因为插入和修改数据时,索引也要随之变动),但是可以大大提高查询速度。因此应该在键列、或其他经常要查询、排序、按范围查找的列上建立索引,而对于在查询中很少使用和参考的列、修改非常频繁的列,值很少的列(例如性别只有男和女)等列上不应该创建索引。

Mysql会在主键、唯一键、外键列上自动创建索引,其他列需要建立索引的话,需要手动创建。其中主键删除,对应的索引也会删除删除唯一键的方式是通过删除对应的索引来实现的删除外键,外键列上的索引还在,如果需要删除,需要单独删除索引

DDL

约束的分类

--在当前数据库内查看其他库中的表数据
select *from 库名.表名;
--查看所有表的约束
select * from information_schema .`TABLE_CONSTRAINTS`;
--查看指定表的约束
select * from information_schema. `TABLE_CONSTRAINTS` where table_name='表名' ;
-- 展示当前表内所有的索引
show index from 表名;
  • 约束的类型
  1. 主键约束:用于区分此条记录与其他记录的不同
  2. 唯一约束:当前字段字本表内,不能重复
  3. 默认值约束:设置默认值
  4. 检查约束:设置 自定义 插入条件(mysql5.7不支持)
  5. 自增约束:自动增长
  6. 外键约束:确保 引用关系没有问题

主键约束:primary key

主键约束:用于区分此条记录与其他记录的不同

如何创建主键约束?

  • 建表时
  1. 直接写到字段后
-- 创建学生表 主键约束
create table stu(
id int primary key,
sanme varchar(20)
);
-- 展示当前表内所有的索引
show index from stu;
-- 删除表后主键也会被删除
drop table stu;
--删除主键
alter table stu drop primary key;
  1. 字段都写完后
create table stu(
id int ,
sanme varchar(20),
primary key(id)
);
  • 建表后
create table stu(
id int,
sanme varchar(20)
);
-- 添加主键
-- 如果表中有不满足约束存在的数据会添加失败
alter table stu add primary key (id);
  • 注意
    1. 主键唯一,且不能重复
    2. 主键不能为空
    3. 创建主键后就会自动创建索引
    4. 删除主键时会自动删除索引,非空约束没有去掉,不能插入空值
    5. 一张表只能有一个主键

非空约束:not null

  1. 设置非空约束的字段,在插入数据时,值不能为null
  • 建表时:只有在字段后加not null 这一种方式
create table stu(
id int primary key,
sname varchar(20) not null
);
-- 添加数据
insert into stu values(1,"李白");-- 添加成功
insert into stu values(1,null);-- 添加失败
select * from stu ;
desc stu;
  • 建表后
create table stu(
id int primary key,
sname varchar(20)
);
-- 如果表中有不满足约束存在的数据会添加失败
alter table stu modify sname varchar(20) not null;
  • 删除非空约束
-- 非空约束删除
alter table stu modify sname varchar(20);

唯一约束:unique key

保证此值在整张表内是唯一的

  • 建表时
  1. 写字段时
create table stu(
id int primary key,
sname varchar(20),
email varchar(20) unique key -- 设置唯一约束
);
insert into stu values (1,"李白","lb@l63.com");
-- 查看stu表信息
select * from stu;
-- 查看索引
show index from stu;
-- 查看约束
desc stu;
-- 删除唯一约束
alter table stu drop index email;
  1. 写完字段后
-- 在写完字段后再添加唯一约束
create table stu(
id int primary key,
sname varchar(20),
email varchar(20),
unique key(sname,email)
);
-- 查看索引
show index from stu;
-- 插入数据
insert into stu values(1,"李白","1b@163.com");
insert into stu values(2,"杜甫","1b@163.com");-- 添加成功
insert into stu values(3,"杜甫","df@163.com");-- 添加成功
--4. 如果是联合唯一约束,则必须对应字段的值必须都一样,才算是联合唯一索引约束
insert into stu values(4,"李白","1b@163.com");-- 添加失败(唯一索引错误)--删除唯一约束
alter table stu drop index sname;
  • 建表后
  • 注意
    1. 保证此值在整张表内是唯一的
    2. 创建完唯一约束,就会在表内创建一个索引
    3. 删除索引,就相当于删除了唯一约束(alter table 表名 drop index 索引名字;)
    4. 如果是联合唯一约束,则必须对应字段的值必须都一样,才算是联合唯一索引约束

默认值约束:default

如果没有给某个字段赋值,则会采用默认值

  • 创建方式:
  1. 建表时:
create table stu(
id int primary key,
sname varchar(20),
sex char default '男'
);
insert into stu values(1,"李白","男");
insert into stu values(2,"李白",null);-- 插入成功 sex为null
insert into stu(id,sname) values(3,"李白");--sex 默认值:男
-- 去除默认值约束
alter table stu modify sex char;
  1. 建表后
-- 再想加上默认值约束
alter table stu modify sex char default '男';
  • 注意

    1. 如果没有给某个字段赋值,则会采用默认值
    2. 默认值修饰的字段可以接收null
    3. 当没有给默认值约束修饰的字段时,才会采用默认值约束

检查约束:check(mysql5.7不支持)

create table stu(
sid int primary key,
sname varchar (20),
gender char check ( '男' or'女')
);
insert into stu values(1,'张三','男');
insert into stu values(2,'李四','妖');
使用枚举类型解决如上问题:
create table stu(
sid int primary key,
sname varchar (20),
gender enum('男','女')
);

自增约束:auto_increment

自动增长,整数

  • 注意:
  1. 使用自增约束,前提是此字段必须是主键、唯一键、外键
  2. 如果指定一个较大的数,那么从这个较大的数开始自增
  3. 如果设置了主键自增,可以给主键添加null值,但会采用自动增长的值
  • 创建方式
  1. 建表时:在主键的后面直接写auto_increment
  2. 建表后:alter table 表名 modify 键列的定义 auto_increment;
create table stu(
id int primary key auto_increment,
sname varchar(20)
);
insert into stu(sname) values("李白"); -- 多次插入 id 会自动增长
select * from stu;
insert into stu values(100,"李白"); -- 在添加数据id会从100开始增加
insert into stu values(null,"李白");-- id会随之前的值继续累加
desc stu ;-- 查看约束
-- 删除自增主键
alter table stu modify id int(11);
-- 再添加主键自增
alter table stu modify id int(11) auto_increment;

外键约束:foreign key

主表
从表:在从表中设置外键,关联主表的主键

  • 注意:

    1. 设置外键时,必须关联主表的主键或者唯一键
    2. 设置外键约束后,从表数据的新增受到主表数据的约束
    3. 设置外键约束后,主表数据关联的列的 删除 修改 受到影响
-- 新建教室表
create table classrom(
cid int primary key,
canme varchar(20)
);
-- 新建学生表
create table student(
sid int primary key,
sname varchar(20),
room int,
foreign key(room) references calssroom(cid)--关联
);
-- 添加数据,先添加主表
insert into classroom values(1,"JAVA"),(2,"HTML"),(3,"大数据");
select * from classroom;-- 查看表中所有内容
insert into student values(1,"张三",1),(2,"李四",2),(3,"王五",3);
select * from student;-- 查看表中所有内容
insert into student values(4,"赵六",4);-- 主表没有的值,会添加失败,所以要先添加主表数据-- 删除从表的数据
delete from student where sid = 1;-- 可以删除
-- 删除主表数据
delete from classroom where cid = 2;-- 从表还有关联的数据,删除失败,没有关联的可以删除
-- 修改数据(将classroom表中cid=2的cname改为H5)
update classroom set cname = "H5" where cid =2;
-- 查看表内容
select * from classroom;
外键的级联策略
  • 注意:
    4. 当确认删除外键时 desc 表名 外键的标识还可能存在
restrict :严格的(默认的)
no action:不做任何操作 等价于restrict
cascade : 级联(主表数据删除或修改,从表对应字段数据也会删除或修改)
set null :当主表数据发生改变,从表对应字段变为null-- 删除外键
alter table student drop foreign key 外键名;
  • 建表后
-- 建表后添加外键
create table classrom(
cid int primary key,
canme varchar(20)
);
insert into classroom values(1,"JAVA"),(2,"HTML"),(3,"大数据");
create table student(
sid int primary key,
sname varchar(20),
room int
);
-- 添加外键 级联
alter table student add foreign key(room) references classroom(cid) on delete cascade on update cascade;
-- 添加子表数据
insert into student values(1,"张三",1),(2,"李四",2),(3,"王五",3);
-- 删除主表内容
delete from classroom where cid = 1;
select * from classroom; -- 主表查看cid=1已经删除
select * from student ; -- 从表查看关联内容也删除

函数

单行函数

  • 只对一行进行变换,每行返回一个结果
  • 可以嵌套
  • 参数可以是一字段或—个表达式或一个值

字符串函数

-- 拼接
select concat("hello","world","你好") from dual; -- helloworld你好
-- 按照指定的分隔符进行合并字符串
select concat_ws("你","hello","world","你好");--hello你world你好
-- 查看存储了多少个字节数
select 字段名,length(字段名) from 表名;
-- 查看一共有多少个字符
select 字段名,char_length(字段名) from 表名;
-- upper()-将小写字母转为大写字母;lower()-大写转小写
select upper(字段名),字段名 from 表名;
-- left 返回左边俩字母 le;right返回右边俩字母lo
select left("hello",2),right("hello",2);
-- trim 去除空白
select concat("你好"," 0 ","世界");--你好 0 世界 (有空格)
select comcat("你好",trim(" 0 "),"世界");--你好0世界 (去除字符段两端空格)
select comcat("你好",ltrim(" 0 "),"世界"),("你好",rtrim(" 0 "),"世界");-- ltrim干掉左边空格 -- rtrim干掉右边空格
-- 自定义去除"%%%%hello%%%%"
select trim(both '%' from "%%%%hello%%%%");--hello
select trim(leading '%' from "%%%%hello%%%%");-- hello%%%%(去除左边自定义内容)
select trim(trailing '%' from "%%%%hello%%%%");-- %%%%hello(去除右边自定义内容)
-- mysql的下标从1开始
select substring("helloworld",2);--elloworld

数学函数

-- 返回绝对值
select abs(-1);
-- ceil 向上取整;floor向下取整
select ceil(2.3),floor(2.3);-- 3,2
--round(小数,保留几位);会进行四舍五入
select round(5.1236,3);-- 5.124
-- truncate 保留对应位数的小数,不会进行四舍五入
select truncate(5.1236,3);--5.123
-- sqrt(x) 返回x的平方根
--pow(x,y) 返回x的y次方

日期函数

--now(), sysdate() , localtime() 获取当前时间
--sysdate()返回函数被执行那一刹那时间(实时的)
select now(), sysdate() , localtime() ;
-- 获取具体的年月日时分秒
select year (now () ) , month (now () ) , day (now()) , hour(now () ) ,minute (now() ) , second (now());
-- 返回周几的英文字母
select dayname(now());
-- 对日期修改
select date_add(now(),interval 1 year) -- 当前日期+1年

流程函数

-- if(value,t,f):如果value是真,返回t ,否则返回f
-- 查看表中薪资给出高低等级
select ename,salary,if(salary>=10000,"高","低") from 表名;
-- ifnull(value1,value2):如果value1不为空返回value1,否则返回value2
select ifnull(1,2) from dual;
-- 相当于if-else
select ename, salary, case when salary>=20000 then "A"when salary>=15000 then "B"when salary>=10000 then "c"else "D" end from 表名;
-- 相当于switch case 等值校验 没有给else 则是null
select ename ,job_id, case job_id when 1 then "教学总监"when 2 then"运营总监"when 3 then "财务总监"when 4 then"前台"else "打酱油的"endfrom 表名;

多行(分组)函数

  • 什么是分组函数

对一组数据进行运算,针对一组数据(多行记录)只返回一个结果,也成分组函数

  • 组函数类型

    • AVG():求平均数
    • SUM():求和
    • MAX():求最大值
    • MIN():求最小值
    • COUNT():求数量
  • 注意
    1. 多行函数可以写到一起
    2. 多行函数会自动忽略null值
    3. 多行函数不能嵌套多行函数
    4. 单行函数可以与多行函数互相嵌套
    5. avg、sum需要数值类型
    6. 对表中数据的统计:count(*)或count(1) 【括号内可以任意数字】或者count(字段名)
-- 展示表内所有内容
select * from 表名;
-- 展示该表该字段的平均值
select avg(字段名) from 表名;
-- 多行函数写到一起
select avg(字段名),sum(字段名),max(字段名) from 表名;
-- 单行函数嵌套多行函数
-------保留两位小数四舍五入---只保留两位小数不四舍五入
select  round(avg(字段名),2),truncate(avg(字段名),2) from 表名;

关联查询(联合查询,多表联查)

关联查询的七种结果

  1. A∩B
  2. A
  3. A - A∩B
  4. B
  5. B - A∩B
  6. A ∪ B
  7. A ∪ B - A ∩ B 或者 (A - A ∩ B)∪ (B - A ∩ B)

如何实现

  1. 内连接
  2. 外连接:左外连接,右外连接,全外连接(mysql使用union代替全外连接)
  • 注意

    1. 可以给表起别名:在表名的后面 写别名即可
select 别名.字段名 from 表名 别名;

内连接:实现A ∩ B [inner] join

select 字段列表 注意是哪张表
from 表1 inner join 表2
on 字段值是相等的;--join等价inner join (inner可省略)-- 例:表1字段:名字 薪水 工作编号
--     表2字段:工作名称
-- 查看每一个人的名字 薪水 工作编号 工作名称是什么?select ename,salary,job_id
from 表1;-- 展示表1中ename,salary,job_id的所有内容select * from 表2;-- 展示表2中所有内容select 别名1.`ename`,别名1.`salary`,别名1.`job_id`,别名2.`job_name`
from 表1 别名1 join 表2 别名2
on 别名1.`job_id` = 别名2.`job_id`
where 别名1.`salary` > 10000;--可加筛选条件
-- sql99: 将连接条件(on)和筛选条件(where)分开 sql99/sql92标准-- sql92:连接条件和筛选条件在一起,使用逻辑运算符连接
select 别名1.`ename`,别名1.`salary`,别名1.`job_id`,别名2.`job_name`
from 表1 别名1 join 表2 别名2
where 别名1.`job_id` = 别名2.`job_id` and 别名1.`salary` > 10000;

外连接

左外连接 left join:显示左表中所有数据
select 别名1.`ename`,别名1.`salary`,别名1.`job_id`,别名2.`job_name`
from 表1 别名1 left join 表2 别名2
on 别名1.`job_id` = 别名2.`job_id`;
右外连接 right join:显示右表中所有数据
select 别名1.`ename`,别名1.`salary`,别名1.`job_id`,别名2.`job_name`
from 表1 别名1 right join 表2 别名2
on 别名1.`job_id` = 别名2.`job_id`;
全外连接 union :将两个结果进行合并
select 别名1.`ename`,别名2.`dname`,别名2.`did`,别名1.`gender`
from 表1 别名1 left join 表2 别名2
on 别名1.`did` = 别名2.`did`
union
select 别名1.`ename`,别名2.`dname`,别名2.`did`,别名1.`gender`
from 表1 别名1 right join 表2 别名2
on 别名1.`did` = 别名2.`did`;

特殊的关联查询:自连接(自己连接自己)

--查找当前员工的员工编号 名字  性别 领导编号
--以及 他领导的 姓名 员工编号
-- 有两张表 员工表 一张作为员工 一张作为领导
select *from 员工表;
select el.`eid` ,el. `ename` ,el.`gender`,el. `mid` ,e2.`ename `,e2. `eid`
from 员工表 el join 员工表 e2
on el.`mid` = e2. `eid` ;
三表查询
--查看员工的姓名 员工的职位编号 职位名称 部门编号 部门名称
select e1.`ename`,e1.`job_id`,j.`job_name`,e1.`did`,d.`dname`
from 员工表 e1 join 工作表 j
on e1.`job_id` = j.`job_id`
join 部门表 d
on e1.`did` = d.`did`;

MySQL(SQL/约束与索引/函数/关联查询)相关推荐

  1. Mysql 数据库表中有索引为什么还是查询慢?

    问题分析 在进行数据库查询的时候,我们都知道索引可以加快数据查询的效率.但是在实际的业务场景下,经常会遇到即使在表中增加了索引,但是同样还是会出现数据查询慢的问题.这就需要具体分析数据查询慢的具体原因 ...

  2. mysql使用联合唯一索引会影响查询效率吗_想进大厂,这些Mysql索引底层知识你是必须知道的。...

    前言 上一篇总结了Mysql的锁机制,通过读者的反映和阅读量显示,总体还是不错的,感兴趣的可以阅读一下[]. 写了那么多的Mysql文章,有读者问我是不是dba,工作真的需要掌握那么深吗.我想说的是: ...

  3. 【SQL】在SQL Server中多表关联查询问题

    好久没有写SQL语句的多表连接查询,总在用框架进行持久化操作.今天写了一个多表关联查询,想根据两个字段唯一确定一条数据 失败的案例如下: SELECT cyb.id,ad.name FROM [Gen ...

  4. MySQL数据库基础(多表关联查询、内外全连接、复合条件查询、子查询)

    文章目录 一.笛卡尔积查询 二.内.外.全连接查询 三.复合条件查询 四.子查询 五.EXIST判断 本篇文章主要介绍MySQL里的多表关联查询,其中包括了笛卡尔积查询.内连接查询.外连接查询.全连接 ...

  5. sql怎么两个表关联查询

    在 SQL 中,我们可以使用 JOIN 关键字来两个表关联查询.例如,假设有两个表:table1 和 table2,并且它们之间有一个关联字段 field1.你可以使用如下的语句来两个表关联查询: S ...

  6. mysql sql测试_MySQL语句测试——数据查询

    MySQL语句测试--数据查询 3.4 数据查询 一.单表查询 /*1.选择表中的若干列,各个列的先后顺序和语句中列名从左到右的顺序一致 select 目标表达式 from 表名; */ /*(1)s ...

  7. mysql约束_从零开始学 MySQL - SQL 约束分类

    目录1.实验简介2.约束 今天我们学习一下 SQL 的约束分类. 1.实验简介 约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性.唯一性.本节实验将在实践操作中熟悉 MySQL ...

  8. infomixdb mysql_不同数据库oracle mysql SQL Server DB2 infomix sybase分页查询语句

    在不同数据库中的使用的分页查询语句: 当前页:currentpage 页大小:pagesize 1. Oracle数据库 select * from (select A.*,rownum rn fro ...

  9. mysql sql dateadd_SQL Server Dateadd()函数

    在本教程中,将学习如何使用SQL Server DATEADD()函数将指定值添加到日期的指定日期部分. SQL Server DATEADD()函数简介 DATEADD()函数将数字值添加到输入日期 ...

最新文章

  1. 浅显易懂 Makefile 入门 (10)— 嵌套执行 make、export 的使用
  2. 绿色版NVM安装与配置详细说明
  3. Python命令行参数解析模块getopt使用实例
  4. typescript使用in关键字进行类型守卫
  5. air什么意思中文_Air 的中文意思是什么?
  6. yii2 mysql in_yii2 mysql数据库读写分离配置
  7. Unity AssetBundle 爬坑手记
  8. keras库的安装及使用,以全连接层和手写数字识别MNIST为例
  9. Mac 安装 home Brew以及 XCTool的过程记录
  10. 邹博机器学习升级版II附讲义、参考书与源码(数学 xgboost lda hmm svm)
  11. Keras中文文档总结
  12. 前端学习笔记 - 移动端Web开发
  13. 常用电子面单接口API及对接攻略(快递鸟、菜鸟、顺丰)
  14. facade java_Java中的Facade模式
  15. 学硕与专硕 计算机,2019计算机考研选学硕还是专硕?
  16. 理解什么叫管理vlan与业务VLAN,理解DTP及trunk的配置
  17. 推荐几个常用的Python扩展工具包
  18. 计算机视觉、机器学习、深度学习相关开源代码集合归纳总结(二)(收藏用)
  19. 7的倍数(shell脚本 day01)
  20. SAP MM模块-库存盘点BAPI的使用及注意点

热门文章

  1. 如何在金融行业运用IPD?
  2. 亚马逊云科技Build On -报告总结
  3. SAP中BOM事务清单CS13中的物料数量单位逻辑梳理及格式调整处理实例
  4. 鸿蒙系统信号怎么样,华为鸿蒙升级之后,“花粉”大胆给出评价,和安卓的差距有点大...
  5. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
  6. c语言单链表的查找,单链表的查找、建立操作(C语言)
  7. 学一门语言主要学哪些
  8. (PTA)7-4 判断一个整数是否为素数 (15分)
  9. 2030影院群站CMS10影视整站源码+WAP自适应模板
  10. matlab wav格式音频去除人声