mysql 知识点简单回顾(一)

认识数据库

常见的数据库

Mysql、Oracle、sql server、DB2、Access

数据库的特点

1、持久化的存储数据,相当于文件管理系统
2、方便存储和管理数据
3、使用统一的方式操作数据库。SQL数据库操作语言

mysql的配置

自动开启服务窗口 cmd services.msc
开始mysql服务 net start mysql
关闭mysql服务 net stop mysql

mysql的登录

本地登录 mysql -u用户名 -p密码
远程登录 mysql -hip地址 -u用户名 -p密码
登录 mysql --host=ip地址 --user = 用户名 --password = 连接目标密码
MySQL的退出 exit 或 quit

数据库的包含

数据库相当于文件夹
数据库中的表相当于文件
表中的数据相当文件里的数据

SQL语句

结构化查询语句(关系型数据库)

sql的语法规范

sql可以单行或者多行书写以;结尾
可以使用空格或者缩进来增强语句的阅读性
SQL不区分大小写,关键字使用大写
单行注释 - - 、#(mysql特有)
多行注释 /**/

SQL的分类

DDL:数据库定义语言,用来定义数据库的对象:数据库、表、列等等cerate 、 drop 、alter等不能操作数据
DML: 数据库操作语言,用来操作数据库的数据增删改等insert 、delete 、update等 不能进行查询
DQL:数据库查询语言,用来对数据库进行查询 select 、where 等
DCL:数据库控制语言,用来定义数据库的访问权限或安全级别

DDL

一、操作数据库
1、创建数据库
create database 库名
创建数据库,先判断是否不存在,在进行创建
create database if not exists 库名
创建数据库,先判断是否不存在,创建指定的字符集
create database if not exists 库名 character set 字符集
字符集默认为数据库安装时的设定
2、查询
查看所有的数据库的名称
show databases;
查询某个数据库的字符集
show create database 数据库名;
3、修改
修改数据库的字符集
alter database 数据库 character set 字符集
4、删除
drop database 数据库名
先判断,是否存在在进行删除
drop database if exists 数据库名
5、使用数据库
查询当前使用的数据库
select database();
使用数据库
use 数据库名;
二、操作表
create table 表名(列名1 数据类型, 列名2 数据类型...列名n 数据类型 )
最后一个不添加,
数据类型
1、整数:int、bigint
2、小数:double(5,2) 例如999.99
3、日期:date yyyy-MM-dd
4、日期:datetime yyyy-MM-dd HH:mm:ss
5、时间戳 timestamp 如果不给此字段赋值 或赋值为null,那么默认使用当前的系统时间
6、char:类型
7、varchar(20):可变字符串
两者区别:
经常变换字段用 varchar
知道固定的长度用char
超过字节用text
复制表
create table 表名 like 被复制的表名;
2、查询
查询某个数据库中的所有表
show tables;
查询表结构
desc 表名;
3、删除
drop table 表名;
drop table if exists 表名;
4、修改
修改表名
alter table 表名 rename to 新的表名;
修改表的字符集
alter table 表名 character set 字符集;
修改列的名称、类型
alter table 表名 change 列名 新的列名 数据类型
修改列的数据类型
alter table 表名 modify 列名 新的数据类型
删除列
alter table 表名 drop 列名;
增加列
alter table 表名 add l列名 数据类型;

DML数据的增删改

1、添加数据
insert into 表名(列名1、列名2....) values (值1、值2....)– 有多少个列,就写多少个
insert into 表名 values(值1、值2)
注意事项
列名和值要一 一对应
如果表名后,不定义列名,默认给所有的列添加值
除了数字类型以外,其他数据类型都需要加 "",''
2、删除数据
delete from 表名; 一条一条删除效率比较慢
delete from 表名 where 条件 如果不加条件则删除所有记录
truncate table 表名;删除表中的所有数据 先删除表,在创建一个空表
3、修改数据
update 表名 set 列名 = 修改的值 where 列名 = 原来的值
如果不加条件默认,修改所有的值

DQL查询表中的数据

select * from 表名; - - 打开表

基础查询

1、多个字段查询
select 字段1,字段2 ... from 表名;
2、去除重复查询distinct
select distinct 字段1,字段2 from 表名
null 是不在重复查询范围之内的
3、计算列
一般可以使用四则运算
+ - * /来计算列的值
select id , age+1 from 表名;
4、取别名
select id as ' 序号', age+1 as '年龄' from 表名;as是可以省略的
5、null参数计算,计算结果还是null
ifnull(表达式1,表达式2):函数
表达式1:那个字段需要判断是否为null
表达式2; 如果字段为null后的替换值

条件查询

where 后跟条件
1、运算符 >、 < 、<=、 >=、 <>(!=)
2、范围:between ... and在一个范围内,既包含头,又包含尾
3、in() : 集合表示多个值,使用逗号分隔
4、like 模糊查询
_ :单个任意字符
%:多个任意字符
5、is null 不为 null的值
如果要判断列为null ,不能写 = 来判断(出不来结果)
6、|| && !
&& 写 and 、 || 写 or 、 ! 写 not

排序查询

order by 子句
排序方式:
asc 升序(默认)
desc 降序
注意事项:如果有多个排序条件,则当前面的条件值一样时,才会判断第二个条件

聚合函数

将一列数据作为一个整体,进行纵向的计算
count(); 统计个数
max(); 最大数
min(); 最小数
sum(); 和
avg(); 平均数

分组查询

group by 分组字段
select sex ,avg(math),count(id) from student group by sex;
having 和 where 的区别
where 在分组之前进行判断,如果不满足条件,则不参与分组,而having在分组之后进行判断,如果不满足结果,则不会被查询出来。
where 后面不能跟聚合函数。
having 是可以进行聚合函数的判断。

分页查询

limit:是MySQL方言
limit:开始的索引,每页显示的条数
开始索引 = (当前页面 -1) * 每页显示条数

约束

对表中的数据进行限定,保证数据的正确性、有效型和完整性
分类
主键约束 primary key
非空约束 not null
唯一约束 unique
外键约束 foreign key

非空约束

值不能为 null
1、创建表时,添加非null约束
id int not null, // 直接在列名后面加 not null
2、删除非null约束
alter table 表名 modify 列名 数据类型;
3、创建完表之后,添加非null约束
alter table 表名 modify 列名 数据类型 not null;

唯一约束

值不能重复
1、创建表时,添加唯一约束
username varchar(20 unique – 直接在列名后面加 unique
在MySQL中,唯一约束限定的列是可以存储多个null值的。
2、删除唯一约束
alter table 表名 drop index 列名;
3、创建完表之后,添加唯一约束
alter table 表名 modify 列名 数据类型 unique;

外键约束

让表之间产生关系,从而确定数据的正确性和完整性。那个添加的外键,那个就是外表
1、创建表时添加外键
constraint 外键名称(主_外_fk) foreign key(外键列名称) references 主表名称(主表列名称);
2、删除外键
alter table 表名 drop foreign key 外键名称;
3、创建表之后,添加外键
alter table 表名 add constraint 外键名称 foreign key(外键列名称) references 主表名称(主表列名称);
4、级联操作
​ 分类: 级联更新 on update cascade
​ 级联删除 on delete cascade

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值