简述 MySQL基本操作
SQL语句分类
- Data Definition Language (DDL):
CREATE, ALTER, DROP - Data Manipulation Language (DML):
SELECT, INSERT, UPDATE, DELETE - Data Control Language (DCL):
GRANT, REVOKE
MySQL执行顺序
(8) SELECT (9) DISTINCT <select_list>
(1) FROM <left_table>
(3) <join_type> JOIN <right_table>
(2) ON <join_condition>
(4) WHERE <where_condition>
(5) GROUP BY <group_by_list>
(6) WITH {CUBE|ROLLUP}
(7) HAVING <having_condition>
(10)ORDER BY <order_by_list>
(11)LIMIT <limit_number>
在如图11个步骤中,最先执行的是FROM操作,最后执行的是LIMIT操作。每个操作者都会产生一张虚拟表,该虚拟表作为一个处理的输入。这些虚拟表对用户是透明的,只有最后一步生成的虚拟表才会返回给用户。
MySQL数据类型
- 数值类型: BIT,BOOLEN,INT, FLOAT, DOUBLE, DECIMAL, …
- 日期和时间类型: DATE, DATETIME, TIME, TIMESTAMP, YEAR;
- 串数据类型:CHAR, VARCHAR(可变长), TEXT(速度慢), LONGTEXT, …
MySQL基本语句
- mysql中不区分大小写(命令,表名,列名字),也可以设置大小写敏感;
- mysql结束命令用 ; 或者 \g 结束;
1. 连接Mysql
- 连接到本机上的Mysql
格式:mysql -u root -p,输入密码;
- 连接到远程主机上的Mysql
格式:mysql -h 主机地址 -u 用户名 -p 用户密码
mysql> mysql -h110.110.110.110 -u root -p 123;
加上端口号信息:
mysql> mysql -u用户名 -p用户密码 -h用户IP --port=3308;
2. 退出Mysql命令
mysql> EXIT;(或者QUIT;)
3. 获得帮助
mysql> HELP select; (或\h)
4. 显示数据库
mysql> SHOW databases;
5. 创建数据库
mysql> CREATE TABLE database 数据库名字;
6. 删除数据库
mysql> DROP database 数据库名字;
7. 选择数据库
mysql> USE 数据库名字;
8. 显示表
mysql> SHOW tables;
9.描述表
mysql> DESCRIBE(DESC) 表名;
mysql> SHOW COLUMNS FROM 表名;
10.创建/删除表
mysql> CREATE TABLE {IF NOT EXISTS) course(id INT, coursenmae VARCHAR(100), length INT);
mysql> DROP TABLE (IF EXISTS) course;
11.修改表格
重命名表
mysql> ALTER TABLE course RENAME cour;
添加列
mysql> ALTER TABLE course ADD link VARCHAR(100);
删除列
mysql> ALTER TABLE course DROP COLUMN link;
修改列数据类型
mysql> ALTER TABLE course MODIFY coursename VARCHAR(10);
重命名列
mysql> ALTER TABLE course CHANGE COLUMN coursename cn VARCHAR(100);
12.插入数据
mysql> INSERT INTO 表名 VALUES (值1,值2,...);
mysql> INSERT INTO 表名 (列1,列2,...) VALUES (值1,值2,...);
13.查询数据
mysql> SELECT 列名(或*) FROM 表名;
按条件查询:后面加上WHERE条件;
14.删除记录
mysql> DELETE FROM 表名 WHERE 条件;
mysql> DELETE * FROM 表名;
15.更新记录
mysql> UPDATE 表名 SET 列名=新值 WHERE 条件;
16.LIKE子句
mysql> SELECT * FROM 表名 WHERE tb_name LIKE "%_name";
与“=”类似的功能,但是可以进行模糊匹配;
17.ORDER BY进行排序
SELECT * FROM 表名 ORDER BY 列名[,列名] ASC[DESC];
18.GROUP BY分组
GROUP BY 根据一个或多个列对结果进行分组,并可以在分组的列上可用COUNT,SUM,AVG等函数;
SELECT colname1, function(colname2) FROM tablename
WHERE colname OPERATOR value
GROUP BY colname1;
19.JOIN联合
- INNER JOIN:获取两个表都匹配的记录,也叫等值连接;
SELECT a.id,a.au.b.count FROM tb1 a join tb2 b ON a.au=b=au;
等价于
SELECT a.id,a.au,b.count FROM tb1 a, tb2 b WHERE a.au=b.au;
- LEFT JOIN(左连接):获取左表所有记录,及时右表中没有对应的记录(NULL填补);
- RIGHT JOIN(右连接):与左连接相反;
20.NULL值处理
IS NULL, IS NOT NULL,
<=>比较操作符,两侧均为NULL时返回true;
21 正则表达式
使用REGEXP进行正则表达式匹配;
常用符号:^,$,.,[],[^],|,*,+,{n},{n,m}
SELECT name FROM tb WHERE name REGEXP '^st';
22.SHOW的其它用法
- SHOW STATUS,用于显示广泛的服务器状态信息;
- SHOW CREATE DATABASE和SHOW CREATE TABLE,分别用来显示创建特定数据库或表的MySQL语句;
- SHOW GRANTS,用来显示授予用户的安全权限;
- SHOW ERRORS和SHOW WARNINGS,用来显示服务器错误和警告消息;