前端时间总结了MySQL的链接和数据的导入导出:Linux下导入SQL文件及MySQL常用命令
今天就直接整理一下SQL语句的常用命令,一下命令都是在MySQL登陆成功的状态下进行操作的。
显示当前数据库的版本号和日期 SELECT VERSION(),CURRENT_DATE();
SELECT VERSION(),CURRENT_DATE();
+-----------+----------------+
| VERSION() | CURRENT_DATE() |
+-----------+----------------+
| 5.7.19 | 2018-03-28 |
+-----------+----------------+
1 row in set (0.02 sec)
通过AS 关键字设置字段名 SELECT VERSION() AS version; //可设置中文,通过单引号
SELECT VERSION() AS version;
+---------+
| version |
+---------+
| 5.7.19 |
+---------+
1 row in set (0.00 sec)
通过SELECT 执行返回计算结果 SELECT (20+5)*4;
SELECT (20+5)*4;
+----------+
| (20+5)*4 |
+----------+
| 100 |
+----------+
1 row in set (0.02 sec)
如果觉得字段名不好看,可以这样写 SELECT (20+5)*4 AS result;
SELECT (20+5)*4 AS result;
+--------+
| result |
+--------+
| 100 |
+--------+
1 row in set (0.00 sec)
通过多行实现数据库的使用者和日期 最后加 ; 分号才算结束。
>SELECT
>USER()
>,
>NOW()
>;
通过一行显示数据库使用者和日期 SELECT USER();SELECT NOW();
逗号 , 和分号 ; 的区别
//使用逗号
SELECT USER(),NOW();
+----------------+---------------------+
| USER() | NOW() |
+----------------+---------------------+
| root@localhost | 2018-03-28 13:45:31 |
+----------------+---------------------+
1 row in set (0.00 sec)
//使用分号
SELECT USER();SELECT NOW();
+----------------+
| USER() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
+---------------------+
| NOW() |
+---------------------+
| 2018-03-28 13:45:35 |
+---------------------+
1 row in set (0.00 sec)
取消命令
\c
退出命令
quit;
exit;
切换/选择数据库 use 数据库名;
use databaseName;
Database changed
设置字符集编码 set names utf8;
set names utf8;
Query OK, 0 rows affected (0.00 sec)
查询数据库中的表 show tables;
show tables;
查询数据库表中的数据 SELECT * FROM 表名;
SELECT * FROM Websites;
+----+--------------+---------------------------+-------+---------+
| id | name | url | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1 | Google | https://www.google.cm/ | 1 | USA |
| 2 | 淘宝 | https://www.taobao.com/ | 13 | CN |
| 4 | 微博 | http://weibo.com/ | 20 | CN |
| 5 | Facebook | https://www.facebook.com/ | 3 | USA |
+----+--------------+---------------------------+-------+---------+
5 rows in set (0.01 sec)
创建数据库表 CREATE TABLE 表名(...);
CREATE TABLE users(
-> username VARCHAR(20),
-> sex CHAR(1),
-> birth DATETIME);
Query OK, 0 rows affected (0.23 sec)
添加主键
alter table 表名 add constraint 主键名称 primary key (主键字段1,主键字段2)
删除主键
alter table 表名 drop constraint 主键名称
修改字段名
alter table 表名 rename column A to B
修改字段类型
alter table 表名 alter column 字段名 type not null
增加字段
alter table 表名 add 字段名 type not null default 0
删除字段
alter table 表名 drop column 字段名;
显示表结构 DESCRIBE 表名;
DESCRIBE users;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| username | varchar(20) | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
| birth | datetime | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.20 sec)
插入数据 INSERT INTO 表名 (字段1,字段2,字段3) VALUES ('数据1','数据2','数据3'); 数据和字段一一对应。
INSERT INTO users (username,sex,birth) VALUES ('Lee','x',NOW());
Query OK, 1 row affected (0.07 sec)
筛选指定数据 SELECT * FROM 表名;
SELECT * FROM users;
+----------+------+---------------------+
| username | sex | birth |
+----------+------+---------------------+
| Lee | x | 2018-03-28 14:40:21 |
+----------+------+---------------------+
1 row in set (0.00 sec)
修改指定数据 UPDATE 表名 SET 要修改的字段='数据' WHERE 字段='数据';
UPDATE users SET sex='1' WHERE username='Lee';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
删除指定数据 DELETE FROM 表名 WHERE 字段='数据';
DELETE FROM users WHERE username='Lee';
按指定的数据排序
SELECT * FROM users ORDER BY birth DESC;
删除指定的表
DROP TABLE users;
删除指定的数据库
DROP DATABASE book;