Sql介绍 与 Sql基础查询

打印 上一主题 下一主题

主题 1789|帖子 1789|积分 5367

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Sql介绍 与 Sql基础查询

SQL

SQL也称为布局化查询语言(Structure Query Language),是一种用于管理和操作关系型数据库的标准化计算机语言,SQL语言广泛应用于各种关系型数据库系统(RDBMS)如Mysql,Oracle,Microsoft SQL Server等等
SQL对数据库的操作


  • 数据查询:通过SELECT语句从数据库中检索数据
  • 数据定义(DDL):其中包罗CREATE,ALTER,DROP对数据库进行定义和修改数据库布局
  • 数据操控(DML):包罗INSERT,UPDATE,DELETE语句插入,更新,删除数据
  • 数据控制:通过GRANT,REVOKE语句管理用户权限和范围控制
SQL的特点


  • 标准化:SQL是一个标准化的语言,各大数据库厂商都支持SQL语言
  • 高度非过程化:与过程化的与语言差别,SQL不需要指定特点算法或步骤完成任务.SQL语句更专注形貌所需结果,而非如何得到所需结果
  • 集合操作:SQL支持集合操作,即一次可以处置惩罚多行数据.一个SELECT语句就可以返回多条记录,INSERT,UPDATE也可以一次影响多行数据
  • 变乱支持:SQL支持变乱处置惩罚,允许将一组相关数据,作为一个完整的单元来执行.变乱具有:原子性(Atomicity),一致性(Consistency),隔离性(Isolation),恒久性(Durability)(关于这些性子在之后的变乱章节会详细解说),ACID,这四个性子确保了数据的一致性与可靠性
  • 集成能力:SQL可以与其他 编程语言相互集成,使得开辟者能够在应用程序中嵌入SQL代码,实现高效操作,其中典型的属Java开辟者可以使用JDBC来执行SQL查询
SQL基础查询

语法布局


  • SELECT 查询列表 FORM 表名  其中查询列表可以是表中的字段,常量值,表达式,函数等等
如SELECT * FORM emplyees; 其中* 表示查询表中所有数据
查询表中单个字段


  • SELECT 字段名 FORM 表名
    eg:查询员工的所有姓名
    SELECT e_name FORM emplyees;
查询表中多个字段

使用逗号将每个字段分隔开来


  • SELECT 字段1,字段2,字段3 FORM 表名;
    eg:示例:查询所有员工的姓名,邮箱,电话号码
    SELECT e_name,e_email,e_phone_num FORM emplyees;
为字段起别名

在实际的数据库表布局中,有些字段名过长,或者不好理解,我们可以对字段名起个表明,在后续调用中直接使用其别名即可,在多表查询中,有些字段名会出现重复,这时我们可以对相应的字段其别名,不宜肴杂


  • 使用AS关键字

    • 在将要其别名字段后使用AS关键字

      • SELECT 字段名 AS 别名 FORM 表名;


  • 直接使用空格隔开

    • 即在字段和别名之间用空格隔开即可

      • SELECT 字段名  别名 FORM 表名;


去重

对查询出的语句可能会出先字段名重复的结果,这时,我们可以使用去重功能


  • 使用DISTINCT关键字:

    • SELECT DISTINCT 要去重的字段 ,其他字段… FORM 表名;
    eg:查询部门表中的部门ID,对于每个部门ID出现一次即可,因此我们可以使用去重
    SELECT DISTINCT d_id FORM department;

+号操作

Mysql中 +号只有一个功能:作为运算符,不能作为连接符


  • 若+ 号两侧都是数值型,视为正常的加法运算
  • 若+号两侧出现了字符,这实验将字符转化为数值范例,若转化成功,则继续执行加法操作,失败则转化为数值0;转化规则为:从首部开始将所有数值型字符进行转化直到碰到字符型字符,如’11’⇒11;’1a’⇒1;’abc’⇒0;’11a1’⇒11
  • null值与任何数值范例进行+操作都为null
  1. SELECT 1 + 1; //2
  2. SELECT '1' + '1';//2
  3. SELECT 'a' + 1;//1
  4. SELECT 'a' + 'b';//0
  5. SELECT '1a' + '1b';//2
  6. SELECT '11a11' + '11b11'//22;
  7. SELECT 1 + null;//null
复制代码
CONCAT()操作

既然+号只能作为运算符,那如何连接字符呢?→CONCAT()函数


  • CONCAT() :使用SELECT调用CONCAT();

    • SELECT CONCAT(str1,str2,…);
    eg:查询员工姓名和邮箱,按固定格式(姓名[xxx@xx.com])要求输出,好比:张三[123@qq.com]
    SELECT CONCAT(e_name,’[’,e_email,’]’)FORM employees;

IFNULL()函数


  • IFNULL():若查询出的值存在NULL值,使用替换值替换

    • SELECT IFNULL(字段名,代替值) FROM 表名;
    eg:查询员工的姓名和部门ID,假如该员工没有部门信息,表现未知
    SELECT e_name,IFNULL(d_id,’未知’) FORM employees;

条件查询

条件查询,允许在查询数据时,指定某些条件,从而筛选出符合条件的记录
WHERE关键字

WHERE关键字是条件查询的核心;


  • 语法布局:
    1. SELECT 查询列表  //执行顺序3
    2. FORM 表名       //执行顺序 1
    3. WHERE 条件表达式;//执行顺序2
    复制代码
    eg:查询 d_id 为 10 的所有员工
    SELECT d_id FORM employees WHERE d_id=10;
表达式筛选

<blockquote>SQL中包含了条件运算符:>, =,8000;
eg.2查询部门编号不等于3的员工信息
SELECT *FORM employees WHERE d_id ! =3;
</ul>逻辑运算

逻辑运算符也是一般在WHERE表达式中使用,可帮助在查询中指定多个条件或改变条件逻辑关系


  • 逻辑运算符包罗:&&,||,!,分别对应and,or,not
  • eg1:查询工资在8000到10000之间的员工信息→使用AND运算符连接
    SELECT * FORM employees WHERE salary>8000 AND salary8000 OR d_id=3;
模糊查询

LIKE关键字

SQL中常用的是LIKE关键字,其配合通配符来实现模糊查询


  • 常用通配符

    • % :代表可匹配度多个字符,包罗0个,1个
    • _:代表只能匹配一个字符
      1. SELECT 查询列表
      2. FROM 表名
      3. WHERE 列名 LIKE '模式';
      复制代码

  • eg1:查询姓名中包含【微】字的员工信息
    SELECT * FORM employees WHERE e_name LIKE ‘%微%’;
  • eg2:查询姓名中第二个字是【可】字的员工信息
    SELECT * FORM employees WHERE e_name LIKE ’_微%’;
BETEWEEN…AND

查询在某段范围值内的数据,包含临界值,即BETEWEEN 8000 AND 100000⇒[8000,10000]


  • eg1:查询工资在8000到10000之间的员工信息
    SELECT * FORM employees WHERE salary BETWEEN 8000 AND 10000;
  • eg2:查询入职时间在2018-01-01到2022-01-01之间的员工信息
    SELECT * FORM employees WHERE hiredate BETWEEN ‘2018-01-01’ AND ’2022-01-01’;
IN关键字

IN运算符用于检测字段值是否在一个指定的值列表中,使用IN运算符可以简化查询语句,特殊在需要处置惩罚多个值环境下


  • eg:查询在部门2或者部门3的员工信息
    SELECT *FORM employees WHERE  d_id IN(2,3); 等价于SELECT * FORM employees WHERE d_id=2 OR d_id=3;
IS NULL/IS not NULL

用于检测一个值是否NULL的运算符


  • eg1:查询没有部门的员工信息
    SELECT * FORM employees WHRER d_id is NULL;
  • eg2:查询有部门的员工信息
    SELECT * FROM emplyees WHERE d_id is not NULL;
排序查询

查询出来的数据默认按照表格的生存顺序查询,我们假如需要修改查询结果展示的顺序,可以使用排序查询,
ORDER BY关键字

在SQL中ORDER BY实现排序,ASC代表升序,DESC代表降序


  • 语法布局
    1. SELECT 查询列表
    2. FROM 表
    3. [WHERE 筛选列表]
    4. ORDER BY 排序列表 [ASC升序|DESC降序] -- ASC|DESC不写默认是ASC
    复制代码
实现单字段排序


  • ORDER BY 排序字段 [ASC升序|DESD降序];
  • eg:查询员工信息按工资高低排序
    1. - 按照工资升序
    2. SELECT * FROM emplyees ORDER BY salary ASC -- ASC可以不写
    3. - 按照工资降序
    4. SELECT * FROM emplyees ORDER BY salary DESC -- DESC不能省略
    复制代码
使用多个字段排序


  • eg:查询员工信息,先按部门ID降序,再按工资升序
    SELECT * FROM emplyees ORDER BY department_id DESC,salary ASC;

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

惊雷无声

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表