1、

CREATE TABLE drink_info(drink_name VARCHAR(30),cost DEC(8,2),carbs DEC(8,2),color VARCHAR(20),ice CHAR(1),calories INT);

2、对char varchar进行运算符比较运算,比较运算符会按字母顺序地评估所有事物的大小。

假设你要选出所有名称以“L”开头的饮料,查询语句如下:

SELECT drink_name FROM drink_info WHERE drink_name >= 'L' AND drink_name < 'M';

3、不可以直接选择NULL,但可以利用关键字选择NULL

SELECT drink_name FROM drink_info WHERE calories IS NULL;

4、LIKE 喜欢和通配符在一起,第一通配符是%,它是任意数量的未知字符的替身

SELECT first_name FROM my_contacts WHERE first_name LIKE '%im';

LIKE喜欢的第二个通配符是下划线 _ ,它是一个未知字符的替身。

SELECT first_name FROM my_contacts WHERE first_name LIKE '_im';

5、BETWEEN 查询某一范围内的语句,范围的起止值也会包含在查找范围内。

SELECT drink_name FROM drink_info WHERE calories BETWEEN 30 AND 60;

6、IN  NOT IN 注意NOT 要放在WHERE AND OR 的后面,NOT IN 中的NOT除外;

SELECT drink_name FROM easy_drinks WHERE main = IN ('peach nectar','soda');

SELECT drink_name FROM easy_info WHERE NOT carbs BETEWEEN 3 AND 5;

SELECT date_name FROM black_book WHERE NOT date_name LIKE 'A%'

AND NOT date_name LIKE 'B%';

7、我负责你的数据                       DEC,INT

我可以扔掉你不想要的表               DROP TABLE

T或F是我的最爱                       CHAR(1)

我帮你记住你母亲的生日               DATE

我手上拥有所有表                     CREATE DATABASE

我跟一般数字的感情不错,但我讨厌分数 INT

我喜欢长篇大论                       BLOB

这里是存储所有东西的地方             CREATE TABLE

我知道下星期的牙医门诊在什么时候     DATETIME

会计师最爱我了                       DEC(6,2)

我可以让你看到表的格式               DESC

8、DELETE语句就是从表中删除一行数据所需的工具。

DELETE FROM clown_info WHERE activities = 'dancing';

DELETE的规则:

DELETE不能删除单一列中的值或表中某一列的所有值;

DELETE可用于删除一行或多行,根据WHERE子句而定

我们已经知道如何从表中删除一行,也可以删除多行。为了实现这个目标,我们利用WHERE子句告诉

DELETE该选择哪些行。WHERE子句和搭配SELECTE时的使用方法完全相同,凡是用于WHERE子句中的关    键字,如LIKE、IN、BETWEEN,都可以在此处使用,而且所有条件都能更准确地要求RDBMS删除特定      行。

还有,这一段语句可以删除表中的每一行;

9、UPDATE 它能更新一列或多列的值。就像SELECT和DELETE,UPDATE也能通过使用WHERE子句来精确地制定要更新的行。

UPDATE doughnut_ratings SET type='glazed' WHERE type = 'plain glazed';

关键字SET告诉RDBMS,它主要把WHERE子句提到的原始列值改为它这一句中的值。

UPDATE的规则:

使用UPDATE,你可以改变单一列或所有列的值。 在SET子句中加入更多column=value组,其间以逗号分隔:

UPDATE可用于更新单一行或多行,一切都交给WHERE子句决定。

UPDATE语句能运用在表的多条记录上。它可以和基础数学运算符一起使用,可以操作数值数据。

10、创建表的步骤:

1)挑出事物,挑出你希望表描述的某样事物。(什么事你希望表说明的主要事物呢?)

2)列出一份关于那样事物的信息列表,这些信息都是使用表时的必要信息

(你将如何使用这张表)

3)使用信息列表,把关于那样事物的综合信息拆分成小块信息,以便用于组织表。

(如何才能最轻松地查询这张表)

1:你的表在描述什么事物?(是描述小丑、乳牛、甜甜圈或人)

2:以何种方式使用表取得描述的事物呢?(设计表时要让查询容易一点)

3:列是否包含原子性数据,可让查询既简短又直逼要害?

规范化表的优点:

1:规范化表中没有重复的数据,可以减小数据库的大小。

2:因为查找的数据较少,你的查询会更为快速。

11、主键规则

即将成为主键的列必须在创建时一并设置。

主键是表中的某个列,它可以让每一条记录成为唯一的。

主键不可以为NULL

插入新记录时必须指定主键值

主键必须简洁

主键值不可以被修改

12、CREATE TABLE my_table (id INT NOT NULL AUTO_INCREMENT,first_name VARCHAR(20),last_name VARCHAR(30),PRIMARY KEY(id));

AUTO_INCREMENT 会忽略NULL

13、ALTER TABLE my_contacts

ADD COLUMN contact_id INT NOT NULL AUTO_INCREMENT FIRST,

ADD PRIMARY KEY(contact_id);

这里的FIRST,也可以用LAST SECOND替代。

ALTER 命令几乎能让你改变表里的一切,而且不需要重新插入数据。但也要小心,如果改变列的类型,

你可能就会有遗失数据的风险。

14、SHOW CREATE TABLE 使用这个命令来呈现创建现有表的正确语法。

PRIMARY KEY      主键 一个或一组能识别唯一数据行的列

AUTO_INCREMENT    若在列的声明中使用这个关键字,则每次执行INSERT命令来插入数据时,它都会自动给列赋予唯一的递增整数值

15、ALTER TABLE my_contacts ADD COLUMN phone VARCHAR(10) AFTER last_name;

关键字AFTER 紧跟在新添加的列的名称后面。 AFTER 是可选关键字,如果不使用它,新列则会添加至表的最后。

16、DESCRIBE 查看这个表的构成。它会说明此列是否为主键,并且告诉我们每列存储的数据类型。

DESCRIBE tablename;

17、表的改名换姓

ALTER TABLE projekts RENAME TO project_list;

projekts是旧的表名,project_list 表新的名字。

18、把number列改名为proj_id,并把它设置为AUTO_INCREMENT,然后将它标注为主键

ALTER TABLE project_list CHANGE COLUMN number proj_id INT NOT NULL AUTO_INCREMENT,

ADD PRIMAY KEY (proj_id);

用一条语句改变两个列。要修改descriptionofproj和contractoronjob列的名称,同时更改它们的数据类型。我们所要做的只是在一条ALTER TABLE语句中放入两个CHANGE COLUMN,并在中间加上分隔用的逗号。

ALTER TABLE project_list CHANGE COLUMN descriptionofproj proj_desc VARCHAR(100),

CHANGE COLUMN contractoronjob con_name VARCHAR(30);

注意: 如果把数据改成另一种类型,你可能会丢失数据

如果你想改变的数据类型和原始类型不兼容,命令则不会执行,SQL软件也会抱怨语句有问题

但真正的惨剧可能发生在类型兼容的情况下,你的数据可能被截断。

19、MODIFY 它只会修改列的类型而不会干涉它的名称

例如你要把proj_desc列的字符长度修改为VARCHAR(120)以容纳更长的说明文字。只要这样做:

ALTER TABLE project_list MODIFY COLUMN proj_desc VARCHAR(120);

20、你的列越多,RDBMS的工作就越累,数据库所占用的空间就越大。当表还小时,这种情况并不明显,但随着数据的增长,你会发现查询跑的越来越慢,而计算机的处理器也会运作的越来越辛苦。

21、删除表project_list中的start_date列

ALTER TABLE project_list

DROP COLUMN start_date;

ALTER TABLE hooptie

RENAME TO car_table,

ADD COLUMN car_id INT NOT NULL AUTO_INCREMENT FIRST,

ADD PRIMARY KEY (car_id),

ADD COLUMN vin CHAR(16) AFTER car_id,

CHANGE COLUMN mo model VARCHAR(20),

MODIFY COLUMN color AFTER model,

MODIFY COLUMN year SIXTH,

CHANGE COLUMN howmuch price DECIMALIT(7,2);

移除主键的设置

ALTER TABLE your_table DROP PRIMARY KEY;

移除自动添加功能

ALTER TABLE your_table CHANGE you_id

your_id INT(11) NOT NULL;

注意,每个表中只有一列可以加上AUTO_INCREMENT,该列必须为整数类型而且不能包含NULL。

22、想同时改变列的名称和类型时请用  CHANGE

只想改变数据类型时请用 MODIFY

DROP COLUMN的功能是从表中卸除指名的列

使用RENAME 改变表的名称

使用 FIRST,LAST,BEFORE column_name,AFTER column_name,SECOND,THIRD,FOURTH等关键字,可以

调整列的顺序。

有些RDBMS只有在添加新列时才允许改变列的顺序。

23、下面列出较常用的字符串辅助函数

SUBSTRING(your_string,start_position,length)能截取一部分your_string字符串,截取的起始位置为

start_position,截取长度当然由length指定。

SELECT SUBSTRING('San Antonio,TX',5,3);

UPPER(your_string)和LOWER(your_string)分别可把整组字符串改为大写或小写。

REVERSE(your_string)的作用正如其名:反转字符串里的字符排序

LTRIM(your_string)与RTRIM(your_string)会返回清除多余空格后的字符串,他们分别清除字符左侧(前面)和右侧(后面)的多余空格。

LENGTH(your_string)返回字符串中的字符数量。

注意,字符串函数不会改变存储在表中的内容,他们只是把字符串修改后的模样当成查询结果返回。

例子,我们要试着把location列中的信息取出,然后分开存储到两个新列中(city和state)

UPDATE my_contacts

SET state = RIGHT(location,2);

UPDATE my_contacts

SET city = SUBSTRING_INDEX(location,',',1);

转载于:https://blog.51cto.com/10226243/1672911

深入浅出SQL读书笔记相关推荐

  1. 深入浅出数据分析读书笔记

    深入浅出数据分析读书笔记 一.数据分析引言 1.数据分析的基本流程:确定--分解--评估--决策.一个完整的分析项目可能经过多轮流程 确定:客户的论点和数据 分解:将手头的资料汇总为有用的格式 评估: ...

  2. SQL读书笔记_With Clause的注意事项

    SQL读书笔记_With Clause的注意事项 相信很多高校都在用DATABASE SYSTEM CONCEPTS(Fifth Edition) <数据库系统概念>(第五版)这本教材 在 ...

  3. Node.js: 深入浅出Nodejs读书笔记

    今天终于把朴灵老师写的<深入浅出Node.js>给学习 完了, 这本书不是一本简单的Node入门书籍,它没有停留在Node介绍或者框架.库的使用层面上,而是从不同的视角来揭示Node自己内 ...

  4. SQL读书笔记(五)

    参考书籍为SQL必知必会,一下笔记是我在读书时的一些摘录.希望能帮到各位道友 SQL的聚集函数,如何利用它们汇总表的数据 1.聚集函数 我们经常需要汇总数据而不用把它们实际检索出来,为此SQL提供了专 ...

  5. 深入浅出MFC 读书笔记1

    第六章 MFC程序的生死因果 1.不同类的PreCreateWindow()成员函数都是在窗口产生之前一刻被调用,准备用来注册窗口类.如果我们指定的窗口类是NULL,那么就使用系统默认类. 第九章 消 ...

  6. 深入浅出Docker 读书笔记(九)

    第16章:企业版工具 Docker 企业版(Enterprise Edition,EE):企业需要 Docker 能实现私有化部署.这通常意味着 Docker 需要一个本地化部署方案,并且由企业自己掌 ...

  7. 1.13 空闲时间处理: Onldle <深入浅出MFC读书笔记>

    空闲时间处理 1.什么是空闲时间 2.空闲时间可以用来做什么 什么是空闲时间 书上的概念是这样的: 系统中没有任何消息等待处理 例如: 假如我们的我们鼠标从屏幕划过, 可能产生很多的消息, 但是电脑的 ...

  8. 深入浅出统计学读书笔记:离散概率分布的应用

    概率可以得知发生某件事情的可能性大小,但无法指出整体影响,比如赚到的钱真的填的平那些亏掉的钱吗 概率分布如下表: 组合 无 柠檬 樱桃 美元/樱桃 美元 x -1 4 9 14 19 P(X=x) 0 ...

  9. 深入浅出统计学读书笔记

    一.信息图形化 1.垂直条形图更常用.不过,如果类名称太长,水平条形图就有用了–你将有大量空白位置标识每个类的名称. 2.堆积条形图:针对每种游戏,用一条长方形代表这类游戏的满意玩家频数,用另一条长方 ...

最新文章

  1. 【FI学习笔记】客户发票收款清账
  2. Activiti-01
  3. java中reject方法作用_Java BindingResult.rejectValue方法代碼示例
  4. pythonfor循环列表排序_Python使用for循环对列表内元素进行排序方法
  5. 推荐一个Python的开源小工具大合集!
  6. Spring mvc json
  7. Hashmap存储大小
  8. socket.io 消息发送
  9. 彻底解决pycharm中用matplotlib表格绘制时图表中汉字设置
  10. 好用过头的LeetCode刷题模板分享!(已拿亚麻offer)
  11. java 导出word换行_POI写Word换行
  12. 搭建HTTP Live Streaming直播系统
  13. camera具体曝光时间readout时间出图时间
  14. #编译原理# 概论(一)
  15. 使用Flexible实现手淘页面的终端适配
  16. listen1在火狐浏览器安装的步骤和细节处理
  17. STM32F103+W5500,HAL库
  18. 能够走到聚光灯下的“码师”,都做对了什么
  19. 男生适合新媒体运营吗
  20. 抖音直播dou+与视频dou+有什么区别;超详细dou+玩法投放技巧;丨国仁网络资讯

热门文章

  1. 技术专业术语/专业名词 - 收集
  2. 编译原理习题(含答案)——1 绪论——哈工大陈鄞配套版本
  3. Wikipedia iOS客户端源码
  4. fortran2010编译出错,无法找到exe文件的解决方法
  5. 我劝你最好别偷看我的HTTP总结
  6. ZT自老罗的博客 Android系统的智能指针(轻量级指针、强指针和弱指针)的实现原理分析...
  7. 用户名不在sudoers文件中此事将被报告的解决方法
  8. 在细粒度与高密度场景下的 基于人头的 人流量监测方法【神经网络】
  9. GraphCL: Graph Contrastive Learning with Augmentations笔记
  10. Golang的viper库