查
数据查询的基本语法
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]