数据库的基础认知和数据库内容的创建

基础认知

1.记录、字段、数据

  1. 每一行数据称为记录
  2. 字段,列,用来描述数据
  3. 数据,行和列交叉的位置的值

2.字段约束

(1)主键约束: primary key,值唯一,不能为空
(2)外键约束: foreign key,用来设置表与表之间的关系,关联其他表的主键
(3)检查约束: check,检查是否满足某个值,在MySQL中无效
(4)唯一约束: unique,值唯一
(5)默认约束: default,没有约束,默认值
(6)非空约束: not null,值不能为空

3.三大范式

(1)第一范式:字段不可再分(必须满足)
(2)第二范式:必须有主键
(3)第三范式:除主键外不能再有其他候选关键字

4.数据类型

(1)数值性:int、float、double
(2)字符型:char、varchar、text
char(n) 和 varchar(n) 中括号中 n 代表字符的个数,并不代表字节个数,比如 CHAR(30) 就可以存储 30 个字符;varchar(30)不一定是30个字符,是根据实际大小计算得到的

5.DML和DDL

(1)DML:对表进行增删查改操作的sql语句

①insert into 增加数据
②delete from 删除数据
③update set 修改数据
④select from 查找数据

(2)DDL:操作数据和表的sql语句

创建数据库:create database 数据库名
删除数据库:drop database 数据库名
创建表:create table 表名字段 字段类型 字段约束,字段。。)
删除表:drop table 表名

6.增加数据

(1)语法:insert into 表名(字段) values(值)
insert into user values(); 要求按顺序添加所有字段的值
insert into user() values(); 指定添加某些字段的值 user后面括号里的是一些字段,values后面括号里的是一 一对应的数据

综上代码案例

下面代码是上述数据库基本操作的示例:

//创建数据库,数据库名字为 mydb
create database mydb
//鼠标选中新创建的数据库,然后创建表,表名为 user
create table user(
	id int primary key auto_increment,
	usename char(20),
	passwd char(20),
	address char(20)
)
//删除表
drop table user
//删除数据库
drop database mydb
//增加数据
insert into stu(id,username,address) values (1,"小明","成都")

7.更改数据

(1)语法:update user set 字段名称=“新值”,字段2=“新值” where 条件;这里的user指的是表的名字,新值指的是更换的数据
Where条件可以取 =、>、<、>=、<=、and、or、in、not in

代码案例

//筛选出id为4的数据,修改username为“翁政”
update user set username="翁政" where id=4;
//and是一个交集的作用,前后的条件都要满足才可以筛选出
update user set passwd="abc123!@#" where id>4 and id<8;
//or是一个并集的作用,满足前面的或者满足后面的都可以筛选出来
update user set passwd="www" where id<3 or id>17;
update user set passwd="baidu" where id=3 or id=8 or id=9;
//把in里面的筛选出来
update user set passwd="apple123" where id in(5,10,13);
//把不在in里面的全筛选出来
update user set passwd="1111111111111" where id not in(3,6,10);
update user set passwd="新密码" where id=7 and username="张豪";

8.删除数据

语法:delete from user where 条件 这里的user指的是表名

//筛选出id为10的记录
delete from user where id=10;
//筛选出in里的id数,然后删除它们的记录
delete from user where id(3,5,7);
//筛选出小于16的id数,删掉它们所在的记录
delete from user where id<16;
//删除满足id数为5并且username字段的数据为“张豪”所在的记录
delete from user where id=15 and username="张豪";

9.查询数据

1.普通查询

序号就是写代码的顺序
(1) Select 字段
(2) from 表名
(3) Where 条件 ,多表查询时,要过滤掉笛卡尔积
(4) Group by 分组规则,select 和 from 之间只能写能够代表整组信息的数据
(5) Having 在分组的基础上在过滤数据,前提是在使用group by,没有group by就无法使用having
(6) Order by 对查询结果进行排序
(7) desc(逆序),asc(默认顺序)

2.like 模糊查询% _

(1) %:匹配零个或者多个字符
(2) _:只能匹配一个字符
(3) 语法:where 字段 like %

3. limit:分页查询

(1) 语法:where limit start,offset
(2) start:表示起始下标,从0开始 ,会取到当前的这条记录
(3) offset:表示偏移量,要查询多少条记录
(4) 分页:
start =(page-1) * num
page表示的是第几页,num是查询数量
第一页1 起始下标0 查询 数量10 (1-1)* 10
第一页2 起始下标10 查询 数量10 (2-1)* 10
第一页3 起始下标20 查询 数量10 (3-1)* 10

10. 内连接、左连接、右连接以及全连接查询

1.inner join:查询两张表共同的数据,交集
2.left join :以左表为基准,获取左表中所有的数据,右表没有的字段为null
3.right join :以右表为基准,获取右表中所有的数据,左表没有的字段为null
4.union:全连接,会合并相同的记录,如果想不合并,使用union all

(select e.name,e.salary,d.dname,d.address
from employee e
left join department d
on e.deptid=d.deptid)
union
(select e.name,e.salary,d.dname,d.address
from employee e
right join department d
on e.deptid=d.deptid)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值