数据库与表的基本操作–DDL之数据库
1. 了解结构化查询语言SQL
- SQL(Structured Query Language),结构化查询语言。可以数据定义,数据操纵,数据查询和数据控制。
- SQL分4类:
- DDL(数据定义语言)数据库/表/属兔的 建立,删除
- DML(数据操纵语言)添加/删除/修改数据表中的记录
- DCL(数据控制语言)数据库对象的权限管理/事务管理
- DQL(数据查询语言)查询
2. 掌握数据库相关的操作
- DDL中,对数据库的操作:创建和删除
- #创建 CREATE DATABASE 数据库名
- #删除 DROP DATABASE 数据库名
- 实战操作:
- 启动
net start mysql8
- 登录
mysql -u root -p
- 查看已有数据库
show databases;
- 创建数据库
create database mydb;
- 删除数据库
drop database mydb;
- 选择数据库
use mydb;
- 查看当前选择数据库
select database();
数据库与表的基本操作–DDL之数据表
1. 了解存储引擎engine
- 存储引擎:如何存储数据,更新数据,查询数据,为存储的数据建立索引
- #查看MySQL支持的存储引擎
show engines;
- MyISAM 较快插入查询,不支持事务
- Inn哦DB 支持ACID事务,MySQL5.5版本后的默认存储引擎
2. 熟悉MySQL数据类型
- 大致三类:数值,日期/时间,字符串
- 数值:
- int 4字节
- decimal max(D+,M+)
- 日期/时间
- date 3
- datetime 8
- 字符串
- varchar 0-65535
- text 0-65535
3.熟悉MySQL建表语法
包括:创建,修改,删除
- 创建:表名,字段名,字段类型
#MySQL语法CREATE[TEMPORARY] TABLE [IF NOT EXISTS] table_name [(create_definition,..)] [table_options]
[ ]可选
示例:
CREATE TABLE contacts<
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR<30>,
phone VARCHAR<20>
> ENGINE=InonoDB DEFAULT CHARSET=utf8;
- 修改:alter命令添加,删除,修改字段,对表删除
#添加字段sex,类型为VARCHAR(1)
ALTER TABLE contacts ADD sex VARCHAR(1);
#修改字段sex类型为tinyiint
ALTER TABLE contacts MODIFY sex tinyint;
#删除字段
ALTER TABLE contacts DROP COLUMN sex;
#删除contacts表
DROP TABLE contacts;
4.掌握数据表的相关操作
- 实践:
建表
create table contacts(
id int primary key,
name varchar(30),
phone varchar(11)
);
查看表架构
desc contacts;
添加字段
alter table contacts add sex char(1);
修改字段
alter table contacts modify sex int;
删除字段
alter table contacts drop column sex;
删除表
drop table contacts;
数据库与表的基本操作–DML:插入/修改/删除数据
1.掌握如何向表中 插入数据
insert into 向表中插入数据
- insert插入单条数据
insert into table_name(field1,dield2,..,fieldN) values(v1,v2,..,vN);
- insert插入多条数据
insert into table_name(field1,dield2,..,fieldN) values(v1,v2,..,vN),(c1,c2,..,cN);
注意:
1 如果字段是字符,值需要双引号或者单引号,如‘value’
;如果字符含单引号,需要转义字符 \ ,或者外面用双引号“ ”
2 如果所有列都要添加数据,insert into语句可以不指定列,如 insert into table_name values(v1,v2,..,vn);
2.掌握如何 修改 表中的数据
update语法:update table_name set field1=newValue1,field2=newValue2 [where clause];
set键 value值
注意:
1 可以同时更新多个字段
2 where可选子句来指定范围,不带where,则更新表所有记录。如:update contacts set phone='13821215151' where name='张三';
3.掌握如何 删除 表中的数据
delete语法:delete from table_name [where clause];
注意:
where可选子句来指定范围,不带where,则删除表所有记录。
实战:
#登录 mysql -h localhoset -u root -p
#查看数据库show databases;
#使用数据库use mydb;
#创建表
create table contacts(
id int not null auto_increment primary key, //序号自动增长
name varchar(30),
sex tinyint default 1,
phone varchar(20)
);
#查看表结构desc contacts;
#插入数据insert into contacts(name,sex,phone)values('张三',1,'13300000000');
#查询表信息select * from contacts;
#插入数据(字符含 ’ )(多条数据)insert into contacts(name,sex,phone)values('hu\‘s cat',1,'13300000000')
;insert into contacts(name,sex,phone)values("hu's cat",1,'13300000000');
insert into contacts(name,sex,phone)values(" 李四",1,'13300000000'),('赵六',1,'13300000000');
#修改数据
(限定范围)update contacts sex =2 where name='张三';
#查询表信息select * from contacts;
(不加限定范围) update contacts sex=2;
#查询表信息select * from contacts;
#删除数据delete from contacts where id =3;
delete from contacts;
数据库与表的基本操作–数据完整性
1.了解什么是数据完整性
指存储在数据库中的数据,应该保持一致性和可靠性。
关系模型允许定义三类数据约束:实体完整性(唯一可区分),参照完整性(外键约束),用户定义完整性约束(自定义规则),域完整性(限制数据格式)
2.掌握如何保证数据完整性
唯一性约束
关键字unique实现字段唯一性约束
- 两条数据的同一个字段不能相同
- 一个表可以有多个unique约束
- 例如:
create table person(id_number varchar(18) unique comment'身份证号');
外键约束
foreign key定义了对其他表的引用
在插入数据,先向主表插入,删除则相反
create table stu( //主表
stu_no int not null primary key comment '学号',
stu_name varchar(30) comment '姓名');
create table score( //从表
id int not null auto_increment primary key comment '主键id',
stu_no int not null primary key comment '学号',
course varchar(30) comment '课程',
score varchar(30) comment '成绩',
foreign key(stu_no)references stu(stu_no)
);