数据库系统概论总结

第一章

1.如何在命令行配置MYSQL数据库

1)找到MYSQL安装目录的bin目录

2)放置到path环境变量中

2.启动停止MYSQL

启动: netstarmysqla 停止:mysql net stop mysqla

3.数据类型

binary,int,float,double,char,varchar,text,datetime

4.添加数据库

create database 数据库名;

5.查看数据库

show databases;
show create database;

6.删除数据

drop database 数据库名;

7.使用数据库前需要先打开数据表所在的数据库

use 数据库名;

8.创建表

create table 表名(字段1 类型(长度),[约束],.....);

9.查询当前数据库下有哪些表

show tables

10.查询表结构

sesc student

11.数据库备份与还原

mysqldump-uroot-p first-db>C:123456.sql

第二章

1.数据库没有大小写之分

2.关键词大写,自定义的小写
3.修改表内容的关键词

alter table 表名 (动作)改表名 动作 rename 新表名改字段类型 动作 modify 字段名 新类型改字段名称 动作 change 旧名称 新名称 新类型增加字段 动作 add 新增字段名 新增字段类型删除字段 动作 drop 字段名删除表 drop table 表名;删除数据库 drop database 数据库名;

1、数据完整性

主键约束 primary key 特点是非空且唯一
两种写法,直接写在字段后,或者写在创建语句最后 primary key(字段名)
联合主键 写在创建语句最后 primary key(字段 1,字段 2)

2、设置字段自增长 auto_increment

数据表只有一个自增长列,为主键列

3、外键约束 foreign key

写在创建语句最后 foreign key (从表字段名) references 主表名
(主表字段名)

4、非空约束 not null

5、默认约束 default 值,注意字符串,需外加单引号

6、唯一约束 unique

主键约束和唯一约束的区别,主键无意义,唯一约束可以为 null
设计规范
1NF(第一范式)保证数据列的原子性
家庭住址 可分为省 市 县 具体地址
2NF 保证每列都和主键相关(唯一主键,联合主键不满足)
学号 姓名 课程 教材 教材内容
1 张三 数据库 mysql XXXXX(1 千字)
1 张三 java java
2 李四 数据库 mysql XXXXX(1 千字)
3 王五 数据库 mysql XXXXX(1 千字)
数据冗余 更新异常 插入异常 删除异常

3NF 保证每列都和主键直接相关
学号 姓名 班级 辅导员编号 辅导员姓名 辅导员家庭住址

第三章

数据库的增删改操作

1、插入数据

insert into 表名(列 1,列 2,。。。) values(值 1,值 2,。。。);查询数据select * from 表名;

2、into 关键字可以省略

简写形式 insert 表名(列 1,列 2,。。。) values(值 1,值 2,。。。);

3、全列插入可省略列明

简写形式 insert 表名 values(值 1,值 2,。。。);

4、自增列和默认列可省略

注意:自增列只增不减
除非:alter table 表名 set auto_increment=值;
或者 truncate table 表名; 清空表,自增从 1 开始记数

5、一次插入多行

insert 表名(列 1,列 2,。。。) values(值 1,值 2,。。。),(值 1,值 2,。。。),。。。。;

6、比较运算

大于>=大于等于<小于<=小于等于 =等于 !=或<>不等于

is null 为空 is not null 非空 in 在某个范围 not in 不在某个范
围 like 模糊查询 between and 在某个范围

7、逻辑运算

not 非 and 并且 or 或者

8、修改数据

update 表名 set 列名 1=值 1,列名 2=值 2… where 条件;

如果没有 where 全更新

9、删除数据

delete from 表名 where 条件; 

注意删除数据不更改自增列的值

10、清空数据

truncate table 表名功能同 delete from 表名
但是
1>Delete 无法修改自增列,truncate 重置自增列
2>Delete 可以删除外键约束,truncate 只能清空数据,无法删除外
键约束
3>Delete 可以通过备份和日子恢复,truncate 无法恢复

第四章

注意:
1、数据库没有双引号,字符一定要用单引号包括
2、字段名不用引号,单引号包括的一定是字符
``(数字键 1 左边的键)

查询语句

select 字段 1、字段 2… from 表名 where 条件 order by 字段 1、
字段 2… limit 数字 1,数字 2;
*是通配符,表示所有字段
使用 as 为字段重命名

3、where 查询条件

4、distinct 查询不重复字段

5、limit n,m

从 n+1 行开始取,取 m 行,行数从 0 开始
limit n,取前 n 行

6、order by 字段 1

通过字段 1 将表从小到大排列
order by 字段 1 desc
order by 字段 1,字段 2
先按照字段 1 排列,在字段 1 相同的情况下按照字段 2 排列

成绩表,姓名,成绩
查询一下第 3 到 6 的女学生姓名
select 姓名 from 成绩表 where 性别=’女’ order by 成绩 desc
limit 2,4;
MySQL 函数
concat(‘今天’,’晴天’) 拼接字符串
length(‘hello world’) 计算长度,一个字符,符号,数字占 1 位,
一个汉字占 3 位
upper(‘abcd’) 转成大写
ltrim(‘ abc’) 清除左侧空格
rtrim(‘abc ‘) 清除右侧空格
trim(‘ abc ‘) 清除两侧空格
replace(‘abccd’,’c’,’x’) 将 abccd 中的所有 c 替换成 x
strcmp(‘a’,’b’) 比较字符串大小
substring(‘abcdefg’,3,3) 取子串,从第 3 个开始取,取 3 个
数学函数
rand(); 取 0~1 的随机小数,取不到 0 和 1
ceil();向上取整
floor(); 向下取整

第五章

模糊查询和分组查询

模糊查询使用 like 关键字, _代表一个字符 ,%代表任意长度的字
符(0 也是任意长度)
between and 关键字,表示大于等于第一个数,小于等于第二个数
select * from stuinfo where age between 18 and 20;where age >=18 and age<=20;
聚合函数
求和 sum,平均 avg,最大 max,最小 min,个数 count()使用聚合函数只有一行结果分组查询group by 写在 where 后面,order by 前面select * from stuinfo group by age;只有聚合函数和被分组的列有意义使用 having 对分组结果进行条件查询,写在 group by 后面P43 count()和 count(列名)
count(列名),如果列里面是 null 的,不计入总数

第六章

数据库有3中连接方式(MySQL有),其他数据库如(Oracle,SQL Server)
有 4 中包括全连接

1、内连接

SELECT 列名 1,列名 2… FROM 表 1,表 2 WHERE 条件

另一种写法

SELECT 列名 1,列名 2… FROM 表 1 INNER JOIN 表 2 ON 条件

2、左连接

SELECT 列名 1,列名 2… FROM 表 1 LEFT JOIN 表 2 ON 条件

3、右连接

SELECT 列名 1,列名 2… FROM 表 1 RIGHT JOIN 表 2 ON 条件

4、全连接

先左连接再右连接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值