MySQL常用命令:
MySQL常用命令:
--查看数据库实例
show databases;
--使用数据库实例
use +数据库实例名称
--查看数据库实例中的表
show tables;
--查看表的结构(表中的字段名称/类型等相关信息)
desc +表名
SQL-结构化查询语言
CREATE DATABASE mytest;--创建数据库实例mytest
DROP DATABASE mytest;--删除数据库实例mytest
--创建表
CREATE TABLE studentInfo (
stuID INTEGER UNSIGNED PRIMARY KEY AUTO_INCREMENT,
stuName VARCHAR(10) NOT NULL DEFAULT 'unknow',
sex CHAR(1) NOT NULL,
birthday DATE,
school VARCHAR(45)
);
--删除表
DROP TABLE studentInfo;
作业:
创建宠物表,要有宠物编号,宠物名,类型,年龄,主人名
CREATE TABLE pet (
pid INTEGER PRIMARY KEY AUTO_INCREMENT,
pName VARCHAR(10) NOT NULL DEFAULT 'unknown',
pType VARCHAR(6),
pAge INTEGER,
pOwnner VARCHAR(10)
);
向pet表添加数据
添加语句:
INSERT INTO pet (pName,pType,pAge,pOwnner) VALUES('小白','狗',3,'小新');
INSERT INTO pet (pName,pType,pAge,pOwnner) VALUES('大黄','狗',2,'张三'),('小班','猫',1,'李四');
INSERT INTO pet VALUES(0,'Mary','狗',2,'张大民');
INSERT INTO pet (pType,pAge,pOwnner) VALUES('狗',3,'小新');--pid为自动增长;pName不填数据时,默认值为unknown
修改语句:
UPDATE pet SET pType='猫'; --修改表中pType列所有行数据
UPDATE pet SET pType='狗' WHERE pName='大黄';
UPDATE pet SET pType='狗' WHERE pid=4;
UPDATE pet SET pName='小绿',pType='变色龙' WHERE pid=5;
执行sql脚本中的所有SQL语句
source +脚本路径名称
删除语句:
DELETE FROM pet;--删除表中的所有数据
DELETE FROM pet WHERE pid=9;
查询语句:
SELECT p_id,p_name,quantity,cost,quantity*cost FROM products;
SELECT p_id AS 产品编号,p_name 产品名称,quantity 库存数量,cost 单件成本,quantity*cost 总成本 FROM products;
查看员工的姓名,工作级别及其年薪。
SELECT e_name 员工姓名,job_level 工作级别,e_wage*12 年薪 FROM employee;
IN
select e_name from employee where dept_id in ('1001','1002');--IN后跟小括号,其中放置数据范围列表,数据值之间用逗号隔开
LIKE
SELECT e_name,dept_id FROM employee WHERE e_name LIKE '王_';--下划线表示一个占位字符
SELECT e_name,dept_id FROM employee WHERE e_name LIKE '王__';
SELECT e_name,dept_id FROM employee WHERE e_name LIKE '王%';--%表示零个或多个占位字符
排序
SELECT e_name,e_wage FROM employee WHERE job_level=2 ORDER BY e_wage ASC;--升序
SELECT e_name,e_wage FROM employee WHERE job_level=2 ORDER BY e_wage DESC;--降序
SELECT p_id,p_name,cost,quantity FROM products WHERE dept_id=1003 ORDER BY cost DESC,quantity ASC;
LIMIT:
SELECT e_name,e_wage FROM employee ORDER BY e_wage DESC LIMIT 1,3;
--LIMIT第一个数表示结果集的偏移量,第二数表示从结果集取出的数据数
分组:通常用来显示一些统计数据,当我们按着表中某一个字段进行分组时,那么认为该字段中相同的数据行是同一组成员。
注意:
1 我们要查看的字段,只能是那些用于分组的字段。
2 如果要查看分组字段以外的信息,只能把这些字段放置到聚合函数(count()/max()/min()/avg()/sum())中。
分组条件Having:
这里整张表的条件加在where后面,组条件加在having后面。
多表查询
注意:n张表在查询时要有n-1个关系字段相等。