mysql 简单使用进阶(对表的增删改查要)

数据查询的基本语法
SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[OFFSET M] [LIMIT N]

在这里插入图片描述

实例

create table xxxx (time date,name char(30), shuzi int(10),primary key ())
insert into xxxx (time, name, shuzi) values (2018-09-01,'a',1),(...),.. //多弄几条

select * from xxxx where time='2018-09-01' ;		//查看时间等于 2018-09-01 的数据
select * from xxxx where time like '2018-09%' ;		//查看时间在 2018-09 这个月份的数据
select * from xxxx where shuzi < 3 ;		//查看 shuzi 小于3的所有数据
select * from xxxx limit 10 offset 3 ;			//查看10条数据,忽略前三条,从第四条开始

排序

语法
SELECT field1, field2,..... FROM table_name1, table_name2...
ORDER BY field1, [field2...][ASC [DESC]]
asc 是升序, desc 是降序。

分类统计

语法
SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;

实例

MariaDB [houziyu]> select * from student ;
+----+--------------+-----+------------+
| id | name         | age | time       |
+----+--------------+-----+------------+
|  1 | houge        |  20 | 2018-01-01 |
|  2 | liyiyang     |  24 | 2018-01-02 |
|  3 | zoulihui     |  31 | 2018-01-03 |
|  5 | sanmao       |  10 | 1973-07-06 |
|  6 | zhangguorong |  35 | 1974-07-06 |
|  8 | liudehua     |  64 | 1954-07-06 |
|  9 | xietingfeng  |  35 | 1982-07-06 |
| 11 | liyiyang     |  24 | 2018-09-03 |
| 12 | qiqi         |  35 | 1977-07-06 |
+----+--------------+-----+------------+

MariaDB [houziyu]> select name,count(*) from student group by name;

+--------------+----------+
| name         | count(*) |
+--------------+----------+
| houge        |        1 |
| liudehua     |        1 |
| liyiyang     |        2 |
| qiqi         |        1 |
| sanmao       |        1 |
| xietingfeng  |        1 |
| zhangguorong |        1 |
| zoulihui     |        1 |
+--------------+----------+
MariaDB [houziyu]> select time,count(*) as stu_num from student group by time;
+------------+---------+
| time       | stu_num |
+------------+---------+
| 1954-07-06 |       1 |
| 1973-07-06 |       1 |
| 1974-07-06 |       1 |
| 1977-07-06 |       1 |
| 1982-07-06 |       1 |
| 2018-01-01 |       1 |
| 2018-01-02 |       1 |
| 2018-01-03 |       1 |
| 2018-09-03 |       1 |
+------------+---------+

统计

MariaDB [houziyu]> select name, SUM(age) as count from student group by name with rollup;
+--------------+-------+
| name         | count |
+--------------+-------+
| houge        |    20 |
| liudehua     |    64 |
| liyiyang     |    48 |
| qiqi         |    35 |
| sanmao       |    10 |
| xietingfeng  |    35 |
| zhangguorong |    35 |
| zoulihui     |    31 |
| NULL         |   278 |
+--------------+-------+
MariaDB [houziyu]> select coalesce(name,'TOtal Age'),sum(age) from student group by name with rollup;
+----------------------------+----------+
| coalesce(name,'TOtal Age') | sum(age) |
+----------------------------+----------+
| houge                      |       20 |
| liudehua                   |       64 |
| liyiyang                   |       48 |
| qiqi                       |       35 |
| sanmao                     |       10 |
| xietingfeng                |       35 |
| zhangguorong               |       35 |
| zoulihui                   |       31 |
| TOtal Age                  |      278 |
+----------------------------+----------+

语法
UPDATE table_name SET field1=new-value1,field2=new-value2
[WHERE clause];

实例:

update xxxx set name='ls' , shuzi=10 where time='2018-09-01' ;
//修改time=2018-09-01数据的name 与 shuzi 的值。

修改字段

添加字段
语法
ALTER TABLE 表名称 ADD 字段名 类型 是否为空 默认...

MariaDB [houziyu]> alter table student add sex enum('M','F');
MariaDB [houziyu]> select * from student ;
+----+--------------+-----+------------+------+
| id | name         | age | time       | sex  |
+----+--------------+-----+------------+------+
|  1 | houge        |  20 | 2018-01-01 | NULL |
|  2 | liyiyang     |  24 | 2018-01-02 | NULL |
|  3 | zoulihui     |  31 | 2018-01-03 | NULL |
|  5 | sanmao       |  10 | 1973-07-06 | NULL |
|  6 | zhangguorong |  35 | 1974-07-06 | NULL |
|  8 | liudehua     |  64 | 1954-07-06 | NULL |
|  9 | xietingfeng  |  35 | 1982-07-06 | NULL |
| 11 | liyiyang     |  24 | 2018-09-03 | NULL |
| 12 | qiqi         |  35 | 1977-07-06 | NULL |
+----+--------------+-----+------------+------+

删除字段
语法
ALTER TABLE 表名称 DROP 字段名

MariaDB [houziyu]> alter table student drop sex;
MariaDB [houziyu]> select * from student ;
+----+--------------+-----+------------+
| id | name         | age | time       |
+----+--------------+-----+------------+
|  1 | houge        |  20 | 2018-01-01 |
|  2 | liyiyang     |  24 | 2018-01-02 |
|  3 | zoulihui     |  31 | 2018-01-03 |
|  5 | sanmao       |  10 | 1973-07-06 |
|  6 | zhangguorong |  35 | 1974-07-06 |
|  8 | liudehua     |  64 | 1954-07-06 |
|  9 | xietingfeng  |  35 | 1982-07-06 |
| 11 | liyiyang     |  24 | 2018-09-03 |
| 12 | qiqi         |  35 | 1977-07-06 |
+----+--------------+-----+------------+

修改字段名
语法
ALTER TABLE 表名称 change 旧字段名 新字段名 类型 是否为空 默认值;
实例:

MariaDB [houziyu]> alter table student change sex gender char not null default 'x';
MariaDB [houziyu]> desc student;
+--------+----------+------+-----+---------+----------------+
| Field  | Type     | Null | Key | Default | Extra          |
+--------+----------+------+-----+---------+----------------+
| id     | int(11)  | NO   | PRI | NULL    | auto_increment |
| name   | char(32) | NO   |     | NULL    |                |
| age    | int(3)   | NO   |     | NULL    |                |
| time   | date     | YES  |     | NULL    |                |
| gender | char(1)  | NO   |     | x       |                |
+--------+----------+------+-----+---------+----------------+

修改字段类型
语法
ALTER TABLE 表名称 MODIFY 字段名 类型 是否为空 默认值;

MariaDB [houziyu]> alter table student add sex enum('M','F');

//忘记设置字段不能为空,于是修改。

MariaDB [houziyu]> alter table student modify sex enum('M','F') not null;
MariaDB [houziyu]> desc student;
+-------+---------------+------+-----+---------+----------------+
| Field | Type          | Null | Key | Default | Extra          |
+-------+---------------+------+-----+---------+----------------+
| id    | int(11)       | NO   | PRI | NULL    | auto_increment |
| name  | char(32)      | NO   |     | NULL    |                |
| age   | int(3)        | NO   |     | NULL    |                |
| time  | date          | YES  |     | NULL    |                |
| sex   | enum('M','F') | NO   |     | NULL    |                |
+-------+---------------+------+-----+---------+----------------+

删除表
DROP TABLE 表名

删除数据
语法
DELETE FROM table_name [WHERE clause]

猜你喜欢

转载自blog.csdn.net/xphouziyu/article/details/82822722