sql常规语句

复习了下常规的sql语句,主要以适用mysql为主。

一.      基础语句

1、创建数据库demo

CREATE DATABASE demo;

2、选择数据库demo

use demo;

3、创建数据表(create table)

CREATE TABLE table_name (

column_name1 data_type(size),

column_name2 data_type(size),

....

);

4、查看表

show tables from database_name;

5、查看列属性

SHOW COLUMNS FROM table_name;

6、在已有的表中添加、删除或修改列(ALTER TABLE)

添加列

ALTER TABLE table_name ADD column_name datatype;

修改列(元素属性)

ALTER TABLE table_name MODIFY COLUMN column_name datatype;

删除列

ALTER TABLE table_name DROP COLUMN column_name;

7、删除表

DROP TABLE table_name;

8、增相关

向表中插入新记录(INSERT INTO)

无需指定要插入数据的列名,只需提供被插入的值即可

INSERT INTO table_name VALUES (value1,value2,value3,...);

需要指定列名及被插入的值

INSERT INTO table_name (column1,column2,column3,...) VALUES (value1,value2,value3,...);

9、查相关

从数据表中选取数据(SELECT)

SELECT column_name,column_name FROM table_name;

SELECT * FROM table_name;

从数据表中选取唯一的数据(SELECT DISTINCT )

SELECT DISTINCT column_name,column_name FROM table_name;

过滤记录(WHERE )

SELECT column_name,column_name FROM table_name

WHERE column_name operator value;

基于一个以上的条件对记录进行过滤(AND & OR)

AND

SELECT * FROM Websites WHERE country='CN' AND alexa > 50;

OR

SELECT * FROM Websites WHERE country='USA' OR country='CN';

按照一个列或者多个列对结果集进行排序(ORDER BY)

SELECT column_name,column_name FROM table_name ORDER BY column_name,column_name ASC|DESC;

10、改相关

更新表中的记录(UPDATE)

UPDATE table_name SET column1=value1,column2=value2,... WHERE some_column=some_value; //和WHERE一起使用,不然会导致所有数据都被更新

11、删相关

删除表中的记录(DELETE)

DELETE FROM table_name WHERE some_column=some_value;

 

二.      SQL 通配符(用于搜索表中的数据)

%

替代 0 个或多个字符

_

替代一个字符

[charlist]

字符列中的任何单一字符

[^charlist] 或 [!charlist]

不在字符列中的任何单一字符

 

三.      drop和delete

删除数据库、表、表的列用drop

表中删除数据用delete

 

四.       SELECT limit

规定要返回的记录的数目

SELECT column_name(s) FROM table_name LIMIT number;

 

五.      关联查询

1、笛卡尔积(多种写法)

SELECT * FROM tableA CROSS JOIN tableB;

select * from tableA nature join tableB;

select * from tableA natura join tableB

2、内连接(交集)

INNER JOIN

SELECT * FROM tableA LEFT JOIN tableB ON tableA.typeId=tableB.id;

3、左连接(交集+左表剩下的数据)

LEFT JOIN

select * from tableA left join tableB on tableA.id=tableB.id;

4、右连接(交集+右表剩下的数据)

RIGHT JOIN

select * from tableA right join tableB on tableA.id=tableB.id;

5、外连接(并集:交集+左表剩下的数据+右表剩下的数据)

OUTER JOIN

mysql不支持,通过union合并左右连接来实现

select * from tableA left join tableB on tableA.id=tableB.id union select * from tableA right join tableB on tableA.id=tableB.id;

6、USING子句

USING的功能相当于ON,区别在于USING指定一个属性名用于连接两个表,而ON指定一个条件(返回结果会将条件列去重)

select * from tableA inner join tableB using(id);

7、自然连接(using子句简化版,会找出两个表中相同的列进行连接)

NATURAL JOIN

select * from tableA natural join tableB;

 

六.      UNION

1、UNION 操作符用于合并两个或多个 SELECT 语句的结果集

SELECT column_name(s) FROM table1 UNION SELECT column_name(s) FROM table2;

2、UNION 操作符选取不同的值。如果允许重复的值,使用 UNION ALL

 

七.      IN

1、IN 操作符允许您在 WHERE 子句中规定多个值

2、SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,...);

一般嵌套查询会用IN或者直接(括号作为一个整体)(不推荐使用),先运行在嵌套在最内层的语句,再运行外层

 

八.      MySQL 数据类型(常用)

1.1.        Text

1.1.1.   CHAR(size)

  • 保存固定长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的长度。最多 255 个字符

1.1.2.   VARCHAR(size)

  • 保存可变长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的最大长度。最多 255 个字符

1.1.3.   TEXT

  • 存放最大长度为 65,535 个字符的字符串

1.2.        Number

1.2.1.   INT(size)

  • 带符号范围-2147483648到2147483647,无符号的范围是0到4294967295。 size 默认为 11

1.2.2.   FLOAT(size,d)

  • 带有浮动小数点的小数字。在 size 参数中规定显示最大位数。在 d 参数中规定小数点右侧的最大位数

1.3.         Date/Time

1.3.1.   DATE

  • 日期。格式:YYYY-MM-DD

1.3.2.   DATETIME()

  • 日期和时间的组合。格式:YYYY-MM-DD HH:MM:SS

 

引用

https://www.runoob.com/sql/sql-syntax.html

https://www.cnblogs.com/fudashi/p/7491039.html

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值