MySQL

本文详细介绍了MySQL数据库的基础知识,包括为何学习数据库、数据库的相关概念,以及MySQL的使用和Sql语句。讲解了MySQL的特性和优势,如不区分大小写、特有的LIMIT语句。还深入探讨了SQL语句的分类,如DQL、DDL,并通过实例演示了如何进行数据查询、条件筛选、排序和分组等操作。此外,文章还涵盖了数据库管理、数据类型、表的创建和管理、子查询以及分页查询等高级主题。
摘要由CSDN通过智能技术生成

为什么学习数据库

1、持久化数据,永久性存储

2、方便查找检索

3、存储大量数据

4、共享,安全

5、通过组合分析,获取新的数据

数据库的相关概念

1、DB:数据库,保存一组有组织的数据的容器 2、DBMS:数据库管理系统,又称为数据库软件(产品),用于管理DB中的数据 3、SQL:结构化查询语言,用于和DBMS通信的语言

MySQL

MySQL不区分大小写,也可以换行写

MySQL中的小括号叫函数

MySQL中非常量的,要用引号引起来

MySQL中没有字符串类型,叫字符型,多个字符,空字符,都叫字符型

MySQL中的LIMIT语句就是MySQL独有的方言,其他数据库都不支持!

不知道优先级,加小括号提升就行

Oracle 或 SQL Server都有自己的方言

前面加个#,它认为这是个无效的命令,没有影响,类似与注释,不会报错

单行注释:一种是#,一种是 — —(杠杠,两个—)+空格

多行注释:先/* 再*/ 中间不能嵌套

MySQL的使用

启动和停止服务

- 用命令行运行MySQL (要以管理员身份打开命令提示符)

net start mysql08 开启mysql

net stop mysql08 停止mysql

-用命令行的方式进自带客户端

在命令提示符中输入:

mysql -u (user,用户名)-p(密码) 如果是免安装的话,没有密码,直接 -p1978827

mysql -h(host,指定主机,如果是localhost 本机,可以省略) -P3306(端口号如果是3306,可以省略) -u -p

exit 退出客户端

MySQL的基本命令

执行方式是,选中即执行

mysql命令要求使用 分号 或 \g 结尾

使用show databases;查看有那些数据库

text(测试),是空的数据库、

进去的方法,例,进mysql:

use mysql; 这一步相当于把门打开

show tables; 显示表(看一下里面的表)

或:

show tables from test 直接看里面的东西,只要不写use,就不在此数据库内。(相当于没开门就进不去)

select database(); 相当于调用了一个函数,查看当前所在的库

存数据必须先有表,

建表:分析,存那些数据,跟它固定格式

例: 存学员信息

create table stuinfo(

stuid int, 学号,int类型,用逗号隔开,这部分是字段

stuname varchar(20), 字符个数最长不能超过20,在这里是名字的字符个数 多个字段

gender char, char就代表单个字符

borndate datetime); 年龄用生日代替,年龄会变,生日不会

desc stuinfo; 查看stuinfo的描述

select * from stuinfo; 查看数据

insert into stuinfo values(1,'汉字','年龄'); 除了数字外,其余都用单引号,引起来。

set name gbk 修改字符集为jdk

update stuinfo set borndate=' ' where(相当于if) stuid = 2;

修改 这个表 设置 这个字段的值=' '

delete from stuinfo where stuid = 1; 删除1号

alter table stuinfo add colum email varchar(20) 修改表结构,这个是,添加一个新字段。

drop table stuinfo; 删除表格

control+c 强制结束

Sql语句

分类

  • DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列,等;

  • DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据); (加重的非常重要)

  • DCL(Data Control Language):数据控制语言,用来定义访问的权限的安全级别;

    TCL(Transaction Control Language)

  • DQL(Data Query Language):数据查询语言,用来查询记录(数据)。

DQL

DQL就是数据查询语言,数据库执行DQL语句不会对数据进行改变,而是让数据库发送结果集给客户端。

语法:

select

select list/要查询列的名称/

create/drop/alter 由这几个关键字引领的,都成为DDL语言

insert/update/delete 由这几个关键字引领的,都成为DML语言

DML 就是增删改

DQL 查 主要的关键字就是select

基础查询

语法:select 查询列表 from 表名;

特点:

1、查询的结果集 是一个虚拟表

2、select 查询列表 类似于System.out.println(输入内容);

区别是:select后面跟的查询列表,可以有多个部分组成,中间用逗号隔开

例如:select 字段一,字段二,表达式 from 表;

system.out.println()的输入内容,只能有一个。

3、执行顺序

例:select first_name from employee;

先判断有没有这个表from employee,如果没有则报告表的错误

顺序:先from子句,再select子句

4、查询列表可以是:字段、表达式、常量、函数等

一、查询常量

SELECT  100 ;#不用加form,原因在于100没有来自于某个表

二、查询表达式

SELECT 100%3;

三、查询单个字段

SELECT  last_name FROM `employees`;# `这是着重号,在esc下面`
#如果表名和关键字重复了,则需要加着重号

四、查询多个字段

SELECT 
  `last_name`,
  `email`,
  `job_id` 
FROM
  `employees` ;

五、查询所有字段

SELECT * FROM `employees`;
​
F12:对其格式

六、函数

(调用函数,获取返回值)
​
SELECT VERSION();   #查询服务器版本
​
函数 ifnull(表达式1,表达式2):
​
表达式1:可能为null的字段或表达式
​
表达式2:如果表达式1为null,则最终结果显示的值
​
功能: 如果表达式1为null,则显示表达式2,否则显示表达式1

七、起别名

方式一:使用as关键字
​
SELECT USER() AS 用户名;
SELECT USER() AS '用户名';
SELECT USER() AS "用户名";
​
SELECT last_name AS "姓 名" FROM employees;
方式二:使用空格 
SELECT USER()   用户名;
SELECT USER()  '用户名';
SELECT USER()  "用户名";
​
SELECT last_name  "姓 名" FROM employees;

八、+的作用,拼接

-- 需求:查询 frist_name 和 last_name 拼凑成的全名, -- 最终起别名为: 姓 名

方案一:使用+ pass×

SELECT frist_name+last_name AS "姓 名"
FROM employees;

方案二:使用concat拼接函数,拼接的时候,其中一个为null最总的结果为null

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

java中+的作用: 1、加法运算 100+1.5 'a'+2 2、拼凑符 至少有一个操作数为字符串 "hello"+"a"

MySQL中的+作用: 只有一个:加法运算

①两个操作数都是数值型 100+1.5 ②其中一个操作数为字符型 将字符型数据强制转换成数值型,如果无法转换,则当做 0 处理

'张无忌'+100===>100

③其中一个操作数是null

null+null===> null

null+100===> null

九、distinct的使用

-- 需求:查询员工涉及到的部门编号有哪些

SELECT DISTINCT department_id
FROM employees;
distinct的作用:去重复,

十、 DESC查看表的结构

DESC employees; -- 查字段,每个字段的类型,约束……
SHOW COLUMNS FROM employees;	-- columns 列

条件查询

语法:

select 查询列表 from 表名 where 筛选条件;

执行顺序: ①from子句 ②where子句 ③select子句

select last_name,first_name from employees where salary>20000;

特点:

1、按关系(条件)表达式筛选

关系运算符: > < >= <= = <> 补充:!= 和 <> 是不等于,可以用,但不建议用 !=

2、按逻辑表达式筛选 逻辑运算符:and or not 补充:也可以用&& || !,但不建议

一、按关系表达式筛选

-- 案例1:查询部门编号不是100的员工信息

SELECT *	
FROM employees
WHERE `department_id`<>100;

#案例2:查询工资<15000的姓名、工资

SELECT	`last_name`,`first_name`,`salary`
FROM  	`employees`
WHERE	salary<15000;

二、按逻辑表达式筛选

-- 案例1:查询部门编号不是50-100之间员工姓名、部门编号、邮箱 -- 方式一:

SELECT `last_name`,`department_id`,`email`
FROM 	`employees`
WHERE 	`department_id`>100 OR `department_id`<50;

-- 方式二:

SELECT `last_name`,`department_id`,`email`
FROM 	`employees`
WHERE 	NOT(`department_id`>=100 AND `department_id`<=50);

#案例2:查询奖金率>0.03 或者 员工编号在60-110之间的员工信息

SELECT  *
FROM 	`employees`
WHERE 	`commission_pct`>0.03 OR (`employee_id`>=110 AND `employee_id`<=60);

关键字

1、like

功能:一般和通配符搭配使用,对字符型数据进行部分匹

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值