MySQL1【个人学习笔记】

这篇博客详细介绍了MySQL的安装、数据库管理系统概念、SQL语言基础、数据操作、数据库创建与管理、查询技巧、函数应用、分组查询、连接查询以及子查询等内容,适合初学者入门。
摘要由CSDN通过智能技术生成

目录

一、简介/入门

1.1 安装

安装向导:https://www.runoob.com/mysql/mysql-install.html 此电脑MySQL账户名cjr
安装带有管理器的版本https://dev.mysql.com/downloads/installer/
在这里插入图片描述

https://www.runoob.com/w3cnote/windows10-mysql-installer.html

1.2 简介:

数据库的好处:
1.可以持久化存储数据到本地
2.结构化查询

DB:Database,存储数据的仓库,保存了一系列有组织的数据

DBMS:Database Management System 数据库管理系统,数据库是通过DBMS创建和操作的

常见DBMSL: MySQL,Oracle,DB2(适合海量数据),SqlServer(只能安装在windows下)

SQL:Structured Query Language,结构化查询语言,专门用来与数据库通信的语言

优点:
在这里插入图片描述

1.3 MySQL数据

存储在我的坚果云中的Mysql文件夹中

1.4着重号的使用

feature_name
`` 数字1左边的那个键就是着重号,如果一个属性名称跟系统自带的字段相同,可加着重号做区分

1.5 SQL查询常量、表达式、函数

select 100;
select 'john';
select version();

1.6 给查询的结果起别名

起别名的好处

  1. 便于理解
  2. 如果查询的字段有重名,可以用别名区别开来

起别名的方式

  1. 用 as
  2. 用空格
select 100 as 结果;
select version() as 版本;
select 'john' 名字; #直接空格隔开

在这里插入图片描述

select salary as 薪水 from employees;

在这里插入图片描述

1.7 +加号的作用

在MySql中 + 号只有一个作用:运算符

  1. 两个变量都是数值型,做加法运算
select 60+80;

return 140

  1. 两个变量其中一个是数值型,另一个是字符串格式的数值,就会试图将字符型的数字转换成数值型
select '100'+20;

return 120

  1. 如果字符型变量无法转换成数值型,那么就把他变成0
select 'john' + 20;

return 20

  1. 只要其中一个变量为null,结果都会为null
select null + 20;

return null

1.8 concat() 拼接字符串

select concat('a','b','c');

return abc

例子:

select first_name,last_name,concat(first_name,' ',last_name) as full_name from employees;

在这里插入图片描述

1.9 处理null,IFNULL

如果某一列中有很多null,如果跟其他列用concat合并,返回的只会是null。要用ifnull来处理``

ifnull(feature_name,value) 如果feature_name是null,返回设置的value值

例子:

select concat(first_name,',',last_name,',', ifnull(commission_pct,0)) as out_put from employees;

在这里插入图片描述

1.10 mysql服务的启动

方式一:通过命令行:cmd net start 服务名 net stop 服务名
方式二:计算机–右键–管理–服务

二、登入数据库、选中表、查看表信息

2.1 登入退出

本机登录

# mysql -uusername -ppassword
mysql -uroot -pcjrxxxxxxx

联机

mysql -h主机名 -P端口号 -u用户民 -p密码
#退出
exit;

2.2 查询数据库服务器中有哪些数据库

show databases;  #先看有哪些数据库

在这里插入图片描述

2.3 选中某个数据库 (use database_name;)

#选择要操作的Mysql数据库,使用该命令后所有Mysql命令都只针对该数据库
use cjrtest;

在这里插入图片描述

2.4 显示指定数据库下的所有表

#显示指定数据库的所有表
show tables from database_name;  

在这里插入图片描述

#显示当前数据库下的所有表
show tables;

2.5 显示表的属性(features,attributes)信息

#显示数据表的属性,属性类型,主键信息 是否为 NULL,默认值等其他信息。
show columns from cjrtest;

在这里插入图片描述

2.6 显示数据表的详细索引信息

show index from table_name;

在这里插入图片描述

2.7 查看表格结构

跟show columns from table_name; 几乎一样

describe table_name;

在这里插入图片描述

2.8 查看表格里的所有样本

select * from table_name;

2.9 查看数据库中所有表的状态

show table status from database_name;

show table status from database_name like 'country%'; #查询表格名称以country开头的表的信息

show table status from database_name like 'country%'\G;  # 加上 \G,查询结果按列打印

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.10 查看当前所在哪个database

select database();

2.11 查看当前MySQL是什么版本

select version();

在这里插入图片描述
第二种方法:
还没登陆mysql时,在cmd输入mysql --version
在这里插入图片描述

三、创建数据库和表

3.1 创建数据库

create database database_name;

3.2 创建数据表

CREATE TABLE table_name(
    feature_name1 type,
    feature_name2 type,
    feature_name3 type,
    .............);

例1:

CREATE TABLE pet(
    name VARCHAR(20),
    owner VARCHAR(20),
    species VARCHAR(20),
    sex CHAR(1),
    birth DATE,
    death DATE);

例2:有设置默认值

create table cjrtest(
id int primary key auto_increment,
name varchar(10) not null default '',
gender char(1) not null default '',
company varchar(20) not null default '',
salary decimal(8,2) not null default 0.00, 
meal smallint not null default 0)

3.3 添加数据记录/样本

insert into table_name
(feature1,feature2,feature3,feature4..)
values
(value1,value2,value3,value4…)

例子:

insert into cjrtest
(id,name,gender,company,salary,meal) #可省略,也可选择特定的属性
values
(1,'cjr','男','Alibaba',16000.00,2000)(2,'lsq','女','Baidu',15000,213),
(3,'zjm','女','Pupu',14000,321),
(4,'Ld','男','Aoda',9210,321),
(5,'Sa','男','Jingdong',8321,231),
(6,'Jin','女','Meituan',3012,398);

3.4 创建表约束

六、普通查询数据

6.1 查询单个列/属性

select column_name from table_name;

6.2 查询指定的多个列/属性 ,或所有列

select column_name1,column_name2... from table_name;
# 查询所有列
select * from table_name;

6.3 查询指定某列样本返回的是集合(set)/去重

只能加一个属性

select distinct column_name from table_name;

例子:查询employees表格中部门编号,去重的

select distinct department_id from employees;

在这里插入图片描述

6.4 查询满足指定条件下的样本记录 where

select */column_name,... from table_name where feature operator value;

此处operator是运算符:

  1. 条件运算符:=、>=、<=、<、>;不等于的符号!=或<>;

  2. 逻辑运算符:and、or、not 对应的符号: &&、 ||、 !

  3. 模糊查询:

  • between:在某个范围内 (between x and y);
  • like:搜索某种模式
  • in: 指定值在某个集合里 (in (200,300,400)) in类似于=,但可指定多个值

6.4.1 条件运算符举例

  1. 查询工资大于12000的员工信息 ,属性:salary, 表格employees
select * from employees where salary > 12000;

在这里插入图片描述

  1. 查询 部门编号不等于90的员工名和部门编号
select concat(first_name,' ',last_name) as full_name, department_id from employees where department_id !=90;

在这里插入图片描述

6.4.2 逻辑运算符案例

and or not 逻辑运算符的作用就是用来连接条件运算符

  1. 查询工资在10000到20000之间的员工名、工资、奖金
select 
	concat(first_name,' ',last_name) as full_name,
	salary,
	commission_pct
from 
	employees
where 
	salary>10000 and salary<20000;

在这里插入图片描述
2. 查询部门编号不在90-110之间,或工资高于15000的员工信息

select 
	* 
from 
	employees 
where 
	not (department_id >=90 and department_id <=100) or salary >15000;

6.4.3 Between and

查询部门编号在90-120之间的样本 [90,120]包含90,120临界值; 90<=x<=120

select 
	* 
from 
	 employees 
where 
	 department_id between 90 and 120;

6.4.4 使用in查询某个属性的多个值

查询工作名(job_id)称为’IT_PROG’或’FI_MGR’ 的样本

select * from employees where job_id in ('IT_PROG','FI_MGR');

#等于
select * from employees where job_id='IT_PROG' or job_id='FI_MGR';

在这里插入图片描述

6.5 查询样本时按照指定的顺序进行排序 order by

order by 字句一般放在查询语句的最后,limit字句除外

select */column_name from table_name order by column_name ASC/DESC# ORDER BY 多列的时候,先按照第一个column name排序,在按照第二个column name排序;
select */column_name from table_name order by column_name ASC/DESC,column_name ASC
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值