MySQL

数据库基础

创建数据库:

select * from table_name;//数据表查询数据

insert into table_name(属性1,属性2,属性3) values(值1,值2,值3)//数据表插入数据

//创建数据表

create table_name(

属性1 数据类型(数值),

属性2 数据类型(数值),

属性3 数据类型(数值)

);

约束:

约束类型:主键、默认值、唯一、外键、非空

主键:

主键名可以自定义,语法:CONSTRAINT dpt_pk PRIMARY KEY(属性1,属性

2,属性3)

主键可以由多列来共同标识,也可以由某一列单独标识

默认值:

当有DEFAULT约束的列,插入数据为空时,
将使用默认值.DEFAULT约束只会在使用INSERT语句时体现出来.

UNIQUE:

UNIQUE规定一张表中指定的一列的值必须不能有重复值,
即这一列每个值都是唯一的.

外键约束:

FOREIGN KEY 一个表可以有多个外键,每个外键必须参考另一个表的主键.
被外键约束的列,取值必须在它参考的列中有对应值

非空约束(NOT NULL):

在插入值时必须非空

示范:
create table table_name(
id int NOT NULL AUTO_INCREMENT,
cid int NOT NULL,
sid int NOT NULL,
name varchar(15) NOT NULL,
score varchar(15) NOT NULL,
PRIMARY KEY(id),
FOREIGN KEY (cid) REFERENCES course(cid),
FOREIGN KEY(sid) REFERENCES student(sid)
);

数据库查询基本操作

SELECT语句的基本格式为:

/*SELECT 要查询的列名 FROM 表名字 WHERE 限制条件;
例:*/ 
select name,age from employee;
数学符号条件:
1.WHERE限制条件可以有数学符号(=,<,>,>=,<=),例:
SELECT name,age FROM employee WHERE age>25;//筛选出age大于25的结果

或者查找一个名字为Mary的员工的name,age和phone:

SELECT name,age,phone FROM employee WHERE name = 'Mary';
2.AND 与 OR
//筛选出age小于25,或age大于30
SELECT name,age FROM employee WHERE age<25 OR age>30;
//筛选出age大于25,且age小于30
SELECT name,age FROM employee WHERE age>25 AND age<30;
//age >25 AND age <30 可以替换为 age between 25 AND 30
3.IN 和NOT IN

这两个关键词用于筛选"在"或"不在"某个范围内的结果,比如我们要查询在dpt3或dpt4的人:

SELECT name,age,phone,in_dpt FROM employee WHERE in_dpt IN('dpt3','dpt4');
SELECT name,age,phone,in_dpt FROM employee WHERE in_dpt NOT IN ('dpt1','dpt3');
4.通配符

关键词LIKE可用于实现模糊查询,常见于搜索功能中。和LIKE联用的通常还有通配符,代表未知字符.SQL中的通配符是**_%**,其中前者代表一个未指定字符,后者代表不定个未指定字符。例:

//只记得电话号码前四位数为1101,而后两位忘记了就可以用_ _替代
SELECT name,age,phone FROM employee WHERE phone LIKE '1101__';
//另一种情况,比如只记名字的首字母,又不知道名字长度,则用%通配符代替不定个字符
SELECT name,age,phone FROM employee WHERE name LIKE 'J%';
5.对结果进行排序

要使用到ORDER BY 排序关键词,默认情况下,ORDER BY的结果就是升序排列,使用关键词ASC 和DESC可指定升序或降序排序,比如,我们按salary降序排列,SQL语句为:

SELECT name,age,salary,phone FROM employee ORDER BY salary DESC;
6.内置函数和计算

SQL有五个内置函数,这些函数都对SELECT的结果做操作:

函数名:COUNT、SUM、AVG、MAX、MIN。COUNT函数可用于任何数据类型(因为它只是计数),而SUM、AVG函数都只能对数字类数据类型做计算,MAX和MIN可用于数值、字符串或是日期时间数据类型。

例:

SELECT MAX(salary) AS max_salary,MIN(salary) FROM employee;
//使用AS关键词可以给值重命名,比如最大值被命名为了max_salary
SELECT COUNT(*) FROM employee WHERE salary = 2500;
7.子查询

有时候必须所需的信息处理多个表才能获得。例如:想要知道名为"Tom"的员工所在部门做了几个工程。员工信息储存在employee表中,但工程信息储存在project表中。例:

SELECT of_dpt,COUNT(proj_name) AS count_project FROM project GROUP BY of_dpt
HAVING of_dpt IN
(SELECT in_dpt FROM employee WHERE name='Tom');
//第一个查询负责将查询结果按照of_dpt分类展示,第二个查询负责查询name='Tom'的该条数据的in_dpt.通过HAVING 条件来进行筛选出对应的信息
8.连接查询

处理多个表时,子查询只有在结果来自一个表时才有用。但如果需要显示两个表或多个表中的数据,这时就必须使用连接(join)操作。连接的基本思想是把两个或多个表当作一个新的表来操作:

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;
  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值