SQL基本运用

下列例子中用到的数据库表如下:

Websites表:

mysql> SELECT * FROM Websites;
+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 菜鸟教程      | http://www.runoob.com/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
| 7  | stackoverflow | http://stackoverflow.com/ |   0 | IND     |
+----+---------------+---------------------------+-------+---------+

access_log表:

mysql> SELECT * FROM access_log;
+-----+---------+-------+------------+
| aid | site_id | count | date       |
+-----+---------+-------+------------+
|   1 |       1 |    45 | 2016-05-10 |
|   2 |       3 |   100 | 2016-05-13 |
|   3 |       1 |   230 | 2016-05-14 |
|   4 |       2 |    10 | 2016-05-14 |
|   5 |       5 |   205 | 2016-05-14 |
|   6 |       4 |    13 | 2016-05-15 |
|   7 |       3 |   220 | 2016-05-15 |
|   8 |       5 |   545 | 2016-05-16 |
|   9 |       3 |   201 | 2016-05-17 |
+-----+---------+-------+------------+
9 rows in set (0.00 sec)

apps表:

mysql> SELECT * FROM apps;
+----+------------+-------------------------+---------+
| id | app_name   | url                     | country |
+----+------------+-------------------------+---------+
|  1 | QQ APP     | http://im.qq.com/       | CN      |
|  2 | 微博 APP | http://weibo.com/       | CN      |
|  3 | 淘宝 APP | https://www.taobao.com/ | CN      |
+----+------------+-------------------------+---------+
3 rows in set (0.00 sec)

 

1、常用重要命令

2、【select distinct】查询若干列不同的值

select distict column_name,column_name from table_name;

3、【where】过滤查询【and or between like in】关键词运用

select column_name,column_name from table_name where column_name operator value;

例如:文本字段加'',数值字段不加。

SELECT * FROM emp WHERE country='CN';//查询country为CN的数据

SELECT * FROM emp WHERE id=1;//查询id为1的数据

SELECT * from emp where sal > 2000 and sal < 3000;//查询sal值在2000和3000之间的数据

SELECT * from emp where sal > 2000 or comm > 500;//查询sal值大于2000,或者comm值大于500的数据

//查询sal值大于15且country为CN或USA的数据
SELECT * from emp WHERE sal > 15 AND (country='CN' OR country='USA');

SELECT * from emp where comm is null;//查询comm为null的数据

SELECT * from emp where sal between 1500 and 3000;//查询sal值在1500-3000范围内的数据

SELECT * from emp where sal not between 1500 and 3000;//查询sal值不在1500-3000范围内的数据

SELECT * from emp where sal in (5000,3000,1500);//查询sal值等于三个值中的一个的数据

SELECT * from emp where ename like 'M%';//正则表达式,查询名字以M开头的数据。

4、【order by】用于对结果集按照若干列值排序,默认升序,降序用【desc】

select column_name,column_name from table_name order by column_name,column_name asc|desc;

例如:

select * from Websites order by alexa;//查询Websites表所有数据,并按alexa升序返回。

select * from Websites order by country,alexa;//先按照country排序。若country相同 再按照alexa排列

order by A,B        这个时候都是默认按升序排列
order by A desc,B   这个时候 A 降序,B 升序排列
order by A ,B desc  这个时候 A 升序,B 降序排列
desc 或者 asc 只对它紧跟着的第一个列名有效,其他不受影响,仍然是默认的升序。

5、【insert into】插入新数据

共有两种插入数据的方式(注意values值若是文本字段,需要''单引号包含):

1、无需指定插入数据的列名,只需提供被插入的值。

insert into table_name values (val1,val2,val3,...);


2、需要指定列名及被插入的值。(未被插入的列为默认值)(id字段自动更新,不需插入)

insert into table_name (column1,column2,column3...) values (val1,val2,val3,...);


扩展:

insert into select 和select into from 的区别:

insert into scorebak select * from socre where neza='neza';//插入一行,要求表scorebak 必须存在

select *  into scorebak from score  where neza='neza';//也是插入一行,要求表scorebak 不存在

6、【update】更新语句

update table_name set column1=val1,column2=val2 where column3=val3;

例如:

update Websites set alexa='5000', country='USA' where name='菜鸟教程';


注意:WHERE 子句规定哪条记录或者哪些记录需要更新。若省略了 WHERE 子句,所有的记录都将被更新!

*在 MySQL 中可以通过设置 sql_safe_updates 这个自带的参数来解决,
*当该参数开启的情况下,你必须在update 语句后携带 where 条件,否则就会报错。

*set sql_safe_updates=1; 表示开启该参数

7、【delete】删除语句

delete from table_name where column1=val1 and column2=val2;

例如:

delete from Websites where name='百度' and country='CN';


注意:

WHERE 子句规定哪条记录或者哪些记录需要删除。如果您省略了 WHERE 子句,所有的记录都将被删除!

*可以在不删除表的情况下,删除表中所有的行。这意味着表结构、属性、索引将保持不变:

delete from table_name;

或

delete * from table_name;

接下篇“SQL高级运用”:https://blog.csdn.net/weichi7549/article/details/98496515

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值