SQL基础知识
SQL基础知识
1. 什么是SQL?
SQL: Structured Query Language,结构化查询语言,可以访问和处理数据库
RDBMS: Relational Database Management System,关系型数据库管理系统
SQL对大小写不敏感,SELECT和select是一样的
2. 数据库表操作
一个数据库通常包含一个或多个表,每个表有名字表示("Websites"),表包含带有数据的记录(行)。
以MySQL数据库RUNOOB为例,创建Websites表
use RUNOOB; //选择数据库 set names utf8; //设置使用的字符集 SELECT * FROM Websites; //选取数据表的所有记录
3. 重要的SQL命令
SELECT 查询
UPDATE 更新
DELETE 删除
INSERT INTO 插入
CREATE DATABASE 创建新数据库
ALTER DATABASE 修改数据库
CREATE TABLE 创建新表
DROP TABLE 删除表
CREATE INDEX 创建索引
DROP INDEX 删除索引
4. 常用例子
SELECT name, country FROM Websites; //从"Websites"表中选取"name"和"country"列 SELECT DISTINCT country FROM Websites //从"Websites"表中选取"country"列唯一不同的值 SELECT * FROM Websites WHERE country='CN' //从"Websites"表中选取国家为"CN"的所有记录 SELECT * FROM Websites WHERE country='CN' AND alexa>50; //且 SELECT * FROM Websites WHERE country='USA' OR country='CN'; //或 SELECT * FROM Websites ORDER BY alexa; //查询所有记录按"alexa"升序排序 SELECT * FROM Websites ORDER BY alexa DESC; //查询所有记录按"alexa"降序排序 INSERT INTO Websites (name, url, alexa, country) VALUES ('百度', 'https://www.baidu.com/','4','CN'); //插入新纪录 UPDATE Websites SET alexa='5000', country='USA' WHERE name='百度'; //更新 DELETE FROM Websites WHERE name='百度' AND country='CN'; //删除记录 SELECT * FROM Websites LIMIT 2; //选取头2条记录,MySQL数据库支持 SELECT TOP 50 PERCENT * FROM Websites; //选取前%50的记录,Microsoft SQL Server数据库可执行 SELECT * FROM Websites WHERE name LIKE 'G%'; //查询name以字母"G"开头的所有客户,%通配符(默认字母) SELECT * FROM Websites WHERE name LIKE '%k'; //查询name 以字母 "k" 结尾的所有客户 SELECT * FROM Websites WHERE name LIKE '%oo%'; //查询name包含字母"oo"的所有用户 SELECT * FROM Websites WHERE name NOT LIKE '%oo%'; //查询name不包含字母"oo"的所有用户 SELECT * FROM Websites WHERE name IN ('Google','菜鸟教程'); //查询name为"Goolgle"或"菜鸟教程"的所有网站 SELECT * FROM Websites WHERE alexa BETWEEN 1 AND 20;