进入数据库:
mysql -u root
创建数据库:
CREATE DATABASE mysql_shiyan;
查看数据库:
show databases;
连接数据库:
use mysql_shiyan;
删除数据库:
DROP DATABASE 数据库名字;
查看数据表:
show tables;
新建数据表:
CREATE TABLE 表的名字
(
列名a 数据类型(数据长度),
列名b 数据类型(数据长度),
列名c 数据类型(数据长度)
)
重命名数据表:
RENAME TABLE 原名 TO 新名字; ALTER TABLE 原名 RENAME 新名; ALTER TABLE 原名 RENAME TO 新名;
删除数据表:
DROP TABLE 表名字;
数据表增加一列:
ALTER TABLE 表名字 ADD 列名字 数据类型 约束;
ALTER TABLE 表名字 ADD 列名字 数据类型 约束 AFTER 列1;(加入到列1后面,FIRST则为加入在第一列)
数据表删除一列:
ALTER TABLE 表名字 DROP 列名字;
数据表重命名一列:
ALTER TABLE 表名字 CHANGE 原列名 新列名 数据类型 约束;
数据表改变数据类型:
ALTER TABLE 表名字 MODIFY 列名字 新数据类型;
数据表修改表中某个值:
UPDATE 表名字 SET 列1=值1,列2=值2 WHERE name=”Tom”;
数据表删除一行记录:
DELETE FROM 表名字 WHERE name=”Tom” ;
数据类型:
| 数据类型 | 大小(字节) | 用途 | 格式 |
|---|---|---|---|
| INT | 4 | 整数 | |
| FLOAT | 4 | 单精度浮点数 | |
| DOUBLE | 8 | 双精度浮点数 | |
| ENUM | 单选,比如性别 | ENUM(‘a’,’b’,’c’) | |
| SET | 多选 | SET(‘1’,’2’,’3’) | |
| DATE | 3 | 日期 | YYYY-MM-DD |
| TIME | 3 | 时间点或持续时间 | HH:MM:SS |
| YEAR | 1 | 年份值 | YYYY |
| CHAR | 0~255 | 定长字符串 | |
| VARCHAR | 0~255 | 变长字符串 | |
| TEXT | 0~65535 | 长文本数据 |
插入数据:
INSERT INTO 表的名字( 列名a, 列名b, 列名c) VALUES (值1,值2,值3);
约束分类:
| 约束类型: | 主键 | 默认值 | 唯一 | 外键 | 非空 |
|---|---|---|---|---|---|
| 关键字: | PRIMARY KEY | DEFAULT | UNIQUE | FOREIGN KEY | NOT NULL |
基本的SELECT语句:
SELECT 要查询的列名(*号为查询全部) FROM 表名字 WHERE 限制条件;
1.数学符号查询:
SELECT name,age FROM employee WHERE age>25; (查出age>25的数据)
SELECT name,age,phone FROM employee WHERE name=’Mary’; (查出一个name=”Mary”的数据)
2.“AND”与“OR”:
SELECT name,age FROM employee WHERE age<25 or="" age="">30;(查出一个小于25或大于30,AND是与)25>
3. IN 和 NOT IN:
SELECT name,age,phone,in_dpt FROM employee WHERE in_dpt IN (‘dpt3’,’dpt4’); (查询 in_dpt 为 dpt3 或 dpt4的人)
SELECT name,age,phone,in_dpt FROM employee WHERE in_dpt NOT IN (‘dpt1’,’dpt3’); ( 查询 in_dpt 既不是 dpt1 又不是 dpt3 的信息)
4.通配符:
SQL中的通配符是 和 % 。其中 代表一个未指定字符,% 代表不定个未指定字符。
SELECT name,age,phone FROM employee WHERE phone LIKE ‘1101__’;(查询开头为1101,后面两位未定义的数据)
SELECT name,age,phone FROM employee WHERE name LIKE ‘J%’;(查询名字为J开头的)
5.对结果排序:
ORDER BY的结果是升序排列,而使用关键词ASC和DESC可指定升序或降序排序。
SELECT name,age,salary,phone FROM employee ORDER BY salary DESC;(按salary字段降序排列)
6.SQL 内置函数和计算:
| 函数名: | COUNT | SUM | AVG | MAX | MIN |
|---|---|---|---|---|---|
| 作用: | 计数 | 求和 | 求平均值 | 最大值 | 最小值 |
7.子查询:(嵌套)
SELECT cust_id
FROM orders
WHERE order_num IN (SELECT order_num
FROM orderitems
WHERE prod_id = “TNT2”); (嵌套查询)
8.连接查询:
SELECT id,name,people_num
FROM employee,department
WHERE employee.in_dpt = department.dpt_name
ORDER BY id;
或者使用JOIN ON
SELECT id,name,people_num
FROM employee JOIN department
ON employee.in_dpt = department.dpt_name
ORDER BY id;
视图:
CREATE VIEW 视图名(列a,列b,列c) AS SELECT 列1,列2,列3 FROM 表名字;
导入:
LOAD DATA INFILE ‘文件路径和文件名’ INTO TABLE 表名字;
导出:
SELECT 列1,列2 INTO OUTFILE ‘文件路径和文件名’ FROM 表名字;
备份:
mysqldump -u root mysql_shiyan(数据库名 表名字) > bak.sql(备份文件名);
恢复:
mysql -u root 数据库名 < bak.sql(备份的文件名);