SQL操作基本命令

SQL操作

一、基本命令

  1. 添加数据到数据库表

    语法:insert into 表名 (列名) values (值);
    ​
    #注意事项:
    a.插入数据时不允许插入半行或几列
    b.不能为自增列插入数据(mysql不会报错)
    c.值的个数、类型要与列保持一致
    d.缺省值的列使用default代替(设置了默认值的列插入数据时要用default关键字代替)
    e.插入数据不允许违反约束
    f.多个列或者多个值之间用英文的逗号进行分隔
    g.没有自增的情况下,前面的列名是可以省略不写的
  2. 一次性插入多条数据

     语法:
        insert into 表名 (列名) values (值列表),(值列表)...
  3. 将源表中的数据复制到新表中(新表必须要提前创建且新表的列和源表保持一致)

    语法:
        insert  into 新表名 (字段1,字段2..) select 字符1,字段2 ..  from 原表名;
  4. 将源表中的数据复制到新表中(新表不需要提前创建)

    语法: 
        create table 新表名 (select  字段1,字段2..  from 原表);
  5. 更新数据

    语法:
        update  表名  set  列1 = 值1,列2 = 值2...  where  更新条件
  6. 删除数据

    语法:
        delete from 表名  where 删除条件
    #注意:
    #有主外键关联关系的两张表,删除数据时先删除子表中的数据,再删除主表中的数据
  7. 截断表

    语法:
        truncate  table  表名
    #截断表会将数据库表中所有数据删除,且事务也无法恢复,慎用!
  8. delete 删除表中数据和truncate 截断表的区别?

    a. truncate在使用时,不能加where条件,但是delete在使用时可以加where条件
    b. truncate在使用时,速度更快且不回滚事务,删除的数据无法恢复,delete 在使用时,删除的数据是可以恢复的
    c. truncate 只能对表进行操作,delete 可以操作表或者视图
    d. truncate执行完毕后,不会记录到事务日志中,但是delete 删除数据后会记录到事务日志中
    e.在没有备份数据库表的情况下,不管是删除表中数据,或者是截断表中数据,都要慎用。
  9. MySQL中的运算符

    a.赋值运算符       =
    b.算术运算符       +    -   *   /     %
    c.逻辑运算符       and 并且    or 或者    not 非
    d.比较运算符      >     <     >=    <=    <>不等于
  10. 查询表中全部数据

语法:
    select  *  from  表名;
    #实际项目中,尽量避免使用 * 对表进行全表扫描
  1. 查询部分列

    语法:
        select 列1,列2..  from 表名;
  2. where条件查询

    语法:
    	select  列   from  表名   [where  查询条件]
    通常跟运算符组合使用
  3. 排序

    语法:
    	select 列 from 表名 [where 查询条件] [order by 排序的列 asc | desc]
    	# asc:升序(默认不写)
    	# desc:降序
  4. 分组查询

    语法:
    	select 列  from  表名 [where 查询条件] [group by 分组的列]
    	# 分组查询只可以查询被分组的列和函数
  5. 对分组后的数据进行过滤筛选

    语法:
    	select 列  from  表名 [where 查询条件] [group by 分组的列] [having 筛选过滤条件]
    # having只能用在分组之后
  6. in查询(通常代替 or 这个关键字)

    语法:
    	select 列 from  表名  [where 列  in (值1,值2..)]
  7. between and 筛选数据

    语法:
    	select 列 from 表名 [where 列 between 值1 and 值2]
    # 值1~值2 只能从小到大,反之则查询不出任何结果
  8. Like模糊查询(通常和通配符配合使用)

    语法:
    	select 列 from 表名 [where 列 like '表达式']
    # %:匹配任意多个字符
    # _:匹配单个字符
  9. 查询为null 或者 不为null

    语法:
    	select 列 from 表名 [where 列 is null]
    	select 列 from 表名 [where 列 is not null]
  10. 分页查询

    语法:
    	select 列 from 表名 [limit 起始行下标,页面大小]
    	# 起始行下标 = (当前页码-1)* 页面大小;
  11. 五个常用的聚合函数

    count(1):统计数量
    avg(字段):统计平均值
    sum(字段):求和
    max(字段):最大值
    min(字段):最小值
  12. 表连接(四种)

    语法:
    	select 列 from A inner join B on A.列 = B.列; #内连接
    	select 列 from A,B where A.列 = B.列  #等值连接
    	
    	
    	
    	select 列 from A left join B on A.列 = B.列; #左外连接  √
    	select 列 from A right join B on A.列 = B.列; #右外连接
    	
    	# 内连接:匹配两张表中相关联匹配的数据
    	# 左外连接:主表的数据全部匹配,子表只会匹配跟主表关联的数据,没有关联的数据显示null
  13. SQL优化

    1.尽量避免使用子查询
    2.查询数据时用in 代替 or
    3.获取记录数时尽量使用count(1)而不要使用count(*)
    4.查询哪列指定哪列,尽量避免使用 *
    5.减少不必要的排序,排序会消耗CPU的性能,影响SQL的响应时间
    6.尽量用表连接代替子查询
    7.尽量早过滤(能用where关键字筛选数据尽量先用where)
    8.避免类型转换
    9.大批量的数据查询时建议添加索引
    10.能使用between and 的情况下尽量使用
    11.模糊查询时,like不建议使用但又无法避免,能用单%情况下,不建议使用双%
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值