常用sql语句

SQL语句的分类

DDL数据定义语言
DML数据操作语言
DCL数据控制语言
TCL事物控制语言
DQL数据查询语言

              

DDL常用语句

DLL操作数据库
create  database   库名;创建数据库
create  database  if  not exists  库名;判断该数据是否存在,存在就不创建,不存在;就创建
create database 库名  charcter  set  码表;创建数据库按指定的码表
show  databases;显示所有数据库
show create  database  库名;查看创建数据库的语句
alter  database  库名 default  character  set  码表;修改数据库的码表
drop databse 库名;删除指定数据库
use  库名;使用数据库
select  database();查看当前使用的数据库
DDL操作表
create table 表名(字段名1  类型1,字段名2  类型2...);创建表
desc  表名;查看表结构
show  create table 表名;显示创建表的sql语句
drop table 表名;删除表
drop  table if exists  表名;判断指定表是否存在,存在就删除,不存在就不删除
alter  table  表名  add  列名  数据类型;在指定表上面添加一个新的列
alter  table  表名 modify 列名 新的数据类型;修改指定列的数据类型
alter  table  表名  change  旧列名  新列名  数据类型;修改指定表的一个列名和数据类型
alter  table  表名  drop  列名;删除指定表的一个列
rename  table  表名 to  新表名;改变表的名字
alter  table  表名  charactes  set  码表;修改表的码表

            

 DML常用语句

insert into  表名(字段名1....)  values(值1......);向一个表插入指定数据
inset  into  表名1  select *  from  表名2;蠕虫复制,把一个表的数据全部复制的另一张表
update  表名  set  字段名=值  where  字段=值;按条件更新一个字段的值,如果不条件where更新整个列
delete  from 表名  where  字段名=值;删除一个表的指定数据,如果不添加条件删除全部数据
truncate  table   表名;删除整个表的数据

          delete和truncate的区别:delete删除整个表是把整个表的数据全部删除,truncate是把这个表删除,然后再创建一个一模一样的表。

    

  DQL常用语句

select * from 表名;查询指定表的所有列数据
select 字段名1,字段名2.... from  表名;查询指定表的指定列数据
select  distinct  字段名  from  表名;查询指定列的数据,去掉重复的

        

                DQL语句比较运算符:     <  ,  >  ,  <= , >=  ,  =   ,   !=

select  *  from  person where  age>67;查询age列的值大于67,person表的全部列
 select * from person  where  age != 54;查询age列的值不等于54,person表的全部列
select * from  person  where  age = 43;查询age列的值等于43,person表的全部列

                                         

                DQL逻辑运算符 :   and(&&)    ,   or(||)   ,  not(!)

select  *  from  person  where age=45  and  name =‘老王’;查询person表age等于45并且name等于老王的所有数据
select * from  person  where age != 54;查询person表age不等于54的所有数据
select * from  person  where age = 45 or name='老王';查询age等于45或者name为老王的所有数据

            

           DQL范围按范围查询:     between

select *  from  person  where  age  between  40 and 60;查询person表的所有列数据,条件age列的值要在40到60之间

           

          模糊查询:   like

select *  from  person where  name  like  '%王%';查询name列名字包含“王”字, person表所有列数据
select * from person where name  like   '_王';查询name列的值为两个字并且第二个值为“王”,person表所有列数据

           “ % ”  表示多个字符和0个字符        " _ " 表示一个任意字符

       

         降序与升序

select  *  from person order by age  desc;查询person表的所有数据,按age降序排列
select *  from  person  order by  age  asc;查询person表所有数据,按age升序排列

          desc 降序 , asc  升序

   

         聚合函数

select count(age)  from  person;查询person表一共有多少个age列,不包括值为null的age列
select  sum(age)   from  person;查询person表age列的所有总和
select  max(age)  from  person;查询person表age列的最大值
select  min(age)  from person;查询person表age列的最小值
select avg(age)  from person;查询person表age列所有值的平均值,不包括age值为空的
select  ifnull(age,0)  from person;查询person表age列的所有数据,如果有为null的用0代替

         聚合函数;   count  计算个数  ,  sum 计算总和 , max 获取最大值 , min 获取最下值 , avg 获取平均值 , ifnull  如果值为null用什么值替换

       

       group by  分组

select * from  表名 group by 列名;查询指定表,按指定列分组,值相同的为一组

          having与where的区别:

                             having是在分组后对数据进行过滤的, where是在分组前对数据进行过滤的

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

 

     limit

select * from 表名 limit  3,4;第一个数字是从哪一条数据开始查,第二个数字是要查询几条数据

       

    其他未知分类的sql语句

               数据库备份

                         mysql  -u用户名  -p密码  数据库名>文件路径

             还原格式

                          source  导入文件得路径

         

            数据库约束

primary  key设置主键
unique设置唯一
not  null设置不能为null
default设置默认值
foreign   key设置外键
auto_increment自增

                                             

       给已经有的表设置外键   

                         alter  table  表名  add  primary  key(列名);         

       删除主键

                     alter  table  表名   drop  primary  key;       

      新建表时添加外键

                 constraint  外键名  foreing  key(外键名)  refences  主表名(主表主键);

       删除外键

                alter  table  从表名 drop  foreign  key  外键名;

      外键的连级

  on  update  cascade   连级更新
  on  update  cascade连级删除

             

        隐式内连接

               select  列名  from  表名1,表名2  where  条件  ;

       显示内连接

               select  列名  from  表名1  inner  join  表名2  on  条件; 

                                注意 :inner可以省略不写,如果使用inner  join  那么条件不能使用where只能使用on    

    左外连接

              select  列名  form 表名1  left outer  join   表名1  on  条件 ;

   右外连接 

            select   列名  from 表名1 right outer join  表名2  on  条件;

     

 数据库的三范式

             第一范式:

                     数据库里面的表每一列都是不可再分的单元。

            第二范式:

                    一张表只描述一件事物,表中的每一列都依赖与主键。

            第三范式:

                     在第二范式的基础上,任何非主属性不依赖与其他非主属性。

                                                           

                                                                   

                        

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值