定义期:可行性研究阶段/需求分析阶段;
开发期:概要设计阶段/详细设计阶段/编码实现阶段/测试阶段;
维护期:部署阶段/维护阶段。
MySQL属于数据库服务器存储的范畴。
数据库的作用就是按照一定的形式组织存放数据,目的是为便于操作数据,即增、删、改、查。数据库的发展历程为:网状数据库-->层次型数据库-->关系型数据库(RDBMS)-->非关系型数据库。
MySQL部署分服务器端和客户端,服务器端负责存储维护数据,客户端负责连接服务器端,对数据进行增删改查操作。
使用客户端连接服务器端时只需要执行命令:mysql.exe -h127.0.0.1 -P3306 -uroot -p
-h,host IP地址/域名 eg:127.0.0.1/localhost(永远指向自己本身的电脑)
-P,port 端口(此处为3306端口)
-u,user 用户名(root是管理员账户,在root下密码为空)
-p,password 密码
此命令也可以简写为:mysql -uroot
(1)定义数据结构(DDL)
drop database if exists jd; //丢弃数据库jd(存在的基础上)
create database jd; //创建数据库jd
use jd; //进入数据库jd
create table student ( id int, name varchar ( 8 ), sex varchar ( 1 ), score int ); //创建表student,包括id、name、sex、score四列
(2)操作数据(DML)
insert into student values('1','张三','M','99'); //向student表中插入一行数据
delete from user where uid="2"; //删除uid为2的行数据
update user set upwd="666666",isOnline="n" WHERE uid="3"; //修改uid为3的行密码为666666,在线状态为n
(3)查询数据(DQL)
select * from student; //查询student表中的所有数据
列类型指在创建数据表时,指定的列所能存储的数据类型。
字符串型和日期时间型 必须加引号
列约束的意思是MySQL对要插入的数据进行特定的验证,只有符合条件才允许插入(位于列类型之后)。
声明了主键约束的列,不允许插入重复,一个表中只能有一个主键约束,通常用于编号列,可加快数据查找速度。
自增列 Auto_increment:自动增长,声明了自增列,插入数据时只需要赋值为 null,就会获取最大值然后加1插入。声明了自增列也允许手动赋值。
声明了非空约束的列上禁止插入Null。
3. 唯一约束 unique
声明了唯一约束的列不允许插入重复的值,但是 unique 允许插入重复的 null 甚至多个 null,一个表中可以有多个唯一约束。
可以使用 default 关键字设置默认值,default使用时不加引号。
也称自定义约束,用户可以制定约束的条件。但是 MySQL 不支持检查约束,认为会极大影响数据插入数据,后期需要通过 JS 实现。
声明了外键约束的列称为外键列,这一列取值范围到另一个表的主键中,是为了让两个表建立关联。外键约束用法特殊,常用于创建表的最后一行,外键列要和对应的主键列的
列类型保持一致。格式如下:
格式:foreign key(外键列) references 另一个表(主键列)
eg:foreign key(familyId) references family(fid)
注:以下举例中 ,emp为员工表,dept为部门表
(1)查询特定的列
eg:查询所有员工的编号和姓名 select eid,ename from emp;
(2)查询所有的列
eg:查询员工表emp中所有信息 select * from emp;
(3)给列起别名
eg:查询所有员工的编号和姓名并起别名 select eid as 编号,ename as 姓名 from emp;
(4)显示不同的记录
eg:查询有哪些性别的员工 select distinct sex from emp;
(5)查询时执行计算
eg:查询所有员工姓名及年薪 select ename,salary*12 from emp;
(6)查询结果排序
eg:查询所有部门数据,结果按照编号升序排列 select * from dept order by did asc;
(7)条件查询
eg:查询编号为5的员工的数据 select * from emp where eid=5;
(8)模糊条件查询
eg:查询姓名中含有“e”的员工 select * from emp where ename like "%e%";
% 表示匹配任意个字符, _ 表示匹配一个字符,以上两个匹配符须结合like关键字使用
(9)分页查询
当查询的结果中数据太多,一次显示不完,就可以使用分页显示。分页查询需要两个已知条件:当前页码+每页数据量。语法:select * from emp limit 开始查询的值, 每页的数据量;
eg:假设每页显示五条数据,分别查出前三页
第1页:select * from emp limit 0,5;
第2页:select * from emp limit 5,5;
第3页:select * from emp limit 10,5;
注意:开始查询的值=(当前的页码-1)* 每页数据量
(1)聚合查询/分组查询
eg:通过员工编号查询员工数量 select count(eid) from emp;
eg:查询各部门员工 最高工资,员工数量,平均工资
select max(salary),count(*),avg(salary),deptId from emp group by deptId;
eg:查询所有员工出生的年份 select year(birthday) from emp;
(2)子查询
多个SQL命令的组合,把一个SQL命令的结果作为另一个命令的条件;
eg:查询高于平均工资的男员工
select * from emp where sec=1 && salary>(select avg(salary) from emp);
eg:查询和Tom同一年出生的员工
select * from emp where year(birthday)=(select year(birthday) from emp where ename="Tom") && ename!="Tom";
(3)多表查询
查询的列分布在不同的表中时,用多表查询(前提:表和表之间必须有关联);
eg:查询所有员工的姓名及部门名称
select emp.ename,dept.dname from emp,dept where emp.deptId=dept.did;select ename,dname from emp left outer join dept on deptId=did;
阅读量:2014
点赞量:0
收藏量:0