【 sql数据库常用指令】

sql数据库常用指令

创建库

create database  库名 

use 库名 //使用某个库

删除库


drop database 库名

创建表 (varchar)

CREATE TABLE table_name (column_name column_type)ENGINE=INNODB  DEFAULT CHARSET=utf8

添加数据


insert into 表名(字段1,字段2)values(值1,值2),values('值','值');

查询数据


select * from 表名  //查询表中的所有字段

select 字段名 as 别名,字段名 as 别名 from 表名 
关键字
  1. auto_increament 自增

  2. primary key 主键

  3. UNIQUE

  4. not null 值不可以为null

  5. default 可以设置默认值

  6. foreign key … references 表(字段)

  7. enum

删除表

DROP TABLE table_name ;

插入数据

INSERT INTO table_name ( field1, field2,...fieldN )
                       VALUES
                       ( value1, value2,...valueN ), ( value1, value2,...valueN );

动态插入列


alter table 表名 add tel varchar(11)

动态更新列

alter table 表名 modify 列名 数据类型

动态删除列

alter table 表名 drop 列名

动态修改字段名

alter table 表名  change 原字段 新字段 类型

动态 修改表名

 rename table 表名 to 新表名;

更新表数据命令

update 表名 set 字段名=值 [where 条件]

筛选

where

操作符描述
=等号,检测两个值是否相等,如果相等返回true
<>, !=不等于,检测两个值是否相等,如果不相等返回true
>大于号,检测左边的值是否大于右边的值, 如果左边的值大于右边的值返回true
<小于号,检测左边的值是否小于右边的值, 如果左边的值小于右边的值返回true
>=大于等于号,检测左边的值是否大于或等于右边的值, 如果左边的值大于或等于右边的值返回true
<=小于等于号,检测左边的值是否小于或等于右边的值, 如果左边的值小于或等于右边的值返回true

算数运算

/
-
*
%
+
or,
and
not
is null
is not null
in
not in

修改数据

UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]

删除数据

DELETE FROM table_name [WHERE Clause]

查询数据

SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]
like
_ 占位符 
% 任意字符  
DISTINCT
select DISTINCT cname from class;--distinct去重复的值

ORDER BY

排序 desc
	asc :默认
GROUP BY
分组
where....group by  字段 having......
null
select * from class where beizhu is null; --查询null值 使用的是is 关键字

select * from class where beizhu is not null;
limit
limit 起始值 ,每页记录

select * from  person limit 3,5
多表查询

语法1

select  字段1,字段2... from1,2... [where 条件]

笛卡尔积: A表中数据条数 * B表中数据条数 = 笛卡尔乘积.

语法2

SELECT 字段列表
  ``FROM 表1 INNER|LEFT|RIGHT JOIN 表2
ON 表1.字段 = 表2.字段;

判断查询 IF关键字,CASE 关键字

语法: IF(条件表达式,"结果为true",'结果为false');


SELECT account.*  ,IF(money>18000,'高','低') AS jibie FROM account 

语法  case:
SELECT
    CASE WHEN STATE = '1' THEN '成功'
         WHEN STATE = '2' THEN '失败'
         ELSE '其他' END 
FROM 表;
子查询

概念: 把一个查询嵌套在另一个查询当中

分类

  1. 标量子查询:返回单一值的标量,最简单的形式。
  2. 列子查询:返回的结果集是 N 行一列。
  3. 行子查询:返回的结果集是一行 N 列。
  4. 表子查询:返回的结果集是 N 行 N 列。

SELECT * FROM account WHERE (email) IN (SELECT email from s1 where id = 1)
SELECT * FROM account WHERE (account,money) IN (SELECT email,NAME FROM s1)

优化

  1. 使用连接(JOIN)来代替子查询

    SELECT * FROM t1
    WHERE t1.a1 NOT ``in` `(SELECT a2 FROM t2 )
    优化后:
    SELECT * FROM t1
    LEFT JOIN t2 ON t1.a1=t2.a2
    WHERE t2.a2 IS NULL 
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值