mysql知识点

Mysql 知识点总结

官网:社区版下载:http://downloads.mysql.com/archives/community/

1、什么是SQL

SQL:结构化查询语言.

Sql数据库备份:

数据库的备份是指将数据库转换成对应的sql文件。

数据库导出sql脚本的格式:

l mysqldump  -u用户名 -p密码 数据库名>生成的脚本文件路径

例如:

mysqldump  -uroot  -pwangyunhong  day0401>d:\day04.sql

以上备份数据库的命令中需要用户名和密码,即表明该命令要在用户没有登录的情况下使用

Sql数据库恢复:

数据库的恢复指的是使用备份产生的sql文件恢复数据库,即将sql文件中的sql语句执行就可以恢复数据库内容。因为数据库备份只是备份了数据库内容,所以备份产生的sql文件中没有创建数据库的sql语句,在恢复数据库之前需要自己动手创建数据库。

在数据库外恢复:

格式:mysql  -uroot  -p密码 数据库名 < 文件路径

例如:mysql  -uroot  -p1234 day0401<d:\day04.sql

注意:要求数据库必须先创建出来.

在数据库内恢复:

格式:source SQL脚本路径

例如:source d:\day0401.sql

注意:使用这种方式恢复数据,首先要登录数据库.

 

2、SQL的分类

DDL:数据定义语言.

    create,alter,drop...

DML:数据操纵语言

    insert,delete,update

DCL:数据控制语言

    if,grant

DQL:数据查询语言.

Select

DQL语句操作总结:

综合我们学习的查询相关关键字:select,from,where,group by,having,order by;它们的执行顺序是如下:

lfrom:首先执行from,找到要查询的表;

lwhere:判断条件,筛选符合条件所有记录;

lgroup by:根据之前操作对记录按照指定列进行分组

lhaving:对分组后的信息进行筛选;

lselect:选择所需要的列信息;

lorder by:对查询信息进行排序。

在SQL语言中,第一个被处理的子句是from字句,尽管select字句最先出现,但是几乎总是最后被处理。

3、修改表语句

3.1、单表约束:

    * 主键约束:primary key

    * 唯一约束:unique

* 非空约束:not null

3.2、修改表

  1. 修改表名称

格式:

1.alter table 表名 rename [to] 新表名;

2.rename table 表名 to 新表名;

  1. 添加字段(列) add

格式:alter table 表名 add [column] 字段描述;

例如:alter table user add column memo varchar(100);

 

  1. 修改字段(列)类型 modify

格式:alter table 表名 modify [column] 新字段描述

例如:alter table user modify memo int;

 

  1. 修改字段(列)名称 change

格式:alter table user change [column] 旧字段名称 新字段描述;

例如: alter table user change memo introduce varchar(100);

 

  1. 删除字段(列) drop

格式:alter table 表名 drop [column] 列名;

例如:alter table user drop introduce;

  1. 单表语句

4.1、模糊查询

Select  *  from  table  where  字段  like  ‘%  %’;

4.2、范围查询in

Select  *  from  table  where  字段  in  ();

 4.3、降序、升序

Select  *  from  table  order  by  字段  acs  (desc)  

4.4、聚合函数

Sum ()、avg()、main()、count()

4.4.1、求和

Select  sum(字段)  from  table

4.4.2、平均值

Select   avg(字段)  from table

4.5、分组(group by)

Select  *   from  table  group  by  字段

5、表间添加外键约束

CREATE TABLE category(

  cid VARCHAR(32) PRIMARY KEY ,

  cname VARCHAR(100) #分类名称

);

 

CREATE TABLE `products` (

  `pid` VARCHAR(32) PRIMARY KEY  ,

  `name` VARCHAR(40) ,

  `price` DOUBLE

);

 

//向products表中添加外键category_id

ALTER TABLE products ADD COLUMN category_id VARCHAR(32);

 

//进行外键约束

ALTER TABLE products ADD CONSTRAINT product_fk FOREIGN KEY (category_id) REFERENCES category (cid);

6、多表关联查询

向数据库中添加相应的表和数据:

题目:查询哪些分类的商品已经上架。

6.1、交叉连接查询

交叉连接查询(基本不会使用-得到的是两个表的乘积)。

SELECT  cname  FROM  category c  ,  products  p  WHERE  c.cid=p.category_id

6.2、内连接查询

使用的关键字 inner join  -- inner可以省略。Didtinct关键字,去除重复。

6.2.1、隐式内连接

SELECT  DISTINCT  cname  FROM  category c , products  p  WHERE  c.cid=p.category_id

6.2.2、显示内连接

SELECT  DISTINCT  cname  FROM  category  c INNER JOIN products p ON c.cid=p.category_id

6.3、外连接查询

题目:查询所有商品上架的个数。

6.3.1、左外连接

SELECT   cname  ,  COUNT(category_id)  FROM   category   c   LEFT  OUTER  JOIN products  p  ON  c.cid = p.category_id  GROUP BY  cname;

6.3.2、右外连接

SELECT   cname  ,  COUNT(category_id)  FROM   category   c   right  OUTER  JOIN products  p  ON  c.cid = p.category_id  GROUP BY  cname;

6.4、子查询

题目:查询“化妆品”上架商品详情

SELECT  *  FROM  products  WHERE  category_id  =  (SELECT  cid  FROM  category WHERE  cname  =  '化妆品')

6.5、分页查询

分页查询每个数据库的语句是不通用的.

MYSQL:使用limit的关键字.

* select * from product limit a,b;  --a:从哪开始,b:查询多少条.

Oracle:使用SQL语句嵌套.

SQLServer:使用top的关键字.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值