MySQL_Day01 - MySQL基础 (简介 & 数据库操作)

1.数据库简介

2. SQL简介

3. 数据库的操作

3.0 启动和停止服务

=>打开cmd

=>windows 开启 MySQL : net start mysql57

=>登录账户: mysql -u root -p

=>输入密码: ****

=>windows 关闭 MySQL : net stop mysql57

3.1 DDL【数据定义语言】

3.1.1 创建与查看【create,show,use,select】

a. 创建数据库
mysql> create database 数据库名 charset = utf8;
b. 创建表
mysql> create table 表名(
		字段1 字段类型[列级别约束条件][默认值],
		字段2 字段类型[列级别约束条件][默认值],
		….
		字段n 字段类型[列级别约束条件][默认值]
		[表级别约束条件]
);
c. 查询当前数据库服务器中的所有数据库:
show databases;   #记住是databases而不是database
'''
+--------------------+	
| Database           |
+--------------------+
| information_schema |
| mydb1              |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.01 sec)
'''
d. 查看当前正在使用的数据库
select database();  

'''
+------------+
| database() |
+------------+
| mydb1      |
+------------+
1 row in set (0.00 sec)
'''
e. 切换数据库
use 数据库名;  
'''
Database changed
'''
f. 退出数据库
方式一:mysql> exit 
'''
Bye
'''

方式一:mysql> quit
'''
Bye
'''

3.1.2 操作【alter】

a. 修改表名 【rename to】
alter table old_table_name RENAME TO new_table_name 
'''旧表名 ,新表名'''
b. 修改字段的数据类型【modify】
ALTER TABLE table_name MODIFY 字段名 数据类型

'''修改完成之后可以查看DESC table_name检验结果'''

c. 修改字段名【change】
ALTER TABLE table_name CHANGE 旧字段名 新字段名 数据类型
d. 添加和删除字段【add】【drop】
'''添加字段'''
ALTER TABLE table_name ADD 新字段名 数据类型 [约束条件] [FIRST|AFTER 已经存在的字段名]

'''删除字段'''
ALTER TABLE table_name DROP 字段名
e. 修改字段的排列位置【 MODIFY】
ALTER TABLE table_name MODIFY 字段1 数据类型 FIRST|AFTER 字段2
	first: 设置成第一个
	after 字段2: 在指定字段2的后面
f. 删除表的外键约束【DROP FOREIGN KEY】
ALTER TABLE table_name DROP FOREIGN KEY 外键约束名
g. 删除数据表

'''删除没有被关联的表'''
语法规则:DROP TABLE [IF EXISTS]1,表2...

'''删除被其他表关联的的表'''
直接删除会出现错误的,操作: 先解除关联 再进行删除

3.1.3 删除【drop】

a. 删除数据库
mysql> drop database 数据库名;
b. 删除表
mysql> drop table 表名;

3.1.4 数据类型***

3.2 DML【数据操作语言】

3.2.1 插入 【insert】

a. 单行插入
INSERT INTO table_name (field1, field2,...fieldN) VALUES(value1, value2,...valueN);
b. 多行插入
INSERT INTO table_name (field1, field2,...fieldN)
                    VALUES
                    (value1, value2,...valueN),
                    (value12, value22,...valueNN)...;
                    '''其实就比单行插入多一个逗号隔开'''

3.2.2 更新 【update…set】

a. 用法
UPDATE table_name SET field1=new-value1, field2=new-value2  [WHERE Clause]
'''
注意:
	a.完全可以更新一个字段或者多个字段
	b.where相当于Python中的if语句
	c.可以指定任何条件到where子句中
	d.如果没有where子句,则默认所有的行都被同时更新为指定的操作[慎用!一般要结合where使用]
'''
b. where 语句

where语句就是一个操作符,类似于Python中的if语句,可以做数据筛选

操作符说明
=相等
<> / !=不相等
<小于
<=小于等于
>大于
>=大于等于
IN(A,B)A 和 B 之间
between A and B位于两值之间
AND连接多个表达式 并且的关系

3.2.3 删除 【delete】【truncate】

a.【delete】
delete from table_name [where cause]
'''
注意:
a.如果where子句没有指定,则默认将表中的数据全部删除【慎用!】
b.可以指定任何条件在where子句中
'''
b.【truncate】
truncate table 表名
'''
删除表的方法有delete, truncate, drop
truncate table 用于一次性删除所有的行,与没有where语句的delete类似;但是用的资源更少,速度更快

delete:删除表中的指定数据,表结构还在,删除之后的数据可以找回,对自动增加的字段无影响

truncate:清空表中的数据,删除的数据是不能找回的,执行速度比delete快,自动增加的字段会重新计数

drop: 删除表,数据和表结构都删除
'''

3.3 DQL【数据查询语言】

数据库执行DQL语言不会对数据库中的数据发生任何改变,而是让数据库发送查询结果到客户端

查询返回的结果其实是一张虚拟表

3.3.1 语言顺序

a. 查询语句书写顺序

select----from---》where---》group by-----》having-----》order by----->limit
'''
select (这里是要打印的字符,选取哪些列进行打印)
from (表) 
where (进行数据筛选)
group by (根据某个字符进行分组)
having (进行聚合函数筛选,必须在group by的后面)
order by (将多次筛选,分组出来得数据进行排序)
limit (只打印所选的范围)
'''
b. 查询语句执行顺序
from----》where-----》group by----》having----》order by ----》select-----》limit
'''
先从表里调出数据
进行where---group by---having 的筛选和分组过程,然后筛选的数据进行排序
最后进行打印阶段:select选择要打印哪些行,而limit选择打印多少列
'''

3.3.2 基础查询

a. 查询所有列
select * from 表名;
b. 查询指定列
select field1, field2 field3... from 表名;

3.3.3 条件查询【结合where】

操作符说明
=相等
<> / !=不相等
<小于
<=小于等于
>大于
>=大于等于
IN(A,B)A 和 B 之间
between A and B位于两值之间
AND连接多个表达式 并且的关系

between…and: 介于…和…之间

and:逻辑与

or:逻辑或

in / not in:类似于Python中的成员运算符

is / is not: 类似于Python中的身份运算符 , 常用语判断null值, 如:name is null

3.3.4 模糊查询【结合where…like】

where 子句中=表示精准查询

like:一般情况下结合where子句使用

通配符:

​ _: 匹配任意一个字符

​ %:匹配0~n个字符【n大于等于1】

'''打四个下划线,由几个字符组成就几个下划线,字符中如果某一固定位置有固定字符,那就类似__x__'''
select * from 表名 where field like '____';

例子

#1.查询姓名由4个字符组成的记录
mysql> select * from student where name like '____';


#2.查询姓名由3个字符组成的记录,并且最后一个字母为c的记录
mysql> select * from student where name like '__c';


#3.查询以a开头的记录
mysql> select * from student where name like 'a%';


#4.查询姓名中包含b的记录
mysql> select * from student where name like '%b%';


#5.查询姓名中第2个字母为c的记录
mysql> select * from student where name like '_c%';


3.3.5 字段控制查询【as, distinct】

as: 起别名

distinct: 去除重复记录

'''as: 起别名'''
select 字段1 as 别名1, 字段2 as 别名2...


'''distinct: 去除重复记录'''
select distinct field from field;

3.3.6 排序【order by】

order by: 指定数据返回的顺序

​ asc:ascending,升序

​ desc: descending,降序

select field1... from 表 order by field1 asc/desc

3.3.7 分组查询【group by,having】

group by:分组查询

having:有…,表示条件,类似于where的用法

聚合函数:聚合函数主要用来做纵向运算
count(), 统计指定列不为null的记录行数
sum(), 计算指定列的数值和
max(), min(), 求指定列中的最大值和最小值
avg(), 平均数

select field1... from 表 group by field1 having...
'''
having和where的区别
​	a.二者都表示对数据执行条件
​	b.having是在分组之后对数据进行过滤
​	  where是在分组之前对数据进行过滤
​	c.having后面可以使用聚合函数
​      where后面不可以使用聚合函数
'''

3.3.8 分页查询【limit】

limit:用来限定查询的起始行,以及总行数

''' 1.查询x行记录,起始行从y开始'''
select * from emp limit x,y;

3.4 DCL【数据控制语言】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值