---mysql学习笔记
--关系型数据库
一、如何使用终端操作数据库?
1、如何登录数据库
win10下,以管理员身份打开cmd,输入
mysql -uroot -p
如果环境变量设置正确,会弹出输入密码的命令,输入密码后即可登录。
2、如何查看服务器上的所有数据库?
注意:最后一定要有分号。
3、如何选中某一个数据库进行操作?
先用use选中再select
4、如何退出数据库服务器?
5、如何在数据库服务器中创建我们的数据库?
6、如何查看某个数据库(test)中所有的数据表?
先用use选中数据库test,再show tables。
7、如何创建一个数据表?
注意:“\c”可以退出当前命令行,这在你命令输错的情况下非常好用!!
创建数据表的时候注意:括号,逗号,分号等。
8、查看数据表是否创建成功?
9、查看数据表的结构
注意:“describe”不要拼写错。
10、查看表中的记录,发现为空。
11、如何往数据表中添加数据记录?
注意:插入的时候不要遗漏。
再次查看表中的记录:
12、如何改变数据库或者表的编码为utf8
alter table students convert to character set utf8
13、mysql常用数据类型有哪些?
*(1)数值
*(2)日期/时间
*(3)字符串(字符)类型
这里可以参考https://www.runoob.com/mysql/mysql-data-types.html
举例:
- 数据类型如何选择?
日期 安装格式进行选择;
数值和字符串按照大小进行选择。
14、如何删除数据?
15、如何修改数据?
总结:数据记录常见操作(不区分大小写)
- 增加 insert
- 删除 delete
- 查询 select
- 修改 update
16、mysql建表约束.sql
-
主键约束
它能够唯一确定一张表中的一条记录,也就是我们通过给
某个字段添加约束,就可以使得该字段不重复且不为空。
--联合主键即由多个字段联合组成的主键,只要联合的主键值加起来不重复就可以。同样地,联合主键中的任何一个字段都不能为空。
-
自增约束(auto_increment)
---如果我们创建表的时候,忘记创建主键约束了?该怎么办?
---修改表结构,添加主键(alter table。。。add)
--如何删除?(alter table 。。drop )
--使用modify 修改字段,添加约束(alter table 。。modify )
*唯一约束
即约束修饰的字段的值不可以重复。
对比主键约束:主键约束不得为空不得重复;而唯一约束不得重复但可以为空。
--unique(id,name)表示两个键在一起不重复就行。
--如何删除唯一约束?
--modify添加
总结:
--1、建表的时候就添加约束;
--2、可以使用alter table...add..或者alter ...modify...添加
--3、删除使用alter ...drop..
--非空约束
--修饰的字段不能为空 NULL
--默认约束
--就是当我们插入字段值的时候,如果没有传值,就会使用默认值。
--外键约束
---涉及到两个表:父表,子表。
--主表、副表。
发现一个问题:在创建表的时候,varchar后面一定要加(20),不然会报错。
首先创建班级表
其次创建学生表
(1)、主表classes 中没有的数据值,在副表stuents中,是不可以使用的。
(2)、主表中的记录被副表引用,是无法删除的。
17、数据库的三大设计范式.sql
-
第一范式
---1NF
---数据表中的所有字段都是不可分割的原子值(原子值是指不能再细分的单一值。)
像该表student中 address还可以继续拆分的,就不满足第一范式。
--范式,设计的越详细,对于某些实际操作可能更好,但是不一定都是好处。
- 第二范式(2NF)
---必须是满足第一范式的前提下,第二范式要求,除主键外的每一列都必须完全依赖于主键。
---如果要出现不完全依赖,只可能发生在联合主键的情况下。
举例说明:
上表中存在问题:
---除主键以外的其他列,只依赖于主键的部分字段,这是不满足第二范式的,需要拆表。
---分成三个表之后,就满足了第二范式。
- 第三范式(3NF)
---必须先满足第二范式。
---除开主键列的其它列之间不能有传递依赖。
比如下表,
--拆表
(待续)
二、如何使用可视化工具操作数据库?
三、如何在编程语言中操作数据库?