欢迎投稿

今日深度:

SQL的分类、导入现有数据表的方式、基本的select语句、过滤数据语法、sql运算符,SELECT*FRO

SQL的分类、导入现有数据表的方式、基本的select语句、过滤数据语法、sql运算符,SELECT*FRO


SQL的分类

  • DDL:数据定义语言

CREATE\ALTER\RENAME(重命名)\DROP\TRUNCATE(清空表)

  • DML:数据操作语言

INSERT\DELETE\UPDATE\SELECT(增删改查)

  • DCL:数据控制语言

COMMIT(提交)\ROLLBACK(回滚)\SAVEPOINT(把事物分的更细一点,回滚到哪一个点上)\GRANT(授予权限)\REVOKE(回收权限)

导入现有数据表的方式

方式一:再终端m采用命令行方式,输入命令:source 现有文件名的全路径;

方式二:基于具体的图形化界面工具可以导入数据

基本的select语句

# 1.基本的select查询:select 字段名1,字段名2... from 表名;

SELECT 1+1,2*3; # 像这种不需要从表中获取的可以省略from 表名 或者from 伪表

SELECT 1+1,2*3 FROM DUAL; # DUAL是一个伪表

SELECT * FROM employees; # 查询所有的列

SELECT salary FROM employees;

# 2.列的别名
# 别名可以加双引号(不要用单引号),也可以不加
# 别名可以前可以加个as,也可以不加
SELECT employee_id '员工id' FROM employees;
SELECT employee_id as '员工id' FROM employees;

# 3.去除重复行:DISTINCT关键字
SELECT DISTINCT department_id FROM employees;

# 4.空值参与运算
# 空值null
# null不等同于0,"","null"
SELECT employee_id,salary "月工资",salary*(1+commission_pct)*12 "年工资",commission_pct
FROM employees;

# 解决方案:引入ifnull函数
SELECT employee_id,salary "月工资",salary*(1+IFNULL(commission_pct,0))*12 "年工资",commission_pct
FROM employees;

# 5.着重号:如果出现字段名或者表名和sql中的关键字重名了,就需要加着重号区分。
SELECT * FROM `order`;

# 6.查询常数
# 大学不存在表中,我们可以添加常量表示。
SELECT "大学",last_name FROM employees;

# 7.显示表结构
DESCRIBE employees;
DESC employees;

过滤数据语法

使用where关键字

SELECT * FROM employees
WHERE department_id=90;

sql运算符

  • 算术运算符: + - * / %
在SQL中,+号没有连接的作用,就表示加法运算,与字符串进行相加减时会将字符串转为数值进行计算(隐式计算)
SELECT 100 + '1' FROM DUAL;

当字符串无法转为数值时,会转换为0计算
SELECT 100 + 'a' FROM DUAL;

null值参与运算,结果为null
SELECT 100 + NULL FROM DUAL;
  • 比较运算符:= != > < >= <= <=>

<=>意思是安全等于,主要是针对null值进行判断,两边都为null返回1,否则为0

like:模糊查询

%:代表不确定个数的字符(0个、1个、无数个)
:代表一个不确定的字符
:代表转义字符,_这时_就不代表一个不确定的字符了,就表示

正则表达式运算:详见mysql资料

  • 逻辑运算符:not and or xor(逻辑异或)

  • 位运算符:暂略

  • 运算符的优先级:()=> not => and => or

www.htsjk.Com true http://www.htsjk.com/Mysql/44949.html NewsArticle SQL的分类、导入现有数据表的方式、基本的select语句、过滤数据语法、sql运算符,SELECT*FRO SQL的分类 DDL:数据定义语言 CREATE\ALTER\RENAME(重命名)\DROP\TRUNCATE(清空表) DML:数据操作语言...
评论暂时关闭