MySql学习-3.登录,创建,修改,约束,备份

一、数据定义语言DDL(Data Definition Language)——database:

1. 登录数据库:

mysql -uroot -p #(这个password是自己设定的,我这里的没密码)
# 注意:(数据路径是:D:\MySql\install1\data 操作路径:D:\MySql\install1\bin)

 2.登录成功查看效果:

select version();  # 版本
select now();  #显示时间

3.创建数据库:

create database 数据库名;    #直接创建数据库,如果存在则报错
create database if not exists bigdata_db;  #如果数据库不存在则创建
create database 数据库名 character set 字符集; #创建数据库时设置字符集 charset=utf8;

# create database bigdata_db;

4. 删除数据库(不建议 违法):

drop database 数据库名;

5.切换数据库:

use 数据库名;

 6.查看当前选择的数据库:

select database();

7.显示所有的数据库:

show databases;

二、数据定义语言DDL(Data Definition Language)——tables:

1.查看当前所有的表:

show tables;

 2.创建表:

create table if not exists 表名(
字段名  类型(长度) [约束],
字段名  类型(长度) [约束],
   ...
);
类型:
      varchar(n)字符串
      int   整形
      double浮点
      date   时间
      timestamp时间戳
约束:
primary key  主键,被主键修饰字段中的数据,不能重复、不能为null。

###创建分类表
CREATE TABLE category ( 
cid varchar(20) primary key,#分类ID 
cname VARCHAR(100) #分类名称
);

 3.查看表的结构(describe):

desc 表名;

4.修改表(尽量少做,开始多设些列)(只能修改列的类型):

# 修改表添加列.
alter table 表名 add 列名 类型(长度) [约束]; # add |change | drop #为分类表添加一个新的字段为分类描述 varchar(20) ALTER TABLE category ADD `desc` VARCHAR(20); # 修改表修改列名. alter table 表名 change 旧列名 新列名 类型(长度) 约束; #为分类表的分类描述字段更换为description varchar(30) ALTER TABLE category CHANGE `desc`description VARCHAR(30); # 修改表删除列. alter table 表名 drop 列名; #删除分类表中description这列 ALTER TABLE category DROP description; # 修改表名 rename table 表名 to 新表名; #为分类表category改名成 category2 RENAME TABLE `category` TO category2;

5.删除表(物理上删除):

drop table 表名;

 6.查看表的创建语句:

show create table ‘表名’;

 三、DML(Data Manipulation Language)数据操作语言:

1.数据操作——查询:

select * from 表名;

 2.数据操作——增加

# 语法
#-- 向表中插入某些字段
insert into 表 (字段1,字段2,字段3..) values(值1,值2,值3..);
#-- 向表中插入所有字段,字段的顺序为创建表时的顺序
insert intovalues(值1,值2,值3..)

#注意:
#值与字段必须对应,个数相同,类型相同
#值的数据大小必须在字段的长度范围内
#除了数值类型外,其它的字段类型的值必须使用引号引起。(建议单引号)
#如果要插入空值,可以不写字段,或者插入 nullINSERT INTO category(cid,cname) VALUES('c001','电器'); 
INSERT INTO category(cid,cname) VALUES('c002','服饰'); 
INSERT INTO category(cid,cname) VALUES('c003','化妆品'); 
INSERT INTO category(cid,cname) VALUES('c004','书籍');
INSERT INTO category(cid) VALUES('c005'); 
insert into category values('06','玩具'),('07','蔬菜');

3.数据操作——修改(针对满足条件的行进行修改):

# 用来修改指定条件的数据,将满足条件的记录指定列修改为指定值
# 语法
-- 更新所有记录的指定字段
update 表名 set 字段名=值,字段名=值,...;
-- 更新符号条件记录的指定字段
update 表名 set 字段名=值,字段名=值,... where 条件;

update category set cname  = '家电';  #将所有行的cname改为'家电'
update category set cname  = '水果' where cid = 'c001'; #将cid为c001的cname修改为水果

#注意:
#列名的类型与修改的值要一致.
#修改值得时候不能超过最大长度.
#除了数值类型外,其它的字段类型的值必须使用引号引起

 4.数据操作——删除(物理删除)

# 物理删除与逻辑删除
# 逻辑删除就是设置isDelect列,然后显示时候显示不出来  update teachers set inDelect=1 where id=1; select * from 表明 where isDelect=1;
# 逻辑删除:相当于insert;
# 这块是没呈现出来。运用到实际就是将where isDelete=0设置为条件,删除的话把 isDelete设置为1,不呈现出来就行,实际没有删。
# 不能用delete from teachers where id=1; 这个虽然可以,但是这个是物理删除。
delete from 表名 [where 条件];
# 或者
truncate table 表名;

delete from category where cid = '005'; #删除cid为005的纪录
truncate category;  #清空表数据

# 注意:
# delete 一条一条删除,不清空auto_increment记录数。
# truncate 直接将表删除,重新建表,auto_increment将置为零,从新开始。

 四、SQL约束

4.1 主键约束

PRIMARY KEY 约束唯一标识数据库表中的每条记录。
主键必须包含唯一的值。
主键列不能包含 NULL 值。
每个表都应该有一个主键,并且每个表只能有一个主键。

# 方式一:创建表时,在字段描述处,声明指定字段为主键
CREATE TABLE Persons1
(
 Id int PRIMARY KEY,
 LastName varchar(255),
 FirstName varchar(255),
 Address varchar(255),
 City varchar(255)
)

# 方式二:创建表时,在constraint约束区域,声明指定字段为主键:
#格式:[constraint 名称] primary key (字段列表)
#关键字constraint可以省略,如果需要为主键命名,constraint不能省略,主键名称一般没用。
#字段列表需要使用小括号括住,如果有多字段需要使用逗号分隔。声明两个以上字段为主键,我们称为联合主键。
CREATE TABLE Persons2
(
  FirstName varchar(255),
  LastName  varchar(255),
  Address   varchar(255),
  City      varchar(255),
  CONSTRAINT pk_PersonID PRIMARY KEY (FirstName, LastName)
)
# 或
CREATE TABLE Persons3
(
  FirstName varchar(255) ,
  LastName  varchar(255),
  Address   varchar(255),
  City      varchar(255)
)

4.2 删除主键约束

ALTER TABLE Persons DROP PRIMARY KEY;

4.3 自动增长列

CREATE TABLE Persons4
(
  Id      int PRIMARY KEY AUTO_INCREMENT,
  LastName  varchar(255),
  FirstName varchar(255),
  Address   varchar(255),
  City      varchar(255)
)
# 向persons添加数据时,可以不为Id字段设置值,也可以设置成null,数据库将自动维护主键值
INSERT INTO Persons (FirstName,LastName) VALUES ('Bill','Gates')
INSERT INTO  Persons (Id,FirstName,LastName) VALUES (NULL,'Bill','Gates')

# 扩展:默认AUTO_INCREMENT 的开始值是 1,如果希望修改起始值,请使用下列 SQL 语法:
ALTER TABLE Persons AUTO_INCREMENT=100

4.4 非空约束

#NOT NULL 约束强制列不接受 NULL 值。
#NOT NULL 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。

CREATE TABLE Persons5
(
  Id      int          NOT NULL,
  LastName  varchar(255) NOT NULL,
  FirstName varchar(255),
  Address   varchar(255),
  City      varchar(255)
)

4.5 唯一约束

#UNIQUE 约束唯一标识数据库表中的每条记录。
#UNIQUEPRIMARY KEY 约束均为列或列集合提供了唯一性的保证。
#PRIMARY KEY 拥有自动定义的 UNIQUE 约束。
#请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。

# 创建表时,在字段描述处,声明唯一
CREATE TABLE Persons
(
  Id      int UNIQUE,
  LastName  varchar(255) NOT NULL,
  FirstName varchar(255),
  Address   varchar(255),
  City      varchar(255)
)

4.6 外键约束

# FOREIGN KEY # 多表

五、数据备份(数据库密码为空):

 

5.1某个数据库,首先在目录下的有个datacenter.sql文件(可以txt改为):

 

5.2某个数据库里的某个表:mysqldump -uroot -p 数据库名表名> 文件路径(必须有个接收的文件)

5.3 数据恢复:

 5.3.1 连接数据库、创建数据库、显示数据库

 

5.3.2 退出数据库

5.3.3 恢复文件

5.3.4 进数据库、使用刚才所创数据库、显示该数据库的表

posted @ 2020-02-23 22:46  落月_YU  阅读(172)  评论(0编辑  收藏  举报