Learning SQL3

本文深入探讨了SQL中的CASE表达式用法、条件查询、索引创建与优化,以及如何利用视图进行数据安全与聚合操作。通过具体实例,展示了如何通过合理使用SQL语句提高数据库性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CASE 
   WHEN  employee.title='Head Teller'
     THEN 'Head Teller'
   WHEN employee.title='Teller'
     AND YEAR(employee.start_date)>2007
     THEN 'Teller TRAINEE'
   WHEN employee.title='Teller'
     AND YEAR(employee.start_date)<2006
     THEN 'Experienced Teller'
   WHEN employee.title='Teller'
      THEN ‘Teller’
 ELSE 'Non-Teller'
END IF

Learning SQL3
条件查询
case 表达式

IF  ELSE
IF<>...
END IF
ELSE ...
END IF  


索引
1.创建索引  ADD INDEX
mysql> ALTER TABLE student_list
    -> ADD INDEX student_id(student_id);
Query OK, 0 rows affected (0.32 sec)
Records: 0  Duplicates: 0  Warnings: 0


mysql> SHOW INDEX FROM student_list;
+--------------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table        | Non_unique | Key_name   | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+--------------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| student_list |          1 | student_id |            1 | student_id  | A         |           4 |     NULL | NULL   | YES  | BTREE      |         |               |
+--------------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+


2.唯一索引ADD UNIQUE
3.多列索引 ADD INDEX index_name(lname,fname)


视图---一种简单的数据查询机制
创建视图
mysql>  CREATE VIEW student_list_vw
    ->  (student_id,fname,lname,tel)
    ->  AS
    -> SELECT   concat('ends in',substr(tel,8,4)) tel ,
    ->  student_id,fname,lname
    ->  FROM student_list;
Query OK, 0 rows affected (0.12 sec)


mysql> SELECT student_id,fname,lname,tel
    -> FROM student_list_vw;
+-------------+------------+-------+---------+
| student_id  | fname      | lname | tel     |
+-------------+------------+-------+---------+
| ends in8754 | 6100410004 | chen  | xueping |
| ends in3411 | 6100410007 | Gao   | Wei     |
| ends in0424 | 6100410014 | Li    | Xi      |
| ends in7983 | 6100410019 | Luo   | Haitao  |
+-------------+------------+-------+---------+
4 rows in set (0.02 sec)
为什么使用视图??
数据安全、数据聚合、隐藏复杂性、连接分区数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值