mysql中的一些知识点
时间:2021-07-01 10:21:17
帮助过:15人阅读
数据的仓库
DDL 定义数据库对象语言 数据库,表,列,索引,存储过程等
DML对数据的操作 crud
DCL 访问权限控制语言
DQL数据库查询语言
创建数据库
create database g2071;
使用数据库
use g2071;
创建表
create table tb_user(列名1 数据类型
[长度],列名2数据类型
[长度],...列名 数据类型
[长度])
插入数据
插入的值要与列对应 ,数据类型要一致
insert into 表名(列名1,列名2,列名3...)
values(值1,值2,值3...);
删除
delete from 表名
where 条件 单行或多行删除
全表删除
delete from 表名
truncate table 表名 ,仅保留表结构,数据全部清除。注意:事务不可以回滚
drop table 表名。表结构和数据一并删掉,事务不可回滚
更新数据
update 表名
set 列名
=值,列2
=值2 ...
where 条件
查询
单行查询
select * from 表名
where name
=‘‘
id=2
多行查询
select * from 表名
模糊查询
like
select * from tb_user
where name
like ‘%雪%‘
第几个字符是某值,例:第二个字符是雪
_
select * from tb_user
where name
= ‘_雪‘;
and or
select * from tb_user
where age
>=18 and age
<=25
select * from tb_user
where age
=18 or age
=25
聚合函数
count:总记录数
sum:求和
avg:平均
max:最大值
min:最小值
排序
order by
asc 升序
desc 倒序
分组函数 一个列相同的值只出现一个
group by 配合聚合函数使用
having 分组之后再次过滤数据用的
select from where group by having order by
约束:对数据进行检查验证
主键:primary key auto_increment 非空且唯一
非空:not null 不能为null
unique:唯一约束 可以有多个null值,非空的只能有一个
关联关系
表与表之间是有关系的
一对一 人跟身份证
一对多 人跟手机 人跟汽车
多对多 订单与订单明细 学生与课程
关联关系:查询的时候要加上 条件的数量是:N-1 假设有3张表 最少有2个条件
DROP DATABASE g2071;
CREATE DATABASE g2071;
#学生表
CREATE TABLE student(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(
30),
sex CHAR(
3)
)
INSERT INTO student(id,NAME,sex)
VALUES(
1,
‘张三‘,
‘男‘),(
2,
‘李四‘,
‘男‘);
SELECT * FROM student;
#课程表
CREATE TABLE kecheng(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(
30)
)
INSERT INTO kecheng(id,NAME)
VALUES(
1,
‘Java‘),(
2,
‘MySQL‘);
SELECT * FROM kecheng;
#成绩表
#定义两个外键
CREATE TABLE score(
stu_id INT,
kecheng_id INT,
score INT,
FOREIGN KEY(stu_id)
REFERENCES student(id),
FOREIGN KEY(kecheng_id)
REFERENCES kecheng(id)
)
INSERT INTO score(stu_id,kecheng_id,score)
VALUES(
1,
1,
90),(
1,
2,
95),(
2,
1,
89),(
2,
2,
99);
SELECT * FROM score;
#关联表查询
SELECT s.name,k.name,sc.score
FROM student s,kecheng k,score sc
WHERE s.id
= sc.`stu_id`
AND k.id
= sc.`kecheng_id`
AND s.id
= 1
mysql中的一些知识点
标签:创建表 png 定义 不可 key run mamicode 插入 dml