SQL练习笔记

环境搭建

  1. 使用Docker搭建mysql5.6练习环境
$ docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=passward --name=sql mysql:5.6
  1. 链接工具
    SQLyog

  2. 教程
    W3C school

基础教程

语法

数据库表

一个数据库由多个构成,表中有数据记录

SQL 语句

SQL语句对大小写并不敏感

SELECT LastName FROM Persons

SQL INSERT语句

INSERT语句用来向表中插入数据。

语法

INSERT INTO table_name VALUES('value1', 'value2', 'value3', 'value5')
INSERT INTO table_name (col1, col2, col3. col4, col5) VALUES('value1', 'value2', 'value3', 'value5')

用例

INSERT INTO person (lastName, FirstName, Address, City) VALUES('Adams','John','Oxford Street' ,'London')
INSERT INTO person (lastName, FirstName, Address, City) VALUES('Bush','George','Fifth Avenue' ,'New York')
INSERT INTO person (lastName, FirstName, Address, City) VALUES('Carter','Thomas','Changan Street' ,'Beijing')
INSERT INTO person VALUES('100','Amber','AAA','Big Street' ,'Xi\'an')

结果

执行以上SQL会向表中插入一下练习数据

id LastName FirstName Address City
100 Amber AAA Big Street Xi’an
28 Carter Thomas Changan Street Beijing
27 Bush George Fifth Avenue New York
26 Adams John Oxford Street London

SQL SELECT 语句

SELECT 语句用于从表中选取数据。

语法

SELECT col_name FROM table_name
SELECT * FROM table_name

用例及结果

选取Person中,所有的LastName,FirstName字段

SELECT LastName,FirstName FROM Persons

返回数据集如下:

LastName FirstName
Adams John
Bush George
Carter Thomas
Amber AAA

选取所有的表中字段

SELECT * FROM person

返回数据集如下:

id LastName FirstName Address City
100 Amber AAA Big Street Xi’an
28 Carter Thomas Changan Street Beijing
27 Bush George Fifth Avenue New York
26 Adams John Oxford Street London

SQL DISTINCT 语句

在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。

语法

SELECT DISTINCT col_name from table_name

用例及结果

继续向person表中添加一条重复数据

INSERT INTO person VALUES ('10', 'Amber', 'AAA', 'Big Street', 'Xi\'an')

使用普通查询

SELECT LastName,FirstName FROM Persons

返回

LastName
Adams
Bush
Carter
Amber
Amber

加入DISTINCT进行去重查询:

SELECT DISTINCT LastName FROM Persons

返回

LastName
Adams
Bush
Carter
Amber

SQL WHERE 子句

语法

SELECT col_name FROM table_name WHERE 列 运算符 值

下面的运算符可在 WHERE 子句中使用:

操作符 描述
= 等于
<> 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于
BETWEEN 在某个范围内
LIKE 搜索某种模式

使用 WHERE 子句

查询person表中住在beijing的人

SELECT * FROM person where City='beijing'

查询person表中不住在beijing的人

SELECT * FROM person where City<>'beijing'

查询person表中id大于100的人

SELECT * FROM person where id>100

AND & OR 运算符

AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。
选取名字为Amber,并且id小于10的数据

SELECT * FROM person WHERE LastName='Amber' AND id<100

或关系

SELECT * FROM person WHERE LastName='Amber' OR id>100

SQL ORDER BY 子句

按照LastName的字母顺序排列

SELECT * FROM person ORDER BY lastname

按照LastName的字母逆顺序排列,相同的再按照id的逆顺序排列

SELECT * FROM person ORDER BY lastname DESC, id DESC

SQL UPDATE

语法

UPDATE table_name SET cal_name = new_value WHERE 列名称 = 某值

实例

person表中,查找到lastNameAmber的数据,并全部将lastName改为Baber

UPDATE person SET lastName='Bmber' WHERE lastName='Amber'

person表中,查找到id100的数据,并全部将lastName改为Cmber,firstName改为CCC

UPDATE person SET lastName='Cmber', firstName='CCC' WHERE id=101

person表中,查找到id100的数据,并全部将lastName改为Amber

UPDATE person SET lastName='Amber' WHERE id=100

DELETE 语句

DELETE 语句用于删除表中的行。

语法

DELETE FROM person where 列名称 =

实例

删除person表中id为101的数据

DELETE FROM person where id=101

你可能感兴趣的:(职业技能)