A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小石姐姐 于 2018-1-24 15:01 编辑

数据库回顾总结

获取前两名:
limit 两个参数:从那开始;要几个
select * from ... order by score desc limit 0,2;
mysql中不能同时针对一张表出现不同的操作
但是可以:
嵌套一个语句,给查询结果起个别名:
UPDATE... set score = score + 20 where id in (SELECT a.id from(select id fromstudents order by score desc limit 0,2)a)
数据库就是一个文件系统,通过标准的sql进行访问
关系型的数据库存放的是实体间的关系

有一个应用创建一个数据库;有一个实体创建一个表;有一个具体的实体对象则有一条记录与之对应


SQL结构化的查询语言:
     DDL:数据定义语言;DML:数据操作语言; DCL:数据控制语言; DQL:数据查询语言

使用SQL操作数据库(对数据库的CRUD的操作)
* 创建数据库语法:
create database 数据库名称 [character set 字符集 collate 字符集校对];
查看数据库服务器中所有的数据库:
showdatabases;
查看某个数据库的定义信息:
show create database 数据库名;
查看当前正在使用的数据库信息:
selectdatabase();
删除数据库:
drop database 数据库名;
修改数据库修改的是数据库的字符集和校对规则:
alter database 数据库名 character set 新字符集 cillate 新的校对规则;
切换数据库:
use 数据库名;

使用SQL操作数据库中表(对数据库的表CRUD的操作)
创建表:
create table 表名 (
字段名 类型(长度) 约束,
字段名 类型(长度) 约束,
字段名 类型(长度) 约束
);
数据类型:
char和varchar:
char是固定长度的字符串;varchar是可变的
byte/short/int/long:
tinyint/smallint/int/bigint
float:float
double:double
boolean:bit
Date:
date/time/datetime/timestamp
*datetime和timestamp都是既有日期又有时间的日期类型
区别: datetime必须传入日期,没传为null;timestamp使用系统当前时间作为默认值
*数据类型中除了char和varchar,其他类型都有默认长度
约束:
单表约束:
*主键约束;primarykey(默认就是唯一以及非空)
*唯一约束:unique
*非空约束:not null
*/
/*
查看数据库中有哪些表
showtables
查看表结构
desc 表名;
表的删除:
drop table 表名;
表的修改:
添加列:
alter table 表名 add 列名 类型(长度) 约束;
删除列:
alter table 表名 drop 列名;
修改表的列的类型长度以及约束:
alter table 表名 modify 列名 类型(长度) 约束;
修改表的列名;
alter table 表名 change 旧列名 新列名 类型(长度) 约束;
修改表名:
rename table 旧表名 to 新表名;
修改表的字符集:
alter table 表名 character set 字符集;

操作表记录
插入记录:
insert into 表名(列名,列名...)values(值1,值2...);
insert into 表名 values(值1,值2...);

修改表记录
update 表名 set 列名=值列名=值 (where 语句);
删除表记录
delete from 表名 (where语句); //不加where语句是删除全部记录
删除表中的所有记录 truncatetable 表名 和 delete from 表名
前者是删除整个表,再建立一个新表,属于DDL;
后者是逐条删除,属于DML        

查询表记录
select ... from 表名 (where语句);
distinct去重;        

多表设计
实体的三种关系:
一对多;多对多;一对一
一对多关系的制表原则:
"多"的表中创建外键指向第一张表的主键
多对多关系的制表原则:
中间表至少三个键,有两个外键指向另两个表的主键
一对一关系的指标原则:
唯一外键对应的方式:外键唯一保证一对一
主键对应
外键的作用:保证数据的完整性
给表中添加外键约束:
内部添加:FOREIGN KEY(外键名) REFERENCES 主表(主表主键)
外部添加:alter 从表名 add FOREIGN KEY(从表外键名) REFERENCES 主表(主表主键)
多表查询
交叉连接:(忽略不用)
内连接:inner join -- inner可以省略
1.显式内连接
select * from A inner join B on
2.隐式内连接
select * from A,B where A.id = B.id;
外连接:outer join -- outer可以省略
1.左外连接
select * from A left outer join B on A.id = B.id;
2.右外连接
select * from A right outer join B on A.id = B.id;
子查询:
一个sql查询语句需要依赖另一个查询语句;
*/






0 个回复

您需要登录后才可以回帖 登录 | 加入黑马