记录我的java之路——day19(周更)

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?

  1. 主键约束

  2. 自动递增

  3. 列的默认值

约束

约束是维护数据完整型的一种操作,在数据库中维护数据完成性操作中包含以下解决方案:

  • 约束(contraint):最简单最容易实现的一种方式

  • 存储过程(procedure)

  • 触发器(trigger)

create table user(
id int primary key auto_increment,
username varchar(16) unique not null,
password varchar(16) default '123456'
);

约束主要包含五大类:

  1. 主键约束

  2. 外键约束

  3. 不为空约束

  4. 唯一约束

  5. 检查约束(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)

要求:

  1. 员工工号列和部门号列分别作为主键并且自动递增

    1. 员工表中部门号为外键列关联部门表的主键列

    2. 部门名不能重复

    3. 向每个表中分别添加若干条数据

    4. 根据工号修改指定员工的月薪(薪资调整)

    5. 根据查询指定职位的所有员工信息

    6. 查询月薪大于3000的员工信息

    7. 删除部门号为null的员工

date '2018-07-07'

猜你喜欢

转载自blog.csdn.net/qq_34304871/article/details/81448192
今日推荐