MySql学习的总结(一)
基本的select语句
1.SQL语言的分类
DDL:数据定义语言。
CREATE\ALTER\DROP\RENAME\TRUNCATE
DML:数据操作语言。
INSERT\DELETE\UPDATE\SELECT
DCL:数据控制语言。
COMMIT\ROLLBACK\SAVEPOINT
2.SQL语言的规则与规范
2.1 基本规则
- SQL 可以写在一行或者多行。
- 为了提高可读性,各子句分行写,必要时使用缩进
- 每条命令以 ; 或 \g 或 \G 结束
- 关键字不能被缩写也不能分行
- 关于标点符号
- 必须保证所有的()、单引号、双引号是成对结束的
- 必须使用英文状态下的半角输入方式
- 字符串型和日期时间类型的数据可以使用单引号(’ ')表示
- 列的别名,尽量使用双引号(" "),而且不建议省略as
2.2 SQL大小写规范
-
MySQL 在 Windows 环境下是大小写不敏感的
-
MySQL 在 Linux 环境下是大小写敏感的
-
数据库名、表名、表的别名、变量名是严格区分大小写的
-
关键字、函数名、列名(或字段名)、列的别名(字段的别名) 是忽略大小写的。
-
-
推荐采用统一的书写规范:
- 数据库名、表名、表别名、字段名、字段别名等都小写
- SQL 关键字、函数名、绑定变量等都大写
2.3 命名规则
- 数据库、表名不得超过30个字符,变量名限制为29个
- 必须只能包含 A–Z, a–z, 0–9, _共63个字符
- 数据库名、表名、字段名等对象名中间不要包含空格
- 同一个MySQL软件中,数据库不能同名;同一个库中,表不能重名同一个表中,字段不能重名
- 必须保证你的字段没有和保留字、数据库系统或常用方法冲突。如果坚持使用,请在SQL语句中使 用`(着重号)引起来
- 保持字段名和类型的一致性,在命名字段并为其指定数据类型的时候一定要保证一致性。假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了
3. 基本的SELECT语句
3.1 最基本的 SELECT语句:SELECT 字段1,字段2 … FROM 表名
3.2 查询不重复记录的条数 DISTINCT 关键字
SELECT DISTINCT department_id
FROM employees;
3.3 IFNULL 当字段里有值为空,参与运算的时候,可以考虑使用IFNULL来解决问题
SELECT employee_id,salary "月收入",salary*(1+IFNULL(commission_pct,0))*12 "年收入",commission_pct "奖金率"
FROM employees;
3.4 符号``的使用,
当字段与保留字,关键字相同的时候。使用 ``
3.5 显示表结构
DESCRIBE/DESC 表名; #显示了表中字段的详情信息
3.6 过滤数据 WHERE
SELECT *
FROM employees
WHERE department_id = 90;
4. 运算符
-
算数运算符
-
比较运算符
-
逻辑运算符
MySQL中
注意 :
OR可以和AND一起使用,但是使用的时候要注意两者的优先级,由于AND的优先级高于OR,因此先对AND两边的操作数进行操作,再与OR中的操作数进行结合。
-
位运算符
&:全1才为1;|:有1就为1;^:全0才为0。 -
运算符的优先级
数字编号越大,优先级越高,优先级高的运算符先进行计算。