![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
《Head First SQL》学习笔记
captxb
这个作者很懒,什么都没留下…
展开
-
chapter02_SELECT语句
不要使用双引号,双引号只在编程语言中使用,不要在SQL中使用使用SELECT语句,应该__只选择需要的列__,而不是SELECT * 之后交给编程语言处理,因为这样可以__加快查询速度__等于运算符: = (单个等号)不等于运算符: <>对INT、DEC类型的列使用__比较运算符__的时候,结果就是大于某个值或者小于某个值的行;对CHAR, VARCHAR使用...原创 2019-02-26 18:45:49 · 683 阅读 · 0 评论 -
chapter12_安全性
添加新用户 CREATE USER 'bochen'@'localhost' IDENTIFIED BY '123456';删除用户 DROP USER 'bochen'@'localhost';设置用户的权限GRANT(1) 简单的GRANT语句 GRANT SELECT ON clown_info TO bochen;给bochen用户授予在clown_i...原创 2019-02-27 09:06:36 · 127 阅读 · 0 评论 -
chapter11_约束、视图与事务
检查约束 CHECK(1) 限定填充进某一列数据的取值范围(2) 示例 CREATE TABLE piggy_bank ( id INT(4) AUTO_INCREMENT NOT NULL PRIMARY KEY, coin CHAR(1) CHECK(coin IN ('P','N','D','Q')) );或 ALTER TABLE piggy...原创 2019-02-27 09:05:31 · 105 阅读 · 0 评论 -
chapter10_外联接、自联接与联合
左外连接 LEFT OUTER JOIN左外联接接收左表的所有行,并用这些行与右表中的行进行匹配。 如果没有相符的结果就在右表中的列中填入NULL示例 SELECT g.girl, t.toy FROM girls AS g LEFT OUTER JOIN toys AS t ON g.toy_id = t.toy_id;当左表和右表具有一对多的关系时,左外联接特别有用右外连...原创 2019-02-27 08:54:52 · 103 阅读 · 0 评论 -
chapter09_子查询
(NOT) IN 可以表示在集合中取值示例 SELECT mc.name, jc.title FROM job_current AS jc NATURAL JOIN my_contacts AS mc WHERE jc.title IN ('Cook', 'Waiter', 'Writer', 'Web Developers');可以用__子查询__的方式代替上个示例中 (NOT...原创 2019-02-27 08:50:30 · 83 阅读 · 0 评论 -
chapter07_多张表的数据库设计
模式schema:对数据库内的数据描述(列和表),任何相关对象,各种连接方式的描述的统称解决不具有原子性的单表的问题 – 拆分成多个具有原子性的表主键:标识当前这个表的一个或一组属性外键:对当前这个表来说未必是key,但是它是另一个表的主键。另一个表此时叫做__父表(主表),父表中对应外键的主键叫做__父键外键(1) 语句示例 CREATE TABLE table1 ...原创 2019-02-26 18:46:27 · 103 阅读 · 0 评论 -
chapter06_SELECT进阶
ORDER BY(1) 可以使用多个关键字示例 SELECT * FROM my_contact ORDER BY name, number;(2) 默认 升序ASCSQL排序规则NULL > 数字 > 大写字母 > 小写字母升序ASC和降序DESC可以同时用在一条语句中示例 SELECT * FROM movie_table ORDER BY...原创 2019-02-26 18:46:20 · 319 阅读 · 0 评论 -
chapter05_ALTER和字符串函数
FIRST关键字可以把新添加的列放在表的最前面,主键一般作为表的第一列ALTER的几种操作第二行:添加新列,并把这列置为表的第一列第三行:添加主键第四行:添加新列,并把这列放在contact_id列的后面(默认是放在最后一列)第五行:修改表名第六行:改变列的属性第七行:改变列的属性和名称第八行:卸除主键第九行:卸除某一列(同时删除改列的数据)示例 ALTER TAB...原创 2019-02-26 18:46:12 · 123 阅读 · 0 评论 -
chapter04_聪明的表设计
简短的查询优于较长的查询__原子性__数据:(1) 定义:它已经被分割至最小块,__不能或不应该__再被分割对于同样的信息,不同的表对于原子性数据的需求不同示例 地址包括街道 + 门牌号,对于外卖来说,它们应该合在一列存储;对于房地产中介来说,应该分成两列存储(2) 规则一具有原子性数据的列不会有多个类型相同的值示例 food_name | ingredi...原创 2019-02-26 18:46:04 · 156 阅读 · 0 评论 -
chapter03_DELECT和UPDATE
DELETE FROM xxx WHERE ……WHERE 后面接着的内容可以用所有SELECT语句用到的内容谨慎使用DELETE,除非已经确认加入了精确的WHERE子句一个__技巧__是先用 SELECT替换DELETE,看看到底要删除哪些记录UPDATE 可以一次更新很多列的内容,中间用逗号,连接示例 UPDATE my_contacts SET id = 2, n...原创 2019-02-26 18:45:56 · 86 阅读 · 0 评论 -
chapter01_数据和表
数据库:保存表和其他SQL结构的容器SQL不区分大小写,但是命令应该用__大写__,数据库名、表名等应该用__小写__基本数据类型BOOLEANCHAR(SIGNED/UNSIGNED)TINYINT(SIGNED/UNSIGNED):8SMALLINT(SIGNED/UNSIGNED):16MEDIUMINT(SIGNED/UNSIGNED):24INT(SIGNED...原创 2019-02-26 18:45:37 · 177 阅读 · 0 评论 -
chapter13_附录
临时表(1) 只存在于内存中,数据库断开连接后消失,一般用于测试(2) 用法:加上TEMPORARY CREATE TEMPORARY TABLE temp_table ( .... );转换数据类型使用 CAST()函数获取当前用户、日期、时间等系统内置信息SELECT CURRENT_USER; 获取当前用户(会得到例如root@localhos...原创 2019-02-27 09:07:40 · 77 阅读 · 0 评论