环境搭建
- 使用Docker搭建mysql5.6练习环境
$ docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=passward --name=sql mysql:5.6
-
链接工具
SQLyog -
教程
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
表中,查找到lastName
为Amber
的数据,并全部将lastName
改为Baber
UPDATE person SET lastName='Bmber' WHERE lastName='Amber'
在person
表中,查找到id
为100
的数据,并全部将lastName
改为Cmber
,firstName
改为CCC
UPDATE person SET lastName='Cmber', firstName='CCC' WHERE id=101
在person
表中,查找到id
为100
的数据,并全部将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