数据库学习笔记
图形化界(Navicate Premium)面操作数据库
1、工具---->命令行操作
2、选中某个表对象--->右击---->逆向表到模型---生成各表的关系模型
3、选中某个表对象-->右击-->对象信息--->DDL查看创建表的信息
Sql语言集数据定义语言,数据操纵语言,数据查询语言,数据控制语言于一体,可以完成数据库生命周期中的全部工作。
数据定义语言:完成创建,修改或删除数据库中的各种对象有create,drop,alter的命令。
数据查询语言:按各种条件查询数据库中的数据有select及其相关命令。
数据操纵语言:对已经从在的数据库对其进行数据的插入,删除和修改有insert,update,delete命令。
数据库控制语言:用于授权或收回访问数据库的某种特权,控制数据操纵事物的发生时间及效果,对数据库进行监视。
有grant,revoke,commit,rollback等命令。
一、数据库操作
1、启动数据库:net start mysql
2、关闭数据库:net stop mysql
3、打开数据库:mysql -u root -p123
4、显示所有数据库:show databases;
5、创建数据库:create database mydb1;
6、删除数据库:drop database mydb1;
二、单表操作:
1、选择并使用数据库:use mydb1
2、创建表:(宠物表)
宠物表:id名字、主人、种类,性别、出生和死亡日期。
create table pet(
id int primary key,
name varchar(20),
owner varchar(20),
species varchar(20),
sex char(1),
birth date,
death date
);
3、插入数据:
insert into pet values(1,’ergou’,’zx’,’dog’,’f’,’2013-09-06’ null);
4、查询所有内容
select * from pet;
5、删除一条数据:
delete from pet where id=1;
6、修改数据中的内容:
update pet set birth=’2015-09-09’ where name=’huahua’;
7、选择特殊行:
select * from pet where species=’dog’;
select * from pet where species=’dog’and sex=’f’;
select * from pet where species=’dog’ or ‘cat’;
select * from pet where birth>’2016-09-01’ and birth<’2014-09-09’; select * from pet where (species=’dog’and sex=’f’)or(species=’cat’and sex=’m’);
select * from pet where sex<>’f’;
select * from pet where sex!=’f’;
8、选择特殊列:
select name,species,birth from pet where species=’dog’ or species= ’cat’;
9、排序查询:order by
select name,birth from pet order by birth;
select name,birth from pet order by birth desc;
10、分组查询group by
select speices,sex from pet group by species,sex;
11、模糊查询:
select * from pet where owner like’z%’;
select * from pet where name like’%b’;
select * from pet where name like’%b%’;
12、计数行
select count(*) from pet;
select species,sex,count(*)from pet group by species,sex;
13、像表中添加一列:
alter table event add sex varchar(20);
14、删除表中一列:
alter table event drop sex;
15、修改表名:
rename table A to B;
学生表student
学号(sno)、姓名(sname)、性别(ssex)、年龄(sage)、所在系(sdept)student(sno,sname,ssex,sage,sdept)
主键:sno
课程表course
课程号(cno)课程名(cname)任课老师姓名(teacher)学分(credit)course(cno,cname,teacher,credit)
主键cno
学生选课表sc
学生号(sno)课程号(cno)成绩(geade)
sc(sno,cno,grade)
主键(sno,cno)外键(sno,cno)
教师表teacher
教师号(tno)姓名(tname)性别(tsex)年龄(tage)职称(title)工资(tsalary)奖金(tcomm)所在系(tdept)
teacher(tno,tname,tsex,tage,title,tsalary,tcomm,tdept)
主键:tno
教师授课表tc
教师号(tno)课程号(cno)
tc(tno,cno)
主键(tno,cno)外键(tno,cno)
部门信息表dept
部门号(deptno)、部门名称(dname)、部门地点(loc)
dept(deptno,dname,loc)
主键(deptno)
雇员信息表empt
雇员编号(empno)雇员姓名(ename)工作(job)经理编号(mgr)工资(sal)奖金(comm)雇佣日期(hiredate)部门号(deptno)emp(empno,ename,job,mgr,sal,comm,hiredate,dephno)
主键empno
外键deptno
工资等级表salgrade
等级号(grade)最低工资(lowsal)最高工资(highsal)
salgrade(grade,lowsal,highsal)
部门信息表dept
部门号(deptno)、部门名称(dname)部门地点(loc)
主键deptno
创建表:
例:创建学生选课表sc
CREATE TABLE `sc` (
`sno` char(8) NOT NULL,
`cno` char(8) NOT NULL,
`grade` int(11) DEFAULT NULL,
PRIMARY KEY (`sno`,`cno`),
KEY `cno_fk` (`cno`),
CONSTRAINT `cno_fk` FOREIGN KEY (`cno`) REFERENCES `course` (`cno`), CONSTRAINT `sno_fk` FOREIGN KEY (`sno`) REFERENCES `student` (`sno`) ) ENGINE=InnoDB DEFAULT CHARSET=gbk;
添加主键:PRIMARY KEY (`sno`,`cno`),
添加外键:KEY `cno_fk` (`cno`),
关联主外建:
CONSTRAINT `cno_fk` FOREIGN KEY (`cno`) REFERENCES `course` (`cno`), CONSTRAINT `sno_fk` FOREIGN KEY (`sno`) REFERENCES `student` (`sno`) 单表查询:
1、查询全体学生的学号、姓名、性别
select sno,sname,ssex from student;
2、查询学校所开全部课程的课程名和学分
select cname,credit from course;。