-
概念:
按照数据结构来组织、管理、存放数据的库
数据库=表+表之间的关系
-
常见数据库
MySQL、Oracle、MongoDB、SQLServer、Redis、Sqlite
-
数据库与SQL的关系
数据库是用来存放数据的,SQL语句用来操作数据库的数据
-
MySQL
- 卸载:关闭服务、卸载软件MySQL、删除安装MySQL路径剩余的文件、ProgramData的MySQL文件删除
- 安装:双击 → ... → 安装类型(Custom)→ 修改安装路径 → finish
- 配置
- 关闭开启服务
- 登录:
mysql -u root -p123
- 退出:
exit
、ctrl+c
-
SQL语句
-
DDL:数据库定义语言
# 库 create database 库名; show databases; use 库名; drop database 库名; show create database 库名; # 表 show tables; show tables from 其他库名; create table 表名( id int primary key auto_increment, name varchar(20) unique not null, salary float(6,2), birthday date ); desc 表名; drop table 表名; # 如果插入中文 # 通知服务器客户端使用的编码是gbk set character_set_client=gbk; # 通知服务器客户端查看结果集使用的编码是 gbk set character_set_results=gbk; # 如果中文对不齐或乱码 charset gbk;
面试题:delete和truncate的区别?
-
DML:数据库操作语言
insert into 表名 values(1,'anfly',1.22,'1991-01-01'); insert into 表名(id,name) vlaues(2,'bigfly'); delete from 表名 [where 条件]; truncate table 表名; update 表名 set name="",salery="" where 条件;
-
DQL:数据库查询语言
# 查 select */name from 表名 [where id!><=1]; # 并列、别名、修改数据 select name as 姓名 , (math+chinese) as 数语和,(math10) as 数学加10 from 表名; # 条件合并 select * from student where (math+english+chinese)>230; # 范围:between a and b,a和b都包含 select * from 表名 where math between 80 and 90; # 条件并列:and select * from 表名 where math > 80 and chinese > 90; # 匹配枚举值:in select * from 表名 where math in(10,20,30); # 模糊查询:like,"_"代表一个字符,"%"代表(0,∞) select * from 表名 where name like '_%'; # 聚合函数 max count min sum avg # 分组 select sex,count(*) from 表名 group by sex; # 分页查询 select * from 表名 limit 2,5; # 排序 select * from 表名 order by math asc/desc limit2,5;
DCL:数据库控制语言
-
-
多表设计
-
一对一、一对多、多对多
# 外键 create table t(id int primary key,name varchar(100)); create table s (id int primary key,name varchar(100)); create table ts(t_id int,s_id int,constraint foreign key(t_id) references t(id),constraint foreign key(s_id) references s(id)); # 李老师所有学生 select * from s where id in(select s_id from ts where t_id=(select id from t where name = '李老师')); # 张三的所有老师 select * from t where id in(select t_id from ts where s_id=(select id from s where name = '张三'));
-
多表联查
-
交叉查询
# AB表 select * from A,B; select * from A cross join B;
-
内连接查询
select * from A inner join B on A.id=B.id; select * from A , B where A.id=B.id;
-
外连接查询
# 左外 select * from A left join B on A.id=B.id; # 右外 select * from A right join B on A.id=B.id;
面试题:左外和右外的区别?
-
-
-
Navicat
下载、安装、破解
-
操作
连接数据库、建库、删库、建表、删表、插入数据、删除数据、导出、导入
-
数据库优化
索引优化
-
数据库性能检测工具
explain
数据库视图
数据库
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- /*CREATE TABLE student3 (id int, -- 编号name varchar(20), ...