精华内容
下载资源
问答
  • 结构化查询语言

    2014-05-10 21:58:57
    结构化查询语言
  • 结构化查询语言SQL简介
  • SQL结构化查询语言

    2019-01-09 17:29:50
    SQL结构化查询语言
  • 结构化查询语言 mysql

    2021-03-30 22:16:23
    结构化查询语言 mysql

    结构化查询语言 mysql

    在这里插入图片描述

    展开全文
  • 关系数据库结构化查询语言SQL
  • 结构化查询语言SQL

    2013-11-03 12:54:15
    结构化查询语言SQL
  • SQL 结构化查询语言

    2020-09-02 17:39:17
    2018-8-18SQL 结构化查询语言 structured query language sql 语句对于不同数据域库有微小差距 结构化查询语言 structured query language 1. DDL数据定义语言 create 创建表,视图、索引… drop 删除表、视图、...

    2018-8-18SQL 结构化查询语言 structured query language

    • sql 语句对于不同数据域库有微小差距

    结构化查询语言 structured query language

    1. DDL数据定义语言

    create 创建表,视图、索引…
    drop 删除表、视图、索引…
    alter 修改
    truncate 截断

    2.DML数据操控语言(90%)

    insert 插入数据
    update修改
    delete 删除
    select 查询

    3.DCL数据控制语言

    grant 授权
    revoke 回收权限

    4. TCL 事务控制语言 transaction control

    start transaction 开始事务(begin)
    commit
    rollback

    结构化查询语言 (祥)

    1.DDL

    unique 唯一
    not null 非空
    primary key 主键 (只要有一个)
    foreign key 外键 (需要引用另外一个表的主键或唯一列)

    联合唯一约束
    primary key (列名1,列名2) /组 (复)合主键/

    2.1 alter 修改

    desc +组名 显示表
    给老师表加一组年龄

    alter table teacher add age tinyint

    给老师表的姓名扩展长度

    alter table teacher modify tname vatchar(30);
    

    2.2truncate 截断

    delete from 表; – 如果和事务SQL结合使用,是有机会恢复
    truncate table 表; --没法和事务sql结合,不能恢复,效率更高

    3.1 insert 插入数据

    insert into 表(多个列...values (多个值...)

    一次插入多行数据 MYSQL独有

    insert into 表(多个列…)values (多个值…),(多个值…),(多个值…)…;
    用insert 插入另一张表的数据

    insert into 表1(列1,列2…) select 列1 ,列2… from 表2;

    列的个数和类型要一致,标准的,所有的SQL都可以用

    3.2 update对已有的数据进行更新

    – 更新所有的员工工资涨一百

    update emp set sal=sal+100
    

    –修改7369的员工部门为10号部门

    update emp set deptno=10 where empno =7369;
    

    –修改7000(并没有这个编号)的员工部门为10号部门

    update emp set deptno=10 where empno =7369;
    

    如果条件不满足,不会报错,但影响行数为0

    主键列主要用于查询,一般不会更新。

    3.3 删除

    delete from 表;全部删除
    delete from 表where 条件;删除符合条件的记录
    不能删除一个被引用的父类列

    为了方便称呼,主键所在的表可以称为主表,而外键所在的表称为从表
    主表中删除的记录,如果被从表引用,那么会删除失败,违反外键约束(外键约束默认行为)
    外键约束还有一种行为,主表中记录删除,从表中把与之相关的的记录也跟着删除(级联删除)
    在创建外键时在后面加上on delete cascade
    例如:

    foreign key (deptno)references dept (deptno) on delete cascade
    

    3.4 select 查询

    select 列名…from 表名 where 条件;

    条件

    1.比较运算

    =
    大于 >
    大于等于>=
    小于<
    <=
    !=

    2.逻辑运算

    and(并且)
    or (或者)
    not(取反)


    where sal >80 and deptno =20;
    where deptno =20 or deptno =30;or 左右两边要写完整

    3.null

    数据库中的null,比较特殊,不能使用=来比较,必须用 is null
    例如:

    select * from emp where comm is null;
    select * from emp where comm is not null; //非空
    

    4.like (模糊查询)

    例如:查询以“s”字母开头的员工(s%)

    select * from emp where comm like 's%';
    

    通配符% 表示匹配0~多个任意的字符
    通配符 _ 表示匹配一个任意字符可以查询准确个数字符的值

    5.between … and … 范围匹配(等价于 >= <=)

    select *from emp where sal between 1000 and 2000;
    

    1.必须按由小到大的顺序写
    2.between 包含等于条件

    6. in求这一列是否在一个值列表中

    例如:求所有的销售人员和经理

    select * from emp where job ='SALEMAN' or 'MANAGER';
    
    select * from emp where job in('SALEMAN' ,'MANAGER') ;
    

    7.limit MySQL 特有的

    在这里插入图片描述

    用来限制返回的结果数

                    1.limit n; n 表示最多返回几条记录
    				 2.limit m,n; m代表偏移量(下标从0开始数)
    

    8.order by 用来给结果排序

    语法: order by 列名 asc|desc,列名asc|desc,…
    如果不写asc|desc,默认是asc升序

    多列排序,第一列取值相同的按照第二列进行排序

    select from emp order by sal asc,enamesac;/*如果升序,两个as+c都可以省略*/
    
    

    9.select语句的顺序

    select …from 表 where 条件 order by 排序 limit 限制

    10 字段控制查询

    10.1去除重复记录 distinct
    select distinct name  from students; 
    
    10.2 把查询字段的结果进行运算,必须都要是数据型
    • select *,字段1+字段2 from 表名;
    • 列邮很多记录的值为null,因为任何东西与null相加的结果还是null,所以结算结果可能会出现null,下面使用了把null转换成数值0的函数ifnull:
    select *,age+ifnull(score,0) from student;
    

    datediff(日期1, 日期2): 得到的结果是日期1与日期2相差的天数。 如果日期1比日期2大,结果为正;如果日期1比日期2小,结果为负。

    select a.Id from  Weather as a join Weather as b on a.Temperature > b.Temperature and dateDiff(a.RecordDate,b.RecordDate) = 1 
    
    10.3对查出来的字段起别名 as
    select *,age+ifnull(score,0) as total from student;
    

    decimal 字段类型 表示精确的小数

    3.5 函数

    例如 lower函数可以把字符变成小写
    upper函数可以把字符变成大写

    常用的函数:

    1)时间加减

    date_add(原始时间,时间间隔)
    时间间隔的语法:interval 数字 时间单位
    数字可以是 可以正数或负数

    select date_add(now(),interval 1 day);
    

    2)提取时间的某个部分

    extract (时间部分 from 原始时间)
    select extract(year from now());
    select extract(year_month from now());
    返回的结果是一个数字类型

    3)类型转换

    select cast ('11' as signed)+1;
    select cast('12.55555' as decimal (5,2));
    

    4)拼接字符串

    concat(值1,值2,…值n)
    select concat (‘a’,‘b’,‘c’);
    select concat(‘a’,18,‘c’);/可以把其他的类型当做字符串的拼接/

    5)求长度的函数

    char_length 按字符为单位统计长度
    length 按字节为单位统计长度
    utf8mb4编码下,汉子一个字符占三个字节,英文一个字符占一个字节

    6)标准SQL

    case
    when 条件1 then 值1
    when 条件2 then 值2

    else 值n
    end
    整个case…end 最后返回一个值

    select sal,
    case
            when sal>1000 then '高工资'
            wen sal between 1000 and 2000 then '中等'
            else '低工资'
    end from emp;
    

    7)组函数

    最大值 max(列)
    最小值 min(列)
    和 sum(列);
    个数 count(列)注意空值的问题 ,求个数时将空值排除在外 |count (*)针对这次查询看看一共有多少行
    平均值 avg(列) 针对可以求平均值的列才能执行

    8) 去除重复

    distinct不是函数 就是关键字 加在列名前

    select distinct job from emp;/*去除重复后的职位有哪些*、
    select count (distinct ) from emp;/*有几种职位*/
    

    9)查询帮助

    ? contents;

    3.6 分组语句(group by 后的列取值相同的会被分到为一组)

    select …from 表 group by 列1,列2,…having分组条件

    select depton,count(*,max(sal) from emp group by deptno;
    select depton,count(*,max(sal) from emp group by deptno having count(* )>3;
    
    select gender,group_concat('name') from employee group by gender;
    

    结果

    分组后select,order by的限制
    1)select中的列必须和 group by 中的列一致
    2)其它没有包含在group by 语句中的列,必须和组函数一起用。

    执行从先到后
    where 进行一遍条件过滤,再执行group by 分组,再执行having中的条件,再执行select语句,再执行limit语句

    语法顺序
    分组顺序

    select ... from... where...group by...having...order by...limit;
    

    执行顺序

    列的别名问题 使用时要注意执行顺序问题
    语法:select 列名 别名可以中文但是不能加特殊字符,加双引号可以解决
    语法2:select 列名 as 别名

    select deptno 部门编号,count(* ) 人数,max (sal)最高工资 from emp group by deptno having count(* )>3 order by max(sal);
    
    select deptno 部门编号,count(* ) 人数,max (sal)最高工资 from emp group by deptno having count(* )>3 order by 人数;
    

    表别名问题 (没有as)
    select e.* from emp e ;
    语法:select…from 表 别名

    多列分组

    select deptno,job,count(* ) from emp group by deptno,job;/按两列取值相同的分为一组/
    
    展开全文
  • SQL语言:结构化查询语言 SQL语言:结构化查询语言 程序员或者DBA(数据库管理员)使用SQL和DBBSM进行交互,操纵数据库中的资源 分类: 1.DDL 数据定义语言 结构 create 创建 database table index ...

    SQL语言:结构化查询语言

     

    SQL语言:结构化查询语言

    程序员或者DBA(数据库管理员)使用SQL和DBBSM进行交互,操纵数据库中的资源

    分类:

    1.DDL 数据定义语言 结构

             create  创建   database table index view

             drop    删除    database table  index view constraint 

             alter    改变     constraint

    2.DML  数据操纵语言  操纵表中的数据

             insert  增加

             delete 删除

             select  查询  DQL(数据查询(query)语言)

             语法: select  字段/表达式/函数调用/常量/*  

                        from 表名1,表2....  

                        where 查询条件   可以组合  and  ,or  ,not , =,  between  and ,  in , is null ,is not null , like,  %_[]  

                        group by  分组字段   having(分组后的过滤条件)  order by  排序字段和规则

                        update 修改

    3 DCL  数据库控制语言

    4.TCL 事物的控制语言  Transaction

                        事物:一组要么一起成功,要么一起失败的业务操作

                        begin transaction;  开始事物(sqlserver)

                        ..........          各种sql操作

                        commit;     提交事物  全部成功

                        rollback;     回滚事物   全部失败

       其他:事物及其特性(原子性。隔离性。持久性。一致性)

    5.约束 :constraint 也是数据中的一种对象

                        目的:保证数据库的完整性和一致性

                        完整性:实体(PK UK 行的唯一)、域(NN www.255055.cn CK Default  字段/列的约束)、引用完整性(FK  外键 )

    约束的分类:

    1)主键约束  PK=UK+NN   www.fengshen157.com primary key

    2)  外键约束  FK foreign key    references     

                                   

    alter table emp
    add constraint emp_www.thylgw.cn dept_deptid_www.huayi157.com/ fk foreign key(dept_id) references

    结论:主外键关系一定是数据库中的重要关系,通过主外键关系实现了实体间一对多关系(不加约束也有关系,加了约束可稳定关系)

    3)唯一约束 unique key

    4)  非空约束 Not Null

    5)  检查约束  CK www.leyouzaixan.cn  check  : 针对某个字段进行数据的有效性检查,如果数据不符合条件数据则无法插入成功。

    转载于:https://www.cnblogs.com/newtom/p/11492070.html

    展开全文
  • 结构化查询语言sql包含四个部分: 1.DDL //数据定义语言,create,drop,alter 2.DML //数据操作语言,insert,update,delete 3.DQL //数据查询语言,select 4.DCL //数据控制语言,grant,commit,rollback ...

    结构化查询语言sql包含四个部分:

    1.DDL //数据定义语言,create,drop,alter
    2.DML //数据操作语言,insert,update,delete
    3.DQL //数据查询语言,select
    4.DCL //数据控制语言,grant,commit,rollback
    展开全文
  • 结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,同时也是数据库脚本文件的扩展名。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,014
精华内容 4,405
关键字:

结构化查询语言