SQL入门

huuhghhgyg avatar
  • huuhghhgyg
  • 2 min read
1SELECT *
2FROM table
3WHERE column LIKE '条件'
4Order by 1
5LIMIT 100

基本语法

注释

--后面是注释内容。--是sql的注释标志

运算符

运算符 说明
AND 和,AND的优先级一般会高于OR
OR 或者
NOT
() 括号,提高优先级。

条件

符号 含义
% n个任意字符
_ 1个任意字符

正则表达式

REGEXP(Regular Expression)

1WHERE column REGEXP '表达式'
符号 意义 例子
^ 以..开头 ^field
$ 以..结尾 field$
\ 或者 ^field|mac|rose
[] 匹配中括号内的所有字符 [gim]e,匹配ge、ie、me,
[a-c]d,匹配
ad、bd、cd,
[1-3]同理

注意:由于我使用的markdown编译器无法将表格中的代码中的|识别为符号,以上的|为全角符号

NULL

表达式 含义
IS NULL 值为null
IS NOT NULL 值不为null

AS

在原有数据基础上新建一列数据,或者理解为处理完原有列数据填入新一列中

1score + 10 AS new _score

SELECT

选择表内的数据

1SELECT first _name, last _name

ORDER BY

根据什么值排序

1ORDER BY first _name

多值排序

1ORDER BY state, first _name

根据列排序

1ORDER BY 1, 2

DESC

  • descending:降序
1ORDER BY first _name DESC

多值排序

1ORDER BY state DESC, first _name

LIMIT

表达式 含义
LIMIT 6 设定返回查询数据的最大条数为6
LIMIT 6, 3 跳过前6条,再返回3条数据(返回第7-9条数据)

Alias 简写

1SELECT customer _id c
2From table_t
3ORDER BY c

JOIN和ON

JOIN用于联系多个表的数据列。

1SELECT *
2FROM orders o
3JOIN customers c
4  ON o.customer _id = c.customer _id

切换数据库

1USE 数据库名
2
3SELECT *
4FROM 另一个数据库名.数据表
5

UNION

用于合并多个查询结果。

1SELECT first _name
2FROM customers
3UNION
4SELECT name
5FROM shippers
  • 如果一个查询里面有多个语句,一个语句结束后要使用分号(;)
  • UNION连接的查询语句只算一个语句

属性

列属性

数据类型

类型 含义
INT(11)
VARCHAR(50) 最大50个字符,且最大占用50个字符的空间,常用于保存string
CHAR(50) 最大50个字符,占用50个字符的的空间

数据属性

缩写 全称 含义
PK Primary Key 数据主键
NN Not Null 是否能接受NULL值?(可选值?)
AI Auto Increment 自动递增
Default / Expression - 默认值

数据管理

添加行

按照数据排列顺序,包含在VALUES里面添加。

全部添加

 1INSERT INTO customers
 2-- 如果想要用自动递增,可以直接填DEFAULT
 3-- 如果是可选值,不填入数据的话就填NULL
 4VALUES (
 5  DEFAULT,
 6  'first name value',
 7  'last name value',
 8  '1990-01-01',
 9  NULL,
10  'address',
11  'city',
12  'CA')

选择部分变量添加

1INSERT INTO customers(
2  first _name,
3  last _name,
4  birth _date)
5-- VALUES的顺序根据上面定义的顺序来,上面定义的数据顺序可以根据自己的喜好
6VAULES(
7  'first name value',
8  'last name value',
9  'date of birth')

添加多个变量

1INSERT INTO shippers (name)
2VALUES('shipper1'),
3  ('shipper2'),
4  ('shipper3')

向不同的表格添加变量

1INSERT INTO orders (customer _id, order _date, status)
2VALUES (1, '2019-01-02', 1);
3INSERT INTO order _items
4VALUES (LAST _INSERT _ID(), 1, 1, 2.95),
5VALUES (LAST _INSERT _ID(), 2, 1, 3.95)

从一个数据表添加变量到另一个数据表

新建为数据表(CREATE)

1CREATE TABLE ordres _archived AS
2SELECT  * FROM orders
3-- 这里的SELECT语句是SubQuery
  • 右键数据表的“truncate table”是清空数据表的所有数据

插入到数据表(INSERT)

1INSERT INTO orders _archived
2SELECT  *
3FROM orders
4WHERE order _date < '2019-01-01'

更新数据

更新单行数据

1UPDATE table
2SET payment _total = 10, payment _date = '2019-03-01'
3WHERE invoice _id = 1

更新多行数据

1UPDATE table
2SET payment _total = 10, payment _date = '2019-03-01'
3WHERE invoice _id IN (3, 4)
4-- 如果要更新数据表中的所有值,只需留空WHERE

删除数据

1DELETE FROM table
2-- 如果没有WHERE语句,将会删除所有数据,非常危险。
3WHERE client _id = (
4  SELECT client _id
5  FROM clients
6  WHERE name = 'Myworks')
huuhghhgyg

Writter by : huuhghhgyg

Never Settle

Recommended for You

Xaml学习小结

Xaml学习小结

LINQ笔记&实例

LINQ笔记&实例