MySQL

数据库对于编码来说是非常重要的,可以说任何地方都离不开数据库。
MySQL视频
SQL语言不区分大小写。

此处仅是记录一下我自己总结的简单语句,并不一定能解答您的疑惑哦。

1.查询select,类似于Java的system.out.println()

#基本操作
select 100;
select 100*3;
select * from employees;
select employer_id,first_name from employees;
#如果一行代码写的太长,则可以按F12自动排版

2.基础查询

#显示employees表内的employer_id那一列。
# ` `表示强调符,如果表名或者列名与特殊字相同时需要用起符号
select employer_id from `employess`;

#起外号,类似于C语言内的typedef
select employer_id as "员工编号" from employees;
#起的外号如果不含特殊字符(空格),则可以不用引号,否则需要用单引号或者双引号括起来。

3.合成列。

#把一个的表两列和一块
# mysql内加号的用处
#若+两边都是数,则结果为数
#若+两边一侧为字符型数据,一边为数,则强制把字符型数据转换为数字,无法转换的话就转换为0.
#若其中一个或者两个都为null,则结果也为null。

#合并错误写法,输出结果会为0.
SELECT first_name+last_name AS "姓名" FROM `employees`;
#正确写法,如果其中有null,则结构还是为null
SELECT CONCAT(`first_name`,`last_name`) AS "姓名" FROM employees;

#如果不想直接显示null,则可以用ifnull(str1,str2)函数,如果值为null,str2,否则显示str1。(str1为表内的一个表头,str2可以为一个字符串,例如:"此处为空")
SELECT IFNULL(last_name,"空") FROM employees;


#只显示表内不同的元素,相同的元素不显示,类似于集合。
SELECT DISTINCT `department_id` AS 部门编号 FROM employees;

#查看表的结构,两种语句效果一样。
DESC employees;
SHOW COLUMNS FROM employees;

4.条件查询

#基础语句
select emplayer_id from emoloyees where ....;
#先执行from后面的,再执行where后面的,然后设select后面的。

where后面跟的就是条件查询的语句,返回值只能为boolean型。

1.关系运算符: < , > , <= , >= , =(等于) , <>(不等于) , <=>(安全等于) 下面会简单介绍。.不过多说。
	对于不等号,可以用!=
	
2.逻辑运算符:andornot.用法和编程语言上的一样。
	也兼容&&|| ,! 
	
3.模糊查询:like , in , between and , is null.

	(1) like,( 下划线_代表一个字符,百分号%代表未知个字符,范围为0~n)
		SELECT `first_name` FROM `employees` WHERE `first_name` LIKE "_a%";
		SELECT `last_name` FROM `employees` WHERE `last_name` LIKE "%$_%" ESCAPE "$";
		#escape是用来定义一个转义字符,此字符后面的_不代表关键字,仅是一个字符。不一定非要用$,理论上可以用任意其他符号。
		
	(2) in,(查询是否在自己定义的一个列表内,类似于python中的in)
		SELECT `salary` FROM `employees` WHERE `salary` IN (10000,24000);
		SELECT `salary` FROM `employees` WHERE `salary` NOT IN (10000,24000);
		
	(3) between and(查询是否在某个区间内,注意区间要合逻辑,小点的数在前,大的数在后)
		SELECT `salary` FROM `employees` WHERE `salary` BETWEEN 9000 AND 20000;
		SELECT `salary` FROM `employees` WHERE `salary` NOT BETWEEN 9000 AND 20000;
		
	(4) is null(检测值是否为null)
		SELECT `commission_pct` FROM `employees` WHERE `commission_pct` IS NOT NULL;
		SELECT `commission_pct` FROM `employees` WHERE `commission_pct` IS NULL;
		# 这里is不能用=代替。=只能用来检测常规数值(1,2,3,1.2,2.4...),不能用来检测是否等于null,is只能检测null,不能检测常规数值。安全等于<=>则常规数值,null都能检测。

5.排序查询:

#基础语句
select ...
from ...
where ...	(可以没有)
order by ...;

order by 语句后面跟的可以是单个列名,多个列名,函数表达式,计算式,列号。
asc是正序,desc是倒序,默认的是正序。

1.单个列名:
select salary
from employees
where salary>10000
order by salary;

#可以用别名:
select salary 薪水
from employees
where salary>10000
order by 薪水 desc;

2.多个列名(规则:先按第一个写出来的排序,第一个相同的话,则按第二个排序,以此类推)
select salary,employ_id
from employees
where employ_id between 100 and 200
order by salary,employee;

3.按函数返回值查询
select first_name
from employees
where first_name like("%a%")
order to length(first_name);

4.按表达式结果查询
select salary
from employees
where employee_id in (123,124,125)
order by salary*12;

5.按列号查询
select first_name
from employees
where salary_bite is null
order by 3;    	#按照第三行排序
SELECT DATABASE();			#查询此时在哪个数据库内

SELECT VERSION();			#查询数据库软件版本

select user();				#查询此时用户名

SHOW DATABASES;				#显示当前帐户下的所有数据库

SHOW TABLES;				#显示当前库中的所有表

SHOW TABLES from 库名;		#查询这个库中的所有表

SHOW COLUMNS FROM 表名;		#查询表内的所有列

未完待续。。。

posted @ 2020-03-04 22:12  lcyok  阅读(202)  评论(0)    收藏  举报