SQL 基本使用
最近半年多一直都是用 MongoDB,好久没 SQL 了。
这学期有个数据库课,,上了几节课了,还没看过课本😂,但想来后面肯定是学 SQL,要复习一下了。
所以想在下一个项目里用用 SQL,所以先来复习一下基本的 SQL CRUD。
SQL 基本概念
SQL:Structured Query Language,结构化查询语言,访问和处理数据库用的。
SQL 有这几种能力:
- DDL:Data Definition Language,定义数据的:建表、删表、修改表结构的;
- DQL:Data Query Language,查询数据的;
- DML:Data Manipulation Language,修改数据的:添加、删除、更新数据的;
SQL 语法特点
-
语句末要写分号
-
关键字不区分大小写;
表名、列名、(可能)区分大小写。
一般情况下,我们可以把 SQL 关键字大写,表名、列名等使用小写。
-
文本字段用单引号包裹(e.g.
'String'
),数值字段不能加引号。
SQL 数据类型
名称 | 类型 | 说明 |
---|---|---|
INT | 整型 | 4字节整数类型,范围约+/-21亿 |
BIGINT | 长整型 | 8字节整数类型,范围约+/-922亿亿 |
REAL | 浮点型 | 4字节浮点数,范围约+/-1038 |
DOUBLE | 浮点型 | 8字节浮点数,范围约+/-10308 |
DECIMAL(M,N) | 高精度小数 | 由用户指定精度的小数,例如,DECIMAL(20,10)表示一共20位,其中小数10位,通常用于财务计算 |
CHAR(N) | 定长字符串 | 存储指定长度的字符串,例如,CHAR(100)总是存储100个字符的字符串 |
VARCHAR(N) | 变长字符串 | 存储可变长度的字符串,例如,VARCHAR(100)可以存储0~100个字符的字符串 |
BOOLEAN | 布尔类型 | 存储True或者False |
DATE | 日期类型 | 存储日期,例如,2018-06-22 |
TIME | 时间类型 | 存储时间,例如,12:20:59 |
DATETIME | 日期和时间类型 | 存储日期+时间,例如,2018-06-22 12:20:59 |
SQL 基本语句
DDL
库
- CREATE
CREATE DATABASE
用来建数据库。
CREATE DATABASE database_name;
- DROP
DROP DATABASE
用来删库。
DROP DATABASE database_name;
- USE
USE
用来选择要操作的数据库。
USE database_name;
表
- CREATE
CREATE TABLE
创建数据表。
CREATE TABLE [IF NOT EXISTS] table_name (
`column_name` column_type,
`column_name` column_type,
...,
PRIMARY KEY ( `key_column_name` )
)[ENGINE=InnoDB DEFAULT CHARSET=utf8];
注:[]
里的是可选的。
- DROP
DROP TABLE
用来删除表。
DROP TABLE table_name ;
DQL
SELECT
SELECT
语句用于从数据库中选取数据。
SELECT 从数据库中选取字段,把结构放到一个结果表中,成为结果集。
SELECT column_name,column_name
FROM table_name;
也可以:
SELECT *
FROM table_name;
SELECT DISTINCT
SELECT DISTINCT
语句用于返回列里唯一不同的值
SELECT DISTINCT 是把所选列去重输出,给你看这一列里有多少种不同情况的,如果查询的是多列会输出每一种不同组合。