day1-mysql(上)
-
数据库概述
-
Mysql数据库概述
-
Mysql安装与卸载
-
Mysql基本命令
-
SQL入门
mysql常用命令
系统命令(以管理员身份运行)
#启动服务 net start mysql #停止服务 net stop mysql #进入mysql命令行 mysql -uroot -p123456 #退出mysql命令行 exit #修改密码 mysqladmin -uroot -p123456 password root
Mysql常用命令
--显示数据库实例 show databases; --创建数据库实例 create database mydb; --使用数据库实例 use mydb; --显示实例中所有数据库表 show tables;
SQL语句
结构化查询语言,一门关系型数据中通用的操作语言,语法结构类似英语口语,sql语句通常划分为三类
-
DDL
-
DML
-
DCL
DDL
创建表:
create table 表名称(
列名称 数据类型 [约束信息]
....
)
/* 创建用户表,表中包含用户id,用户名,密码 */ create table tbuser( id int, username varchar(10), password varchar(20) ); --查看表结构 desc tbuser; --向表中新增level列是int类型 alter table tbuser add level int; --修改表中列的(将level列的名称改变为dengji) alter table tbuser change level dengji int; --删除表 drop table tbuser;
DML语句
--向表中插入一条数据 insert into tbuser(username,password) values('softeem','123456'); --批量插入数据 insert into tbuser values(1,'rose','666'),(2,'jack','8888'),(3,'tom','999'); --蠕虫复制 insert into tbuser select * from tbuser; --查询表中所有数据 select * from tbuser --修改所有id为null的列为0 update tbuser set id=0 where id is null; --修改多列数据 update tbuser set password='admin',username='admin' where id=1; --删除id为0的所有数据 delete from tbuser where id=0;
更为严格的表创建
创建一个用户表,包含ID,用户名,密码;要求id不能重复,并且要求id列自动递增,要求密码有默认值123456?
-
主键约束
-
自动递增
-
列的默认值
约束
约束是维护数据完整型的一种操作,在数据库中维护数据完成性操作中包含以下解决方案:
-
约束(contraint):最简单最容易实现的一种方式
-
存储过程(procedure)
-
触发器(trigger)
create table user( id int primary key auto_increment, username varchar(16) unique not null, password varchar(16) default '123456' );
约束主要包含五大类:
-
主键约束
-
外键约束
-
不为空约束
-
唯一约束
-
检查约束(mysql暂不支持)
--修改制定列设置列不为空 alter table user change username username varchar(16) not null; --使用修改语句设置表的列为唯一列 alter table user add constraint uq_name unique(username);
外键约束
通过设置外键约束可以让当前一张表与另一张表产生约束关系,在执行更新操作是,会通过约束的关系保证数据的完整性(被设置外键的列必须关联另一张表的主键列)
--学生表 create table tbstu( id int primary key auto_increment, sname varchar(16) not null, sex enum('1','0') default '1', age int, gid int ); --分组表 create table tbgroup( gid int primary key auto_increment, gname varchar(32) ); --修改约束 alter table tbstu add constraint foreign key fk_gid(gid) references tbgroup(gid);
作业
创建两张表(emp,dept):
员工表: 工号(eno),姓名(ename),职位(job),入职时间(hiredate),月薪(sal),部门号(dno)
部门表:部门号(dno),部门名(dname),分机号(tel)
要求:
员工工号列和部门号列分别作为主键并且自动递增
员工表中部门号为外键列关联部门表的主键列
部门名不能重复
向每个表中分别添加若干条数据
根据工号修改指定员工的月薪(薪资调整)
根据查询指定职位的所有员工信息
查询月薪大于3000的员工信息
删除部门号为null的员工
date '2018-07-07'