MySql基础巩固

 

1.什么是数据库

数据库就是一个文件系统,需要通过标准SQL语句才能访问.

2.什么是SQL

SQL,结构化查询语言

3.SQL的分类

DDLData Definition Language

数据定义语言,用来定义数据库对象:库、表、列等

create,alter,drop

DMLData ManipulationLanguage

数据操纵语言,用来定义数据库记录(数据)

insert,delete,update

DCLData Control Language

数据控制语言,用来定义访问权限和安全级别

    if,grant

DQLData Query Language

数据查询语言,用来查询记录(数据)  

select

4.操作数据库:

                  创建

                          格式:

                                   createdatabase 数据库名称;

                  删除

                          格式:

                                   dropdatabase 数据库名称;

                  常用的命令:

                          查看所有的数据库: show databases;

5.操作表:

                  创建表

                          格式:

                                   createtable 表名(字段描述,字段描述);

                                   字段描述:

                                            字段名称字段类型 [约束]

                                   例如:

                                            createtable user(

                                                     idint primary key auto_increment,

                                                     usernamevarchar(20)

                                            );

                                           

                                            createtable user1(

                                                     idint primary key auto_increment,

                                                     usernamevarchar(20)

                                            );

                  修改表

                          格式:

                                   altertable 表名 ....

                          修改表名:

                                   altertable 旧表名 rename to 新表名;

                                   例如:

                                            altertable user1 rename to user10;

                          添加字段:

                                   altertable 表名 add [column] 字段描述;

                                   例如:

                                            altertable user add password varchar(20);

                          修改字段名:

                                   altertable 表名 change 字段名称新字段描述;

                                   例如:

                                            altertable user change password pwd varchar(20);

                          修改字段描述:

                                   altertable 表名 modify 字段名称字段类型 [约束];

                                   例如:

                                            altertable user modify pwd int;

                          删除字段:

                                   altertable 表名 drop 字段名;

                                   例如:

                                            altertable user drop pwd;

                         

                  删除表

                          格式:

                                   droptable 表名

6.插入:

                  格式1:

                          insertinto 表名 values(字段值1,字段值2...,字段值n);

                          注意:

                                   默认插入全部字段,

                                   必须保证values后面的内容的类型和顺序和表结构中的一致

                                   若字段类型为数字,可以省略引号

                          例如:

                                   insertinto user values(1,'tom');

                                   insertinto user values('2','tom');

                                   insertinto user values('3');-- 错误的 

                 

                  格式2:

                          insertinto 表名(字段名,字段名1...) values(字段值,字段值1...);

                          注意:

                                   插入指定的字段

                                   必须保证values后面的内容的类型和顺序和表名后面的字段的类型和顺序保持一致.

                          例如:

                                   insertinto user (username,id) values('jack',4);

                                   insertinto user (username) values('jack',5);-- 错误的

                         

7.修改:

                  格式:

                          update表名 set 字段名=字段值,字段名1=字段值1... [where 条件];

                  例如:

                          updateuser set username='jerry' where username='jack';

8.删除:

                  格式:

                          deletefrom 表名 [where 条件];

                  例如:

                          deletefrom user where id = '2';

 

turncatdropdelete的区别

1.TRUNCATEDDL语句)

         删除表的数据,表结构还在,如果有自增种子重置为1,数据无法恢复,执行速度中等

2.DELETEDML语句)

         每次从表中删除一行(没有where条件则删除所有的数据),并且同时将该行的的删除操作记录在redoundo表空间中以便进行回滚(rollback)和重做操作,执行速度最慢,但是安全性最高

3.DROP

         直接删除表结构的文件和数据文件,执行速度最快

 

9.查询:

         格式:

                  select... from 表名 where 条件 group by 分组字段 having 条件 order by 排序字段 ase|desc

         注意:

                  wherehaving区别:

                          1.where是对分组前的数据进行过滤 ;having 是对分组后的数据进行过滤

                          2.where后面不能使用聚合函数,having可以

内连接:

                  格式1:显式的内连接

                           select a.*,b.* from a [inner] join b onab的连接条件

                  格式2:隐式的内连接

                           select a.*,b.* from a,b where ab的连接条件

外连接:

                  左外连接:

                           select a.*,b.* from a left [outer] joinb on 连接条件;

                                   先展示join左边的(a)表的所有数据,根据条件关联查询 join右边的表(b),符合条件则展示出来,不符合以null值展示.

                  右外连接:

                           select a.*,b.* from b right [outer]join a on 连接条件;

                                   先展示jion右边的表(a)表的所有数据,根据条件关联查询join左边的表(b),符合条件则展示出来,不符合以null值展示.

子查询:

                  一个查询依赖另一个查询.

 

10.约束:

主键约束(primary key) 

被修饰过的字段唯一非空(一张表只能有一个主键,这个主键可以包含多个字段)

                  方式1:建表的同时添加约束格式: 字段名称字段类型 primary key

                          create table pk01(

                                   id int primarykey,

                                   usernamevarchar(20)

                          );

                  方式2:建表的同时在约束区域添加约束格式: primary key(字段1,字段2)

                          create table pk01(

                                   id int,

                                   usernamevarchar(20),

                                   primary key(id)

                          );

方式3:建表之后,通过修改表结构添加约束格式: alter table 表名add primary key(字段名1,字段名2..)

                          create table pk02(

                                   id int,

                                   usernamevarchar(20)

                          );

                          alter table pk02 addprimary key(id,username);

唯一约束(unique)

被修饰过的字段唯一(一张表能有几个唯一字段允许为空,和主键作用类似)

非空约束(not null)

         被修饰过的字段不能为空

外键约束(foreign key)

         为了保证数据的有效性和完整性

         格式:

                  altertable 表名称 add foreign key(外键名称) references 表名称(主键);

         添加了外键约束之后有如下特点:

                  1.主表中不能删除从表中已引用的数据

                  2.从表中不能添加主表中不存在的数据

11.自增

         auto_increment

         要求:

                  1.被修饰的字段类型支持自增. 一般int

                  2.被修饰的字段必须是一个key 一般是primary key

12.给表起别名:

as 别名

 

13.排序查询:

                  1.查询所有的商品,按价格进行升序排序.

                          select * from productsorder by price (asc);

                  2.查询名称有新的商品的信息并且按价格降序排序.

                          select * from productswhere pname like '%%' order byprice desc;

 

14.聚合函数:

                  对一列进行计算

                  sum(),avg(),max(),min(),count();

                  1.获得所有商品的价格的总和:

                          select sum(price) fromproducts;

                  2.获得商品表中价格的平均数:

                          select avg(price) fromproducts;

                          -- round(,保留小数位)

                          selectround(avg(price),2) from products;

                  3.获得商品表中有多少条记录:

                          select count(*) fromproducts;

 

15.分组:

使用group by

                  1.根据cno字段分组,分组后统计商品的个数.

                          select cno,count(*)from products group by cno;

                  2.根据cno分组,分组统计每组商品的总数量,并且总数量>200;

                          select cno,sum(pnum)from products  group by cno;

                          select cno,sum(pnum)from products  group by cno havingsum(pnum)>200;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值