mysql数据库入门
2016-01-12 17:08
585 查看
一、第一章
1、 什么是数据库?
database,数据库(database,DB)是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。
2、 DBMS数据库管理系统—软件
DBS、DBA
DBS包含DBMS和DB和DBA
3、数据表:是一系列二维数组的集合,用来存储数据和操作数据的逻辑结构。它由纵向的列和横向的行组成,行被称为记录,是组织数据的单位;列被称为字段,每一列表示记录的一个属性。
4、数据库的种类:
Oracle-甲骨文
应用广泛、功能强大,分布式数据库系统
“关系-对象”型数据库
MySQL-瑞典AB公司
快捷、可靠
开源、免费、与PHP组成经典的LAMP组合
SQL Server-微软
针对不同用户群体的五个特殊的版本
易用性好
DB2-IBM公司
应用于大型应用系统
二、 第二章
1、 mysql: MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。
2、 sql:结构化查询语言
DDL:create drop alter
DQL: select
DML: update delete insert
DCL: grant revoke commit rollback
3、 数据类型:
数值型:int\float\double
字符型:char varchar(20)
日期时间:date time datetime year
4、 登陆mysql
mysql–u root –h localhost–p密码回车
退出mysql:
exit \quit
显示全部数据库:
show databases;
创建数据库:
create database tbname;
使用数据库:
use tbname;
显示全部表:
show tables;
删除数据库:
drop database tbname;
三、 第三章
1、 建表:
create table 表名
(
字段名数据类型约束FF0C
……
);
2、 显示表结构:
desc表名;
3、 显示表的建表语句:
show create table 表名\G;
4、 删除表: drop table 表名;
5、 修改表:
alter table 语句;
语句包含:增加字段add sex char(2) first | after 字段名;
修改字段数据类型modify sex varchar(4);
修改字段名:change sex ssexvarchar(8);
修改表名:旧表名 rename to 新表名;
删除字段:drop sex;
修改原有字段位置:modify 字段名数据类型 first | after 字段名;
6、 添加数据:
insert into tbname values();
insert into tbname(字段名1,字段名2) values(值1,值2);
insert into tbname values(值),(值);
利用已有表的数据对新表进行添加:insert into tbnameselect * from 表;
7、 修改数据
update biaoming set 字段=值 where 条件;
8、 删除数据
delete from tbname where 条件;
删除全部数据:
delete from tbname;
truncate tbname;(重置计数)
四、 第四章
1、 自增auto_increment主键int
2、 主键 primary key
列级表级
3、 外键
主表从表
建立在从表上表级 foreign key(本表字段) references 主表(主键);
4、 非空 not null 列级
5、 唯一 unique 表级列级
6、 默认 default ‘’;
7、 检查约束 check
8、 对建好的表添加约束
主键:alter table tbname add primary key(id);
外键:alter table tbname add foreign key(id) references 主表(主键);
非空:alter table tbname modify 字段数据类型 not null;
默认:alter table tbname modify 字段数据类型 default ‘’;
唯一:alter table tbname add unique(字段);
9、 删除约束:
alter table tbname drop primary key;
alter table tbname drop foreign key 约束名;
alter table tbname modify 字段数据类型 null;
alter table tbname drop index 约束名;
五、 第五章
1、 查询语句:
select
from
where
group by
having
order by
limit
2、 查询列:
select * from tbname;
selectename,sal from emp;
3、 查询计算的值
查询试用期工资:
Select sal*0.8 from emp;
4、 去重
select distinct 列 from emp;
select distinct 列1,列2 from emp;
5、 重命名 as aa
6、 where 过滤数据
= <><= >= !=(<>)
7、 确定范围
sal between 1200 and 2000;===== sal>=1200 and sal<=2000
sal not between 1200 and 2000;===== sa<1200 orsal>2000
8、 确定集合
age in(18,20,25);=========== age=18 or age=20 or age=25;
age not in(18,20,25);=========== age!=18 and age!=20 and age!=25;
9、 空值查询
is null;
is not null;
多重条件查询
查询工资等于1500的经理 and
查询工资等于1500的员工和经理 or
10、 排序
order by ascdesc
多列进行排序:salasc,jobdesc;
11、 limit
limit 5; 取前5条记录
limit 0,5;取前5条记录
limit 2,5; 取第三条开始,取4条
六、 第六章
1、 模糊查询 like
select * from emp where ename like ‘_e%’;
select * from emp where ename not like ‘_e%’;
2、 聚合函数:
avg() sum() max() min() count()
3、 分组
select avg(),sum(),max(),min(),count(),deptno from emp group by deptno;
每个部门每个工种
select avg(),sum(),max(),min(),count(),deptno,job from emp group by deptno,job;
select avg(),sum(),max(),min(),count(),deptno from emp group by deptno having count(*)>=2;
七、 第七章
1、子查询概念:将一个查询块嵌套在另一个查询块的where子句或having短语的条件中的查询成为嵌套查询。被嵌套在内部的查询称为子查询。
2、带in的子查询
子查询往往是一个集合
Select job from emp where deptno=10;结果是一个集合
select * from emp where job in(select job from emp where deptno=10);
select * from emp where job not in(select job from emp where deptno=10);
4、 带有比较运算符的子查询
查询大于公司平均薪资的员工信息
select * from emp where sal>(select avg(sal) from emp );
5、 带有any和all的子查询
查询大于10号部门所有员工工资的员工信息
select * from emp where sal>all(select sal from emp where deptno=10);
八、 第八章
1、 等值连接:
查询每一个员工部门名称:
Select ename,dname from emp,dept where emp.deptno=dept.deptno;
2、 不等值连接
3、 自然连接:目标列中去掉相同列
4、 自连接:
select a.ename,b.ename from emp a, emp b where a.mgr=b.empno;
5、 内连接
Selecte name, dname from emp inner join dept on emp.deptno=dept.deptno;
6、 外连接
左外连接:selecte name,dname from emp left join dept on emp.deptno=dept.deptno;
右外连接:selecte name ,dname from emp right join dept on emp.deptno=dept.deptno;
查询scott的部门信息:
(内连接)Select ename, dept.* from emp join dept on emp.deptno=dept.deptno where ename=’scott’;
九、 第九章
十、 第十章
1、 什么是视图:视图是从一个或多个表(或视图)导出的表,根据用户观点所定义的数据结构就是视图。
2、 创建视图:
create or replace view 视图名
as select…….
3、 查询视图:
select * from v1;
selectename from v1;
4、 更新视图:
update v1 set sal=5000;
视图和表的数据都被更新
delete from v1 where 条件;
视图和表的数据都被删除
5、 修改视图:
create or replace v1 as select…….
alter view v1 as select ……..
6、 删除视图
drop view 视图名,视图名;
十一、 第十一章
1、 数学函数:
abs() sqrt() mod() pi() floor() ceiling() round() rand() power() sign() truncate()
2、 字符串函数:
char_length()
length()
concat()
concat_ws()
lower() upper()
left() right()
ltrim() rtrim() trim()
substring()
replace()
reverse()
3、 日期时间函数:
curdate() current_date()
curtime() current_time()
now() sysdate() localtime()
year() month() monthname()
4、 系统信息函数:
version() conection_id() database() user()
5、 条件判断:
select if(1>2,’aa’,’bb’);
十二、 第十二章
1 、索引的概念:
索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可提高数据库中特定数据的查询速度。
3、 建表时创建索引:
create table
(idint,
namevarchar(20),
index(name));
create table
(idint,
namevarchar(20),
unique index(name));
create table
(idint,
namevarchar(20),
index(name,id));
建好的表添加索引:
create index bknameidx on book1(bookname);
createunique index bknameidx on book1(bookname);
4、 删除索引
DROP INDEX index_name ON talbe_name
ALTER TABLE table_name DROP INDEX index_name
十三、 第十三章
1、存储过程就是一条或者是多条sql语句的集合
2、创建:
delimiter //
create procedure proc_name()
begin
insert into emp values(“xiaomi” , 18);
select * from emp;
end //
delimiter ;
3、调用存储过程:
Call procname();
5、 查看存储过程:
show procedure status;
show create procedure proc_name;
查看存储过程定义
6、删除存储过程
drop procedure proc_name;
十四、 第十四章
1、 概念?
2、 创建触发器
4要素:
监视地点:table
监视事件:insert update delete
触发时间:after、before
触发事件:insert、update、delete
create trigger trigger_name
trigger_timetrigger_event
ontb_name
for each row
begin
sql语句
end;
3、 查看触发器
show triggers;
4\ 删除触发器
drop trigger name;
十五、 第十五章
1、事务是访问并可能更新数据库中各种数据项的一个程序执行单元,一个事务可以是多组SQL语句。
事务的作用:
用于保证数据的一致性、防止出现错误数据。
2、特征:原子性、隔离性、一致性、持久性
3、开启事务:start transaction
4、提交事务:commit
5、事务的回滚:rollback
6、设置保存点:savepointaa;
7、回滚到保存点:rollback toaa;
十六、 第十六章
1、 账户管理:
创建用户:create user ‘tom’@’localhost’ identified by ‘123’;
修改密码:set password for ‘tom’@’localhost’=password(‘456’);
修改用户名:rename ‘tom’@’localhost’ to ‘toom’@’localhost’;
删除用户:drop user ‘tom’@’localhost’;
2、 权限管理:
列权限:insert update select
表权限:insert update select delete create drop alter all
库权限:insert update select delete create drop alter all create view ….
用户权限:create user
GRANTpriv_type [(column_list)] [, priv_type [(column_list)]] …
ON [object_type] {tbl_name | * | . | db_name.*}
TO user [IDENTIFIED BY [PASSWORD] ‘password’]
[, user [IDENTIFIED BY [PASSWORD] ‘password’]] …
[WITH with_option [with_option] …]
3、 收回权限:
REVOKE priv_type [(column_list)] [, priv_type [(column_list)]] …
ON {tbl_name | * | . | db_name.*}
FROM user [, user] …
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] …
十七、 第十七章
备份:mysqldump–u root –p stu>地址\文件名.sql
还原:mysql–u root –p stu<地址\文件名.sql
SQL语句分为:
1、 DQL(数据查询语言):由select语句完成,最复杂、最丰富的语句。
2、 DML(数据操作语言):由insert、update、delete三个关键字完成。
3、 DDL(数据定义语言):由create、alter、drop、truncate四个关键字完成。
4、 DCL(数据控制语言):由grant、revoke两个关键字完成。
5、 事务控制语言:由commit、rollback、savepoint三个关键字完成。
1、 什么是数据库?
database,数据库(database,DB)是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。
2、 DBMS数据库管理系统—软件
DBS、DBA
DBS包含DBMS和DB和DBA
3、数据表:是一系列二维数组的集合,用来存储数据和操作数据的逻辑结构。它由纵向的列和横向的行组成,行被称为记录,是组织数据的单位;列被称为字段,每一列表示记录的一个属性。
4、数据库的种类:
Oracle-甲骨文
应用广泛、功能强大,分布式数据库系统
“关系-对象”型数据库
MySQL-瑞典AB公司
快捷、可靠
开源、免费、与PHP组成经典的LAMP组合
SQL Server-微软
针对不同用户群体的五个特殊的版本
易用性好
DB2-IBM公司
应用于大型应用系统
二、 第二章
1、 mysql: MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。
2、 sql:结构化查询语言
DDL:create drop alter
DQL: select
DML: update delete insert
DCL: grant revoke commit rollback
3、 数据类型:
数值型:int\float\double
字符型:char varchar(20)
日期时间:date time datetime year
4、 登陆mysql
mysql–u root –h localhost–p密码回车
退出mysql:
exit \quit
显示全部数据库:
show databases;
创建数据库:
create database tbname;
使用数据库:
use tbname;
显示全部表:
show tables;
删除数据库:
drop database tbname;
三、 第三章
1、 建表:
create table 表名
(
字段名数据类型约束FF0C
……
);
2、 显示表结构:
desc表名;
3、 显示表的建表语句:
show create table 表名\G;
4、 删除表: drop table 表名;
5、 修改表:
alter table 语句;
语句包含:增加字段add sex char(2) first | after 字段名;
修改字段数据类型modify sex varchar(4);
修改字段名:change sex ssexvarchar(8);
修改表名:旧表名 rename to 新表名;
删除字段:drop sex;
修改原有字段位置:modify 字段名数据类型 first | after 字段名;
6、 添加数据:
insert into tbname values();
insert into tbname(字段名1,字段名2) values(值1,值2);
insert into tbname values(值),(值);
利用已有表的数据对新表进行添加:insert into tbnameselect * from 表;
7、 修改数据
update biaoming set 字段=值 where 条件;
8、 删除数据
delete from tbname where 条件;
删除全部数据:
delete from tbname;
truncate tbname;(重置计数)
四、 第四章
1、 自增auto_increment主键int
2、 主键 primary key
列级表级
3、 外键
主表从表
建立在从表上表级 foreign key(本表字段) references 主表(主键);
4、 非空 not null 列级
5、 唯一 unique 表级列级
6、 默认 default ‘’;
7、 检查约束 check
8、 对建好的表添加约束
主键:alter table tbname add primary key(id);
外键:alter table tbname add foreign key(id) references 主表(主键);
非空:alter table tbname modify 字段数据类型 not null;
默认:alter table tbname modify 字段数据类型 default ‘’;
唯一:alter table tbname add unique(字段);
9、 删除约束:
alter table tbname drop primary key;
alter table tbname drop foreign key 约束名;
alter table tbname modify 字段数据类型 null;
alter table tbname drop index 约束名;
五、 第五章
1、 查询语句:
select
from
where
group by
having
order by
limit
2、 查询列:
select * from tbname;
selectename,sal from emp;
3、 查询计算的值
查询试用期工资:
Select sal*0.8 from emp;
4、 去重
select distinct 列 from emp;
select distinct 列1,列2 from emp;
5、 重命名 as aa
6、 where 过滤数据
= <><= >= !=(<>)
7、 确定范围
sal between 1200 and 2000;===== sal>=1200 and sal<=2000
sal not between 1200 and 2000;===== sa<1200 orsal>2000
8、 确定集合
age in(18,20,25);=========== age=18 or age=20 or age=25;
age not in(18,20,25);=========== age!=18 and age!=20 and age!=25;
9、 空值查询
is null;
is not null;
多重条件查询
查询工资等于1500的经理 and
查询工资等于1500的员工和经理 or
10、 排序
order by ascdesc
多列进行排序:salasc,jobdesc;
11、 limit
limit 5; 取前5条记录
limit 0,5;取前5条记录
limit 2,5; 取第三条开始,取4条
六、 第六章
1、 模糊查询 like
select * from emp where ename like ‘_e%’;
select * from emp where ename not like ‘_e%’;
2、 聚合函数:
avg() sum() max() min() count()
3、 分组
select avg(),sum(),max(),min(),count(),deptno from emp group by deptno;
每个部门每个工种
select avg(),sum(),max(),min(),count(),deptno,job from emp group by deptno,job;
select avg(),sum(),max(),min(),count(),deptno from emp group by deptno having count(*)>=2;
七、 第七章
1、子查询概念:将一个查询块嵌套在另一个查询块的where子句或having短语的条件中的查询成为嵌套查询。被嵌套在内部的查询称为子查询。
2、带in的子查询
子查询往往是一个集合
Select job from emp where deptno=10;结果是一个集合
select * from emp where job in(select job from emp where deptno=10);
select * from emp where job not in(select job from emp where deptno=10);
4、 带有比较运算符的子查询
查询大于公司平均薪资的员工信息
select * from emp where sal>(select avg(sal) from emp );
5、 带有any和all的子查询
查询大于10号部门所有员工工资的员工信息
select * from emp where sal>all(select sal from emp where deptno=10);
八、 第八章
1、 等值连接:
查询每一个员工部门名称:
Select ename,dname from emp,dept where emp.deptno=dept.deptno;
2、 不等值连接
3、 自然连接:目标列中去掉相同列
4、 自连接:
select a.ename,b.ename from emp a, emp b where a.mgr=b.empno;
5、 内连接
Selecte name, dname from emp inner join dept on emp.deptno=dept.deptno;
6、 外连接
左外连接:selecte name,dname from emp left join dept on emp.deptno=dept.deptno;
右外连接:selecte name ,dname from emp right join dept on emp.deptno=dept.deptno;
查询scott的部门信息:
(内连接)Select ename, dept.* from emp join dept on emp.deptno=dept.deptno where ename=’scott’;
九、 第九章
十、 第十章
1、 什么是视图:视图是从一个或多个表(或视图)导出的表,根据用户观点所定义的数据结构就是视图。
2、 创建视图:
create or replace view 视图名
as select…….
3、 查询视图:
select * from v1;
selectename from v1;
4、 更新视图:
update v1 set sal=5000;
视图和表的数据都被更新
delete from v1 where 条件;
视图和表的数据都被删除
5、 修改视图:
create or replace v1 as select…….
alter view v1 as select ……..
6、 删除视图
drop view 视图名,视图名;
十一、 第十一章
1、 数学函数:
abs() sqrt() mod() pi() floor() ceiling() round() rand() power() sign() truncate()
2、 字符串函数:
char_length()
length()
concat()
concat_ws()
lower() upper()
left() right()
ltrim() rtrim() trim()
substring()
replace()
reverse()
3、 日期时间函数:
curdate() current_date()
curtime() current_time()
now() sysdate() localtime()
year() month() monthname()
4、 系统信息函数:
version() conection_id() database() user()
5、 条件判断:
select if(1>2,’aa’,’bb’);
十二、 第十二章
1 、索引的概念:
索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可提高数据库中特定数据的查询速度。
3、 建表时创建索引:
create table
(idint,
namevarchar(20),
index(name));
create table
(idint,
namevarchar(20),
unique index(name));
create table
(idint,
namevarchar(20),
index(name,id));
建好的表添加索引:
create index bknameidx on book1(bookname);
createunique index bknameidx on book1(bookname);
4、 删除索引
DROP INDEX index_name ON talbe_name
ALTER TABLE table_name DROP INDEX index_name
十三、 第十三章
1、存储过程就是一条或者是多条sql语句的集合
2、创建:
delimiter //
create procedure proc_name()
begin
insert into emp values(“xiaomi” , 18);
select * from emp;
end //
delimiter ;
3、调用存储过程:
Call procname();
5、 查看存储过程:
show procedure status;
show create procedure proc_name;
查看存储过程定义
6、删除存储过程
drop procedure proc_name;
十四、 第十四章
1、 概念?
2、 创建触发器
4要素:
监视地点:table
监视事件:insert update delete
触发时间:after、before
触发事件:insert、update、delete
create trigger trigger_name
trigger_timetrigger_event
ontb_name
for each row
begin
sql语句
end;
3、 查看触发器
show triggers;
4\ 删除触发器
drop trigger name;
十五、 第十五章
1、事务是访问并可能更新数据库中各种数据项的一个程序执行单元,一个事务可以是多组SQL语句。
事务的作用:
用于保证数据的一致性、防止出现错误数据。
2、特征:原子性、隔离性、一致性、持久性
3、开启事务:start transaction
4、提交事务:commit
5、事务的回滚:rollback
6、设置保存点:savepointaa;
7、回滚到保存点:rollback toaa;
十六、 第十六章
1、 账户管理:
创建用户:create user ‘tom’@’localhost’ identified by ‘123’;
修改密码:set password for ‘tom’@’localhost’=password(‘456’);
修改用户名:rename ‘tom’@’localhost’ to ‘toom’@’localhost’;
删除用户:drop user ‘tom’@’localhost’;
2、 权限管理:
列权限:insert update select
表权限:insert update select delete create drop alter all
库权限:insert update select delete create drop alter all create view ….
用户权限:create user
GRANTpriv_type [(column_list)] [, priv_type [(column_list)]] …
ON [object_type] {tbl_name | * | . | db_name.*}
TO user [IDENTIFIED BY [PASSWORD] ‘password’]
[, user [IDENTIFIED BY [PASSWORD] ‘password’]] …
[WITH with_option [with_option] …]
3、 收回权限:
REVOKE priv_type [(column_list)] [, priv_type [(column_list)]] …
ON {tbl_name | * | . | db_name.*}
FROM user [, user] …
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] …
十七、 第十七章
备份:mysqldump–u root –p stu>地址\文件名.sql
还原:mysql–u root –p stu<地址\文件名.sql
SQL语句分为:
1、 DQL(数据查询语言):由select语句完成,最复杂、最丰富的语句。
2、 DML(数据操作语言):由insert、update、delete三个关键字完成。
3、 DDL(数据定义语言):由create、alter、drop、truncate四个关键字完成。
4、 DCL(数据控制语言):由grant、revoke两个关键字完成。
5、 事务控制语言:由commit、rollback、savepoint三个关键字完成。
相关文章推荐
- mysql中Access denied for user 'root'@'localhost' (using password:YES)的解决办法(本人实操)
- Mysql的switch语句
- mysql关键字,建表时必须注意
- 关于mysql的union和ordery的组合使用
- MySQL 克隆(拷贝、复制)数据库
- windows7下启动mysql服务名无效
- 转 Multi-Master Replication Manager for MySQL MMM安装手册
- mysql:表注释和字段注释
- MySQL修改编码设置及乱码问题
- navicat工具把SQL Server数据库转换MySQL数据库
- mysql数据库安装过程
- MySQL强制性操作
- 源码包安装Mysql教程笔记
- mysql插入速度
- mysql悲观锁总结和实践
- Windows下更改MySQL数据库的存储位置
- Freeradius+mysql+daloradius简单安装配置
- MySQL Procedure(MySQL存储过程)[转]
- VS2013与MySql建立连接;您的项目引用了最新实体框架;但是,找不到数据链接所需的与版本兼容的实体框架数据库 EF6使用Mysql的技巧
- MySQL快速复制数据库的方法