数据库的登录
/*快捷查询表格,但是实际上如果当时USE的是哪个表,依然使用的还是那个表,该命令仅做查看使用*/
SHOW TABLES FROM 表名 ;
/*使用数据库*/
USE 数据库名;
/*查看当前使用的是哪个数据库*/
SELECT DATABASE();
/*登录数据库-h是主机地址 -P(大写)是端口号 -u是用户名 -p是密码*/
mysql -h localhost -P 3306 -u root -p root; --这种写法会显示密码
mysql -h localhost -P 3306 -u root -p; --这种写法不显示密码
Enter password:****
/*查看MySQL的版本,请注意这里不用加分号,因为这不是SQL命令而是dos命令*/
mysql --version
mysql -V --这是简写的方式
/*查看表结构*/
DESC 表名;
1、查看有哪些数据库
SHOW DATABASAES;
2、打开指定的库
USE 库名;
3、查看当前库的所有表
SHOW TABLES;
4、查看其他库的所有表
SHOW TABLES FROM 库名;
5、创建表
CREATE TABLE 表名(
列名 列类型,
列名 列类型,
列名 列类型
);
6、查看表结构
DESC 表名;
7、查看服务器版本
/*方式一:登录到MySQL服务端*/
SELECT VERSION();
/*方式二:没有登陆到MySQL服务端*/
MYSQL --VERSION
或
MYSQL --V
###MySQL语法规范
1、不区分大小写,但建议关键字大写,表名、列名小写。
2、每条命令最好用分号结尾。
3、每条命令根据需要,可以进行缩进或换行。
4、注释
单行注释:#注释文字
单行注释:-- 注释文字
多行注释:/*注释文字*/
8、MySQL中+号的作用
Java中的+号:
①运算符,两个操作数都为数值型
②连接符,只要有一个操作数为字符串
MySQL中的+号:
仅仅只有一个功能:运算符
SELECT 100 + 90;两个操作数都为数值型,则作加法运算
SELECT '123' + 90;其中一方为字符型,试图将字符型数值转换成数值型
213 如果转换成功,则继续做加法运算
SELECT 'john' + 90 如果转换失败,则将字符型数值转换成0
SELECT NULL+ 10; 只要其中一方为null,则结果肯定为null
9、CONCAT()函数,IFNULL()函数
显示出表employees的全部列,各个列之间用逗号连接,列头显示成OUT_PUT
SELECT
CONCAT(`first_name`, ',', `last_name`, ',', `job_id`, ',', commission_pct) AS OUT_PUT
FROM
employees;
由于commission_pct中有空值,所以以上代码会出问题,所以需要IFNULL来进行判断。
SELECT
CONCAT(`first_name`, ',', `last_name`, ',', `job_id`, ',', IFNULL(commission_pct, 0)) AS OUT_PUT
FROM
employees;
10、条件筛选


一、按条件表达式筛选
简单条件运算符:> < = != <> >= <=
#案例1:查询工资>12000的员工信息
-- 案例1:查询工资>12000的员工信息
SELECT
*
FROM
employees
WHERE
salary > 12000;
#案例2:查询部门编号不等于90号的员工名和部门编号
-- 案例2:查询部门编号不等于90号的员工名和部门编号
SELECT
last_name,
department_id
FROM
employees
WHERE
department_id != 90; -- 不建议使用 !=
-----------------------------------------------------------
SELECT
last_name,
department_id
FROM
employees
WHERE
department_id <> 90; -- 建议使用 <>
二、按逻辑表达式筛选
逻辑运算符:
作用:用于连接条件表达式
&& || !
and or not
&&和and:两个条件都为true,结果为true,反之为false
||或or:只要有一个条件为true,结果为true,反之为false
!或not:如果连接的条件本身为false,结果为true,反之为false
#案例1:查询工资在10000到20000之间的员工名、工资以及奖金
-- 案例1:查询工资在10000到20000之间的员工名、工资以及奖金
SELECT
last_name,
salary,
commission_pct
FROM
employees
WHERE
salary >= 10000 AND salary <= 12000;
#案例2:查询部门编号不是在90到110之间,或者工资高于15000的员工信息
-- 案例2:查询部门编号不是在90到110之间,或者工资高于15000的员工信息
/*第一种写法*/
SELECT
*
FROM
employees
WHERE
department_id < 90 OR department_id > 110 OR salary > 15000;
/*第二种写法*/
SELECT
*
FROM
employees
WHERE
NOT(department_id >= 90 AND department_id <= 110) OR salary > 15000;
三、模糊查询
1、LIKE
特点:
①一般和通配符搭配使用
通配符:
% 任意多的字符,包含0个字符
_ 任意单个字符
转义字符:
\ 常见的转义字符
ESCAPE '任意符号' 用于自定义转义字符
#案例1:查询员工名中包含字符a的员工信息
-- 案例1:查询员工名中包含字符a的员工信息
SELECT
*
FROM
employees
WHERE
last_name LIKE '%a%'; -- 注意字符型的值必须用单引号包起来
#案例2: 查询员工名中第三个字符为n, 第五个字符为l的员工名和工资
-- 案例2: 查询员工名中第三个字符为n, 第五个字符为l的员工名和工资
SELECT
last_name,
salary
FROM
employees
WHERE
last_name LIKE '__n_l%';
#案例3:查询员工名中第二个字符为_(下划线)的员工名
-- 案例3:查询员工名中第二个字符为_(下划线)的员工名
SELECT
last_name
FROM
employees
WHERE
last_name LIKE '_\_%';
/*可以自定义一个转义字符,ESCAPE*/
SELECT
last_name
FROM
employees
WHERE
last_name LIKE '_$_%' ESCAPE '$'; -- ESCAPE可以指定任意字符为转义字符
2、BETWEEN AND
①使用between and可以提高语句简洁度
②包含临界值
③两个临界值不要调换顺序
④两个值的必须是同一类型
-- 案例1:查询员工编号在100到120 之间的员工信息
-- 案例1:查询员工编号在100到120 之间的员工信息
/*第一种写法*/
SELECT
*
FROM
employees
WHERE
employee_id >= 100 AND employee_id <= 120;
/*第二种写法*/
SELECT
*
FROM
employees
WHERE
employee_id BETWEEN 100 AND 120;
3、IN
含义:判断某字段的值是否属于in列表中的某一项
特点:
①使用in提高语句简洁度
②in列表的值类型必须一致或兼容
③不支持通配符
-- 案例:查询员工的工种编号是IT_PROG、AD_VP、AD_PRES中的一个员工名和工种编号
-- 案例:查询员工的工种编号是IT_PROG、AD_VP、AD_PRES中的一个员工名和工种编号
/*第一种写法*/
SELECT
last_name,
job_id
FROM
employees
WHERE
job_id = 'IT_PROG' OR job_id = 'AD_VP' OR job_id = 'AD_PRES';
/*第二种写法*/
SELECT
last_name,
job_id
FROM
employees
WHERE
job_id IN ('IT_PROG', 'AD_VP', 'AD_PRES');
4、IS NULL 和 IS NOT NULL
① =或<>不能用于判断null值
②is null或is not null可以判断null值
-- 案例1:查询没有奖金的员工名和奖金率
-- 案例1:查询没有奖金的员工名和奖金率
SELECT
last_name,
commission_pct
FROM
employees
WHERE
commission_pct IS NULL;
-- 案例2:查询有奖金的员工名和奖金率
-- 案例2:查询有奖金的员工名和奖金率
SELECT
last_name,
commission_pct
FROM
employees
WHERE
commission_pct IS NOT NULL;
扩展:安全等于 <=>
①安全等于相当于“等于”,但是安全等于可以判断null值
②可读性比较差
-- 案例:查询工资为12000的员工信息
-- 案例1:查询工资为12000的员工信息
SELECT
last_name,
salary
FROM
employees
WHERE
salary <=> 12000;
-- 案例2:查询没有奖金的员工名和奖金率
SELECT
last_name,
commission_pct
FROM
employees
WHERE
commission_pct <=> NULL; -- 可以判断null值
扩展:可使用show engines语句查看系统所支持的引擎类型。
这篇博客详细记录了MySQL的数据库登录步骤以及一系列操作,包括查看数据库、打开库、查看表、创建表、查看服务器版本等。同时,文章介绍了MySQL的语法规范,如大小写规则、注释方式和+号的特殊用法。还讲解了CONCAT()和IFNULL()函数的应用,条件筛选的多种方式,如简单条件、逻辑表达式、模糊查询,以及IS NULL和IS NOT NULL的使用。最后提到了安全等于<=>的操作,并指出可以使用show engines查看支持的引擎类型。

被折叠的 条评论
为什么被折叠?



