一、数据库的创建:

1、创建一个名称为mydb1的数据库

create database mydb1;

2、创建一个使用utf8字符集的mydb2数据库。

create database mydb2 character set utf8;

3、创建一个使用utf8字符集,并带比较规则的mydb3数据库。

create database mydb3 character set utf8 collate utf8_general_ci;

二、数据库的修改:

修改mydb2字符集为gbk;

alter database mydb2 character set gbk;

三、数据库的删除:

删除数据库mydb3。

drop database mydb3;

四、数据库查看:

查看所有数据库。

show databases;

查看数据库mydb1的字符集

show create database mydb1;

-----------------------------------------------

数据库中表操作

一、创建表

1、创建一张员工表employee

字段        类型

id          整形

name        字符型

gender      字符型

birthday    日期型

entry_date  日期型

job         字符型

salary      小数型

resume      文本

2、创建一张员工表employee2

字段        类型

id          整形

name        字符型

gender      字符型

birthday    日期型

entry_date  日期型

job         字符型

salary      小数型

resume      文本

要求:把id 设置成主键,并且自动增长。name不允许为空。

create table employee (id int primary key auto_increment,

name varchar(20) not null,

gender varchar(10),

birthday date,

entry_date date,

job varchar(30),

salary double,

resume text

);

二、删除表

1、删除employee2表

drop table employee;

三、数据表的结构的修改:

1、在上面员工表的基本上增加一个image列。

alter table employee add image varchr(20);

2、修改job列,使其长度为60。

alter table employee modify job varchar(60);

3、删除gender列。

alter table employee drop gender;

4、表名改为user。

rename table employee to user;

5、修改表的字符集为utf8

alter table user character set utf8;

6、列名name修改为username

alter table user change name username varchar(20) not null;

四、查看表结构

1、查看数据库内的所有表

show tables;

2、查看employee的建表语句

show create table employee;

3、查看employee的表结构

desc employee;

#约束

概念:对表中的数据进行限定,保证数据的正确性,有限性和完整性。、

分类:

1. 主键约束:primary key

主键就是表中记录的唯一标识

  自动增长:如果某一列是数值类型的,使用auto_increment 可以来完成值的自动增长

a. 在创建表时,添加主键约束

create table stu(

 id int primary key,--给id添加主键约束

 name varchar(20)

 );

b. 删除主键

ALTER TABLE stu DROP PRIMARY KEY;

c. 创建表后,添加主键

ALTER TABLE stu MODIFY id INT PRIMARY KEY;

2. 非空约束:not null

a.创建表时添加约束

CREATE TABLE stu(

Id INT,

NAME VARCHAR(20)NOT NULL    --name为非空

);

b.创建表完后,添加非空约束

ALTER TABLE stu MODIFY NAME VARCHAR(20)NOT NULL;

c.删除name的非空约束

ALTER TABLE stu MODIFY NAME VARCHAR(20)

3.唯一约束:uniqe

a.创建表时,添加唯一约束

CREATE TABLE stu(

           Id INT,

           phone_number VARCHAR(20)UNIQUE    --添加了唯一约束

);

b.删除唯一约束

ALTER TABLE stu DROP INDEX phone_number;

c.再创建表之后,添加唯一约束

ALTER TABLE stu MODIFY phone_number VARCHAR(20)UNIQUE;

4.外键约束:foreign key,让表于表产生关系,从而保证数据的正确性

  a.创建表时,添加外键

   create table 表名(

  ...

  外键列

Constraint  外键名称 foreign key(外键列名称)references 主表名称(主表列名称);

b.删除外键

ALTER TABLE 表名 DRDP FOREIGN KEY 外键名称;

c.创建表之后,增加外键

ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOEIGN KEY(外键字段)REFERNCES 主表名称

5.级联操作

a.添加级联操作

语法:ALTER TABLE 表名 ADD CONSTRAINT外键名称

FOREIGN KEY(外键字段名称)REFERENCES(主表列名称)ON UPDATE CASCADE ON DELETE CASCADE

b.级联更新 :ON UPDATE CASCDE

c.级联删除:ON DELETE CASCDE(慎用)

#数据库的设计

1多表之间的关系

1. 分类

A.一对一:

*比如人和身份证。一个身份证只能对应一个人

B.一对多(多对一)

*比如部门和员工。一个部门有多个员工,一个员工只能对应一个部门

C.多对多

比如学生与课程。一个学生可以选择很多课程,一个课程也可以被很多学生选择

2.实现关系:

A.一对一的实现方法:一对一关系的实现,可以在任意一方添加唯一指向另一方的主键。

B.一对多的实现方法:在多的一方建立外键,指向一的一方主键。

C.多对多的实现方法:多对多关系实现需要借助第三方中间表。中间表至少包含2个字段。这2个字段作为第三张表的外键,分别指向2张表。

2.数据库设计的范式

概念:设计数据库时,需要遵循的一些规范。要遵循后面的范式要求,必须前边的所有范式要求。

设计关系数据库时,遵从不同的规范要求,设计出合理的关系数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。

目前关系数据库有六种范式:第一范式(1NF),第二范式(2NF),第三范式(3NF),巴斯-科德范式(BCNF),第五范式

分类:

第一范式(1NF):每一列都是不可分割的原子数据项

第二范式(2NF):在1NF的基础上,非码属性必须完全依赖于候选吗(在1NF基础上消除主属性的对主吗的部分函数依赖)

1. 函数依赖:A—>B,如果通过A属性(属性组)的值,可以确定唯一B属性的值,则称B依赖于A

2. 完全函数依赖:A—>B,如果A是一个属性组,则B属性值确定需要依赖于A属性组中所有属性值

3. 部分函数依赖:A—>B,如果A是一个属性组,则B属性值确定只需要依赖于A属性组中某一些值即可

4. 传递函数依赖:A—>B,B->C,如果通过A属性(属性组)的值,可以确定B属性的值,在通过B属性(属性组)的值可以确定唯一C属性的值,则C传递函数依赖于A

5. 码:如果在一张表中:一个属性或者属性组,被其他所有属性完全依赖,则这个属性(属性组)为该表的码

第三范式(3NF):在2NF基础上,任何非主属性不依赖于其他非主属性(在2NF基础上传递依赖)

#数据库的备份和还原

语法:

*备份:mysqldump –u用户名 –p密码 数据库的名称 > 保存的路径

*还原:

登录数据库

创建数据库

使用数据库

执行文件  source 文件路径

MySQL数据库常用命令和概念 (1)的更多相关文章

  1. MySQL 数据库常用命令小结

    MySQL 数据库常用命令 1.MySQL常用命令 create database name; 创建数据库 use databasename; 选择数据库 drop database name 直接删 ...

  2. MySQL 数据库常用命令

    1.MySQL常用命令 create database name; 创建数据库 use databasename; 选择数据库 drop database name 直接删除数据库,不提醒 show ...

  3. MySQL 数据库常用命令 超级实用版分享

    1.MySQL常用命令 create database name; 创建数据库 use databasename; 选择数据库 drop database name 直接删除数据库,不提醒 show ...

  4. MySQL数据库 常用命令

    1.MySQL常用命令 create database name;创建数据库 use databasename;选择数据库 drop database name 直接删除数据库,不提醒 show ta ...

  5. MySQL数据库常用命令行整理(表格)

    Laplace Kang 2020-03-13T08:33:09Z 2020-03-14T17:35:53Z Sheet1 12480 9 600 600 6 9600 23040 0 0 600 0 ...

  6. CentOS下mysql数据库常用命令总结

    mysql数据库使用总结 本文主要记录一些mysql日常使用的命令,供以后查询. 1.更改root密码 mysqladmin -uroot password 'yourpassword' 2.远程登陆 ...

  7. mysql数据库常用命令笔记

    连接数据库:mysql -h localhost -u root -p 000000 退出:exit;    \q;    quit; SET foreign_key_checks = 0; 禁用外键 ...

  8. [ 转载 ] Mysql 数据库常用命令

    完整的创建数据库例子: >create database db_test default character set utf8 collate utf8_general_ci; >use ...

  9. MySQL数据库常用命令

    1.连接mysql数据库:mysql -u用户名 -p密码; 2.创建数据库:create database 数据库名称; 3.删除数据库:drop database 数据库名称; 4.使用数据库:u ...

随机推荐

  1. SpringBoot之hello world!

    哈哈哈,还是在元旦这一天对你下手了.麻溜的给自己充电,在这个寒冬,不断听到裁员的消息或者新闻,可对于我这个外包和外派的人来说,好像并没有受到什么影响.可能是人手不够可能是项目很忙.对于明年的三月金四月 ...

  2. 代码生成工具更新--快速生成Winform框架的界面项目

    在之前版本的代码生成工具Database2Sharp中,由于代码生成都是考虑Winform和Web通用的目的,因此Winform界面或者Web界面都是单独生成的,在工具中生成相应的界面后,复制到项目里 ...

  3. Zookeeper集群搭建步骤及相关知识点深入了解

    1.zookeeper概念 zookeeper是一个分布式协调服务:a:zookeeper是为别的分布式程序服务的 b:zookeeper本身就是一个分布式程序(只要半数以上节点存活,zookeepe ...

  4. OpenStack共享组件

    一.云计算的前世今生 1.物理机架构,应用部署和运行在物理机上  2.虚拟化架构,物理机上运行若干虚拟机,应用系统直接部署到虚拟机上  3.云计算架构,虚拟化提高了单台物理机的资源使用率 二.Open ...

  5. 【PostgreSQL】安装出现microsoft vc++ runtime installer

    1.找到下载的目录 2.新建一个文本文档 3.在文本文档上输入postgresql-11.1-1-windows-x64.exe --install_runtimes 0 4.修改文本文档后缀为.ba ...

  6. [jzoj]3456.【NOIP2013模拟联考3】恭介的法则(rule)

    Link https://jzoj.net/senior/#main/show/3456 Description 终于,在众亲们的奋斗下,最终boss 恭介被关进了库特设计的密室.正当她们松了一口气时 ...

  7. web学习路线

  8. react_app 项目开发 (5)_前后端分离_后台管理系统_开始

    项目描述 技术选型 react API 接口 接口文档,url,请求方式,参数类型, 根据文档描述的方法,进行 postman 测试,看是否能够得到理想的结果 collections - 创建文件取项 ...

  9. [LeetCode] Convert Binary Search Tree to Sorted Doubly Linked List 将二叉搜索树转为有序双向链表

    Convert a BST to a sorted circular doubly-linked list in-place. Think of the left and right pointers ...

  10. jdbc的入门学习

    一.JDBC相关概念介绍 1.1.数据库驱动 这里的驱动的概念和平时听到的那种驱动的概念是一样的,比如平时购买的声卡,网卡直接插到计算机上面是不能用的,必须要安装相应的驱动程序之后才能够使用声卡和网卡 ...