SQL

Structured Query Language 结构化查询语言

SQL语法

  • SQL语句对大小写不敏感。
  • 某些数据库系统要求在每条 SQL 语句的末端使用分号。
  • 分号是在数据库系统中分隔每条 SQL 语句的标准方法,这样就可以在对服务器的相同请求中执行一条以上的 SQL 语句。

SQL语句

SELECT

从数据库中选取数据

SELECT * FROM my_table;			// 从该表中选择所有列
SELECT id,name FROM my_table; 	// 从该表中选择id和name列

SELECT DISTINCT

返回唯一不同的值

SELECT DISTINCT name FROM my_table; // 选择该表中的name列,并去掉重复值

WHERE

用于过滤记录

SELECT * FROM my_table where name='juzi';	// 选取name为juzi的记录
SELECT * FROM my_table where sum<=10;		// 数值不使用单引号

where子句中可以使用各种比较运算符,逻辑运算符,以及BETWEEN,LIKE,IN,IS NULL等特殊条件。

AND & OR

SELECT * FROM my_table where name='juzi' AND age < 18;
SELECT * FROM my_table where type='apple' OR type='banana';
SELECT * FROM my_table where country='CHINA' AND (type='apple' OR type='banana');

ORDER BY

用于对结果进行排序

SELECT * FROM student ORDER BY height;		 // 根据height排列,默认升序ASC
SELECT * FROM student ORDER BY height DESC;	 // 根据height降序排列

根据多列进行排序

// 先根据age降序排列,再根据height局部升序排列
SELECT * FROM student ORDER BY age DESC,height;

INSERT INTO

用于向表中插入新纪录

  • 没有指定列名,需要列出每一列的数据,自动更新的列,如id,不需要指定

    INSERT INTO my_table
    VALUES (value1,value2,...)
  • 指定列插入数据

    INSERT INTO my_table (name, age, height)
    VALUES ('apple', '16', '168');

UPDATE

用于更新表中的记录

UPDATE student
SET height='190', age='19'
WHERE name='apple';

如果没有Where语句,将会更新表中的所有数据,应当小心使用!

DELETE

用于删除表中的记录

DELETE FROM student
WHERE name='apple' AND country='CHINA';

删除表中所有行

DELETE FROM my_table;
// 或者
DELETE * FROM my_table;

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!

SQL基础2 上一篇
hexo迁移 下一篇