MYSQL实训1知识点

一、MYSQL的启动和停止

1.计算机--右击管理--服务

2.cmd通过管理员身份运行

net start 服务名 (启动)

net stop 服务名 (停止)

net stop MySQL80
net start MySQL80

二、MYSQL的登陆和退出

登陆

1.通过mysql自带的客户端(MySQL 8.0 Command Line Client)

只限于root用户

2.通过Windows自带的客户端(cmd管理员身份运行)

mysql【-h 主机名 -P 端口号】-u 用户名 -p 密码

mysql -h localhost -P 3306 -u root -p

退出

exit

crtl+c

三、MYSQL的常见命令

1.查看当前的数据库

show databases;

2.打开指定的库

use 库名;

3.查看当前库的所有表

show tables;

4.查看现在在哪一个库

select database();

5.查看表的结构

desc 表名

6.查看服务器的版本

登陆到mysql服务器:

select version();

没有登陆到mysql服务器

mysql --version 或 mysql --V

四、MySQL的语法规范

1.不区分大小写,但是建议关键字大写,表名、列名小写

2.每条命令最好用分号结尾

3.每条命令根据需要,我们可以进换行缩写

4. 注释

 单行注释: #注释文字

                      --注释文字

 多行注释:/*注释文字*/

五、SQL语言的分类

1.DQL:数据查询语言

          select

2.DML:数据操作语言

          insert,update,delete

3.DDL:数据定义语言

           create,drop,alter

4.TCL:事务控制语言

commit,rollback

# DQL 语言

/*

select 要查询的东西

from 表名

类似于java中的System.out.println("");

*/

SELECT 100 % 98 AS 结果;

# 查询员工表中所有部门编号

SELECT DISTINCT `department_id` FROM employees;

# 员工名和姓连接成一个字段,并显示为姓名

错误写法

SELECT `last_name`+`first_name` AS 姓名 FROM employees;

错误原因:‘+’在数据库中是运算符,不能用它连接

正确写法:

SELECT CONCAT(`first_name`,`last_name`)
AS 姓名
FROM `employees`;

/* 

‘+’

在java中:

1、运算符:两个都是数值型

2、拼接

在mysql中:

只有运算符的功能

concat 连接函数

*/

SELECT 100+90;

字符转成ASCII码值与数字相加

SELECT 100+'23';

SELECT 100+'dasdsa';

#显示出表 employees 的全部列,各个列之间用逗号连接,列头显示成 OUT_PUT

SELECT CONCAT(`first_name`,',',`last_name`,',',IFNULL(`commission_pct`,0))
AS out_put
FROM employees;

IFNULL(x,y) 如果x为空,把它当做y处理   如果不用IFNULL,上面代码commission_pct结果将均为空

SELECT * FROM employees;

# 条件查询:根据条件过滤原始表的数据,查询到想要的数据

/*

语法:

select 要查询的字段|表达式|常量值|函数

from 表

where 条件;

*/

/*

一、条件表达式

条件运算符:

>,< >=,<=,!=,<>

二、逻辑表达式

逻辑运算符

and(Java &&)

or(

||)

not(!)

*/

# 查询部门编号不等于90号的员工名和部门编号

SELECT last_name,department_id
FROM employees
WHERE department_id<>90;

# 查询部门编号不是在90-100之间,或者工资高于15000的员工信息

SELECT * FROM employees
WHERE
department_id<90 OR department_id>100
OR salary>15000;

SELECT * FROM employees 
WHERE NOT(department_id>=90 AND department_id <=100) OR salary>15000;

# 模糊查询

/*

1、like

特点:一般和通配符搭配使用

通配符: % 代表任意多个字符,包含0个字符

_代表一个字符

2、between and

注意点:可以提高语句简洁度

包含临界值

临界值不能颠倒的

3、in

 注意:in列表里的参数类型必须一致或兼容

4、is null,is not null

补充:安全等于 <=>  ,可读性差

*/

#案例一:查询员工名中包含字符a的员工信息

SELECT * FROM employees WHERE last_name LIKE '%a%';

#案例二:查询员工名中第三个字符为n的员工名,第五个字符为l的员工名

SELECT last_name FROM employees WHERE last_name LIKE '__n_l%';

#案例三: 查询员工名中第二个字符为_的员工名

SELECT last_name FROM employees WHERE last_name LIKE '_\_%';

#或者自己指定转义符   ESCAPE

SELECT last_name FROM employees WHERE last_name LIKE '_$_%' ESCAPE '$';

# 查询员工的工种编号是IT_PROG、AD_VP的员工名和工种编号

SELECT `last_name`,`job_id` FROM `employees`
WHERE `job_id` IN('IT_PROG','AD_VP');

# 查询没有奖金的员工名和奖金率

SELECT `last_name`,`commission_pct` FROM `employees` WHERE `commission_pct`<=>NULL;

/*

排序查询

语法:

select 要查的东西

from 表

 where 条件

 order by asc|desc

*/

升序ASC,降序DESC,没有指定排序默认升序

# 查询员工信息要求工资从高到低

SELECT * FROM `employees` ORDER BY salary DESC;

# 按年薪的高低显示员工的姓名和工资

SELECT last_name,salary*12*(1+IFNULL(`commission_pct`,0)) 年薪 
FROM `employees` 
ORDER BY 年薪 DESC;

# 按照员工的入职时间来显示员工名

SELECT last_name,`hiredate` FROM `employees`
ORDER BY `hiredate` DESC;

# 查询员工信息,要求按工资升序,再按员工编号降序

SELECT * FROM `employees` ORDER BY salary ASC,employee_id DESC;

/*

常见函数:

概念: 类似于java中的方法,将一组逻辑语句封装在方法体中,对外暴露方法名

好处:1、隐藏了实现细节

2、提高了代码的重用性

一、单行函数:

1、字符函数

concat 拼接

substr 截取字串

upper:转换成大写

lower:转成小写

instr:返回字串第一次出现的索引位置

trim:去掉前后指定的空格和字符

ltrim:去掉左边

rtrim:去掉右边

lpad:左填充

rpad:右填充

replace:替换

length:长度

*/

#截取从指定索引到后面的字符

SELECT SUBSTR('周杰伦爱上了昆凌',7) out_put;

#截取从指定索引出指定长度字符

SELECT SUBSTR('周杰伦爱上了昆凌',1,3) out_put;


SELECT INSTR('昆凌周杰伦爱上了昆凌','昆凌') out_put;

SELECT TRIM('   周杰伦   ') out_put;

SELECT TRIM('a' FROM 'aaa周杰伦aaaa');
SELECT REPLACE('张无忌爱上了周芷若','周芷若','赵敏');
SELECT LENGTH('John');
SELECT LENGTH('周杰伦');

4

9

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值