数据库与表的基本操作–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建表语法

包括:创建,修改,删除

  1. 创建:表名,字段名,字段类型
    #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;
  1. 修改: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)
);