MySQL基础知识
1.什么数据库?
-
用于存储和管理数据的仓库
2.它有什么特点
-
可以持久化存储数据,是一个文件系统
-
方便存储和管理数据
-
使用统一的方式操作数据库,即SQL
二、MySQL数据库软件
1.安装
-
根据相关文档安装
2.卸载
-
打开程序与应用卸载MySQL
3..使用
-
win+R输入cmd进入命令窗口
-
输入net start mysql启动MySQL服务,net stop mysql关闭MySQL服务(如果显示不是内部命令,用管理员身份打开cmd命令窗口)
-
输入mysql -uroot -proot进入MySQL
-
输入mysql -hip地址 -u密码 -p密码,访问其他IP地址的MySQL
4.配置
-
安装目录:mi.ini配置文件
-
数据目录:
-
数据库:文件夹
-
表:文件
-
数据
-
三、操作数据库---SQL
1.什么是SQL?
-
Structured Query Language:结构化查询语言
-
定义了操作所有关系型数据库的规则
-
方言:每一种数据库不同的操作方式
2.SQL通用语法
-
语句可以是单行或多行书写,以分号结束
-
语句不区分大小写,建议关键字大写
-
注释:
-
单行注释:--加空格或直接使用#
-
多行注释:/* 内容 */
-
3.SQL分类:
-
DDL(操作数据库和表)
-
操作数据库
-
Create
-
create database if not exists 数据库名;--先判断数据库是否存在再创建
-
show create databases 数据库名; --查询创建数据库的字符集
-
create database 数据库名 character set 字符集;--指定字符集
-
-
Retrieve
-
show databases; --查询已存在所有数据库
-
-
Update
-
alter database 数据库名 character set 字符集;--修改数据库字符集
-
-
Delete
-
drop database 数据库名;--删除数据库
-
drop database if exists 数据名;--先判断再删除
-
-
use
-
use 数据库名;--使用数据库
-
-
操作表
-
Create
-
create table 表名(
列名1,数据类型,
列名1,数据类型,
列名1,数据类型,
......
列名1,数据类型
);--最后一列不加逗号
-
举例:创建学生表
create table studetn(
id int,
name varchar(10),
age int,
gender varchar(4),
score double(4,1),
birthday date,
insert_time timestamp
); -
-
数据类型
-
int --整形
-
double(位数,保留几位) --浮点型
-
timestamp--时间戳,当不赋值或为null时,自动使用系统时间赋值
-
varchar(最大字符) --字符型,不用空格补齐字符
-
-
-
Retrieve
-
show tables;--查询使用数据库的所有表
-
desc 表名;--查询表结构
-
-
Update
-
alter table 表名 rename to 新表名; --修改表名
-
alter table 表名 character set 字符集名称;-- 修改字符集
-
alter table 表名 add 列名 数据类型;--添加列
-
alter table 表名 change 被改列名 新列名 新类型;--修改列名,数据类型
-
alter table 表名 modify 被改列名 新类型;--modify只能修改列属性,不能修改列名
-
alter table 表名 drop 列名;--删除列
-
-
Delete
-
drop table 表名;-- 删除表
-
drop table if exists 表名;--先判断再删除
-
-
复制表:create table 表名 like 被复制表名;
-
-
DQL(查询表中的数据)
-
查询表中所有数据:select * from 表名;
-
语法:
select
字段名
from
表名
where
条件列表
group by --分组列表
having --分组条件
order by --排序
limit --分页列表
-
-
基础查询
-
多字段查询
select 字段1,字段2 ,... from 表名;
-
去重查询(查询结果集中有多个相同的字段)
select distinct 字段名 from 表名;
-
计算列(可以对数值类型的列进行四则运算)
select math,english,math+ifnull(english,0) as score from student;
ifnull(表达式1,表达式2),判断是否为空,是则返回表达式2,否则返回表达式1.
-
as 给表名或字段名取别名
-
-
条件查询
-
where子句后跟条件
-
运算符查询:>、<、=、<=、>=、!=(或<>)
-
范围查询:between 范围1and 范围2 --适合小范围查询
-
集合查询:in(集合)--查询与集合内值相等的数据 --适合大范围查询
-
条件是字段的用is连接 --例:查询字段为null的数据
-
多条件查询:and、or、&&、||
-
非查询:!、not
-
模糊查询:like
-
'_'表单个任意字符
-
'%'表示多个任意字符
-
实例:查询学生表中姓刘的学生
select * from student where name like '刘%';
查询学生表中第二个字是佳的学生
select * from student where name like '_佳%';
查询学生表中包含佳的学生数据
select * from student where name '%佳%';
-
-
-
DML(增删改表中数据)
-
添加数据:insert into 表名(列名1,列名2,列名3,..) values(值1,值1,值1,...);
insert into student(id,name,gendet) values(1,'张三','男');
-
注意:
-
列名要与添加的值一一对应,
-
不写列名,需给所有列添加值
-
除了数字类型外,其他所有类型的值都需要引号(一般使用单引号)引起来
-
-
-
删除数据:
-
delete from 表名 [where 条件];
删除学生表中id为12的学生的数据
delete from student where id = 12;
-
注意:不加条件的话就删除表中的所有数据,但表中有多少条数据就会执行多少次delete语句,效率低。
-
-
truncate table 表名;--先删除表,再创建一张相同的表,只执行两次(删除表,创建表),建议删除全表数据使用。
删除学生表中的所有数据
truncate table student;
-
-
修改数据:
-
update 表名 set 列名1=值1,列名2=值2,...[where 条件];
更改学生表中id为1的学生地址为北京
update student set address = '北京' where id = 1;
-
注意:不加条件则会将表中所有对应的列修改为相同的值,不建议使用。
-
-
DCL(授权)
CRUD
-
Create(创建)
-
Retrieve(查询)
-
Update(更改)
-
Delete(删除)
4.图形化界面工具SQLyog
-
安装
-
安装文档
-
-
使用
-
连接数据库:输入对应的信息,测试连接,保存信息
-

浙公网安备 33010602011771号