网站Y分钟学会X语言上展示了多种语言的基础语法,其他很多语言都有中文版本了,但SQL没有。于是我简单翻译一下。
-- 注释以 -- 开始
-- 每条命令以;结束
-- SQL并不区分关键字的大小写.为了更容易把关键字与数据库、表、字段名区分,
-- 示例里采用了关键字大写的惯例
-- 创建与删除数据库. 数据库名与表名区分大小写
CREATE DATABASE someDatabase;
DROP DATABASE someDatabase;
-- 列出所有可用的数据库
SHOW DATABASES;
-- 使用某个存在的数据库
USE employees;
-- 从当前数据库的departments表查出所有的记录,每条记录包含了所有的字段,
-- 输出默认会在屏幕上滚动展示.
SELECT * FROM departments;
-- 从departments表查出所有的记录,但只查询dept_no、dept_name字段.
-- 可以跨行拆分命令.
SELECT dept_no,
dept_name FROM departments;
-- 从departments表查出包含所有的字段的记录,但只取5行
SELECT * FROM departments LIMIT 5;
-- 从departments表查出值里包含了'en'的dept_name字段
SELECT dept_name FROM departments WHERE dept_name LIKE '%en%';
-- 从departments表查出以S开头、后续长度为4作为dept_name字段值的记录
SELECT * FROM departments WHERE dept_name LIKE 'S____';
-- 从titles表查出title字段去重后都有哪些值
SELECT DISTINCT title FROM titles;
-- 同上,但是对title字段的值进行排序(区分大小写).
SELECT DISTINCT title FROM titles ORDER BY title;
-- 统计departments表里有多少条记录.
SELECT COUNT(*) FROM departments;
-- 统计departments表里有多少条记录的ept_name字段值里包含了en
SELECT COUNT(*) FROM departments WHERE dept_name LIKE '%en%';
-- 从tiltes表里查出某个job的title、开始日期与结束日期(只查询10条记录).
-- 根据job所属的employee编号从employee表里关联出所属employee的first_name、last_name.
SELECT employees.first_name, employees.last_name,
titles.title, titles.from_date, titles.to_date
FROM titles INNER JOIN employees ON
employees.emp_no = titles.emp_no LIMIT 10;
-- 列出所有数据库里的所有表.
-- 各数据库通常会对此提供特有的快捷命令.
SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE='BASE TABLE';
-- 在当前使用的数据库里,创建一张名为tablename1的表.
-- 除了语句里的两个字段使用到的数据类型,还有很多其他的可选项可以用来定义字段.
CREATE TABLE tablename1 (fname VARCHAR(20), lname VARCHAR(20));
-- 向tablename1中插入一行数据,
-- 这条语句假设插入的值顺序与列字段顺序一致.
INSERT INTO tablename1 VALUES('Richard','Mutt');
-- 找出tablename1表里lname字段的值为Mutt的记录,将fname字段的值更新为John.
UPDATE tablename1 SET fname='John' WHERE lname='Mutt';
-- 找出tablename1里lname字段值以M开头的记录删除
DELETE FROM tablename1 WHERE lname like 'M%';
-- 从tablename1表里删除所有数据
DELETE FROM tablename1;
-- 删除tablename1整表
DROP TABLE tablename1;