mysql实操总结(基础篇-下)

基础篇--SELECT语句详解
1)SELECT语句的基本格式:
SELECT 要查询的列名 FROM 表名字 WHERE 限制条件;

2)数学符号条件:
SELECT name, age FROM employee WHERE age > 25;

3)"AND"与"OR":
SELECT name, age FROM employee WHERE age < 25 OR age > 30;
      WHERE age > 25 AND age < 30;
      WHERE age BETWEEN 25 AND 30;

4)IN和NOT IN:
SELECT name, age, phone, in_dpt FROM employee WHERE in_dpt IN ('dpt3', 'dpt4');

5)通配符:
关键字LIKE在SQL语句中和通配符一起使用,通配符代表未知字符。SQL中的通配符是_和%,其中_代表一个未指定字符,%代表不定个未指定字符。

6)对结果排序:
默认情况下,ORDER BY 的结果是升序排列,而使用关键字ASC和DESC可指定升序或降序排列。
SELECT name, age, salary, phone FROM employee ORDER BY salary DESC;

7)SQL内置函数和计算:
函数名:COUNT SUM AVG MAX MIN
作用: 计数 求和 求平均 最大值 最小值

其中COUNT函数可用于任何数据类型(因为它只是计数),而SUM、AVG函数只能对数字类数据类型做计算,MAX和MIN可用于数值、字符串或日期时间数据类型。
SELECT MAX(salary) AS max_salary, MIN(salary) FROM employee;

8)子查询:
SELECT of_dpt, COUNT(proj_name) AS count_project FROM project WHERE of_dpt IN (SELECT in_dpt FROM employee WHERE name='Tom');

9)连接查询:
在处理多张表时,子查询只有在结果来自一张表时才有用。但如果需要显示两张表或多张表中的数据,这时必须使用连接(join)操作。
连接的基本思想是把两张或多张表当作一张新的表来操作。
SELECT id, name, people_num, FROM employee, department
WHERE employee.in_dpt = department.dpt_name
ORDER BY id
其中员工的id和name来自employee表,people_num来自department表。

基础篇--数据库及表的修改和删除
1)Ubuntu Linux下载文件:
$cd /home/shiyanlou/Desktop
$git clone https://github.com/shiyanlou/SQL5

2)删除数据库:
mysql > DROP DATABASE <数据库名>;

3)重命名一张表:
3.1. RENAME TABLE 原名 TO 新名;
3.2. ALTER TABLE 原名 RENAME 新名;
3.3. ALTER TABLE 原名 RENAME TO 新名;

4)删除一张表:
mysql > DROP TABLE 表名字;

5)表结构的修改:增加一列
5.1. ALTER TABLE 表名字 ADD COLUMN 列名字 数据类型 约束;
5.2. ALTER TABLE 表名字 列名字 数据类型 约束;
5.3.如果要把增加的列插入在指定位置(默认在表的最右边),则需要在语句的最后使用AFTER关键字("AFTER 列1"表示新增的列被放置在"列1"的后面)
mysql > ALTER TABLE employee ADD weight INT(4) DEFAULT 120 AFTER age;
5.4.如果新增在第1列则使用FIRST关键字
mysql > ALTER TABLE employee ADD test INT(10) DEFAULT 11 FIRST;

6)表结构的修改:删除一列
ALTER TABLE 表名字 DROP 列名字;

7)表结构的修改:重命名一列
ALTER TABLE 表名字 CHANGE 原列名 新列名 数据类型 约束;
注1:数据类型不能省略,否则重命名失败;
注2:当原列名和新列名相同时,指定新的数据类型或约束,就可以用来修改数据类型或约束;
注3:修改数据类型可能会导致数据丢失

8)表结构的修改:改变数据类型
ALTER TABLE 表名字 MODIFY 列名字 数据类型;

9)表的内容修改:修改表中某个值
UPDATE 表名字 SET 列1=值1, 列2=值2, WHERE 条件; 注:一定要有WHERE条件
mysql > UPDATE employee SET age=21, salary=3000 WHERE name='Tom';

10)表的内容修改:删除一行记录
DELETE FROM 表名字 WHERE 条件; 注:一定要有WHERE条件
mysql > DELETE FROM employee WHERE name='Tom';

基础篇--其他基本操作
1)索引:
索引是一种与表有关的结构,它的作用相当于书的目录,可以根据目录中的页码快速找到所需的内容。
1.1. ALTER TABLE 表名字 ADD INDEX 索引名(列名);
1.2. CREATE INDEX 索引名 ON 表名字(列名);
查询索引:SHOW INDEX FROM 表名字;

2)视图:
视图是从一张或多张表中导出来的表,是一种虚拟存在的表。
CREATE VIEW 视图(列a, 列b, 列c) AS SELECT 列1, 列2, 列3 FROM 表名字;
注:视图可以建立在多张表上,只需在SELECT语句中使用子查询或连接查询。

3)导入:
可以把一个文件里的数据保存进一张表。
LOAD DATA INFILE '文件路径和文件名' INTO TABLE 表名字;

4)导出:
SELECT 列1, 列2, INTO OUTFILE '文件路径和文件名' FROM 表名字;

5)备份:
备份与导出的最大区别:导出的文件只是保存数据库中的数据;而备份,则是把数据库的结构,包括数据、约束、索引、视图等全部另存为一个文件。
5.1.备份整个数据库:
mysqldump -u root 数据库名>备份文件名;
5.2.备份整个表:
mysqldump -u root 数据库名 表名字>备份文件名;

6)恢复:
6.1. $source /tmp/SQL6/MySQL-06.sql
6.2.导入到一个空的数据库test
mysql > CREATE DATABASE test;
退出MySQL
$mysql -u root test < bak.sql

猜你喜欢

转载自blog.csdn.net/zhaocen_1230/article/details/80769709