您的位置:首页 > 数据库 > MySQL

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三个关键字完成。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: