数据库1:Websites
mysql -uroot -p 连接mysql
use Websites 连接数据库
SELECT name,country FROM Websites; 从 "Websites" 表中选取 "name" 和 "country" 列
SELECT DISTINCT country FROM Websites;从 "Websites" 表的 "country" 列中选取唯一不同的值,也就是去掉 "country" 列重复值
SELECT * FROM Websites WHERE country='CN';从 "Websites" 表中选取国家为 "CN" 的所有网站
逻辑运算的优先级:() not and or
SELECT * FROM Websites WHERE alexa > 15 AND (country='CN' OR country='USA');从 "Websites" 表中选取 alexa 排名大于 "15" 且国家为 "CN" 或 "USA" 的所有网站
SELECT * FROM Websites WHERE alexa>13 ORDER BY alexa ASC,country DESC; 查询alexa大于13的并按照alexa升序排列country降序排列
INSERT INTO table_name (column1,column2,column3,...) VALUES (value1,value2,value3,...);
参数说明:
- table_name:需要插入新记录的表名。
- column1, column2, ... :需要插入的字段名。
- value1, value2, ... :需要插入的字段值。
UPDATE Websites SET alexa='5000', country='USA' WHERE name='菜鸟教程';把名字=菜鸟教程的数据 的 alexa 排名更新为 5000,country 改为 USA
PS(执行没有 WHERE 子句的 UPDATE 要慎重,再慎重。
在 MySQL 中可以通过设置 sql_safe_updates 这个自带的参数来解决,当该参数开启的情况下,你必须在update 语句后携带 where 条件,否则就会报错。
set sql_safe_updates=1; 表示开启该参数)
DELETE FROM Websites WHERE name='Facebook' AND country='USA';从 "Websites" 表中删除网站名为 "Facebook" 且国家为 USA 的网站
SELECT * FROM Websites LIMIT 2;从 "Websites" 表中选取头两条记录:
SELECT * FROM Websites WHERE name LIKE '%oo%';选取 name 包含 "oo" 的所有客户:
SELECT * FROM Websites WHERE name NOT LIKE '%oo%';选取 name 不包含 "oo" 的所有客户:
'%o'以o开头 'o%'以o结尾 'o_%'倒数第二位是o
SELECT * FROM Websites WHERE name REGEXP '^[A-H]';选取 name 以 A 到 H 字母开头的网站:
SELECT * FROM Websites WHERE name REGEXP '^[^A-H]';选取 name 不以 A 到 H 字母开头的网站:
SELECT * FROM Websites WHERE name IN ('Google','菜鸟教程');选取 name 为 "Google" 或 "菜鸟教程" 的所有网站:
SELECT * FROM Websites WHERE (alexa BETWEEN 1 AND 20) AND country NOT IN ('USA', 'IND');选取 alexa 介于 1 和 20 之间但 country 不为 USA 和 IND 的所有网站:
SELECT name, CONCAT(url, ', ', alexa, ', ', country) AS site_info FROM Websites;三个列(url、alexa 和 country)结合在一起,并创建一个名为 "site_info" 的别名: