MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。
如何使用终端操作数据库?
如何登录数据库服务器
打开命令行窗口输入:mysql -hlocalhost -uroot -proot
其中h就是host u和p就是你配置的user和password。一般会省略参数-h ,mysql会自动默认为本地连接。-u后面可以有空格也可以省略空格。
对于-p如果你明确指出了密码值(我这里是root),,那么-p和密码值之间是不能有空格的。如果你输入的-p和密码值之间是有空格的,那么mysql就会认为你所输入的这个密码值是登录mysql后自动选择的数据库,而不是你所期望的密码。如果你使用了-p但是没有给出password值,客户端程序会提示您输入密码。
上述用到的几个基本命令
- show databases 显示所有创建的数据库
- use 数据库名 选中一个数据库
- exit 退出本次登录
如何创建数据库和数据表?
- create database 数据库名 创建数据库
- drop database 数据库名 删除数据库
- create table 表名(.....) 创建数据表
- drop table 表名 删除数据表
mysql中常用的数据类型:
数值类型
日期/时间类型
字符串类型
关于数据类型的选择 :日期选择按照格式。数值和字符串按照大小!
基本的增删改查操作
通用的添加语句:INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN );
通用的删除语句:DELETE FROM table_name [WHERE Clause]如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。
通用的修改语句:UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause]
mysql中的建表约束
-
主键约束(它能够唯一确定一张表中的一条记录,也就是我们通过给某个字段添加约束,就可以使得该字段不重复且不为空。联合主键:可以将一张表的多个字段一起设置为联合主键)
-
自增约束
-
非空约束
-
默认约束
-
外键约束
-
唯一约束
添加约束的几种方式:
- 可以建表的时候就添加约束
- 还可以使用alter……add……来添加约束
- 删除约束: alter……drop……
数据表设计三大范式
第一范式:数据表中的所有字段都是不可分割的原子值。
第二范式:必须是满足第一范式的前提下,第二范式要求,除主键外的每一列都必须完全依赖于主键。如果要出现不完全依赖,只可能发生在联合主键的情况下。
第三范式:必须先满足第二范式,除开主键列的其他列之间不能有传递依赖关系。
查询练习
数据准备
单表查询练习
多表查询练习
子查询
四种连接查询
- 内连接:inner join 或者 join
- 外连接:
- 左外连接 left join或者left outer join
- 右外连接 right join或者right outer join
- 完全外连接 full join 或者 full outer join
any和all关键字
这两个关键字必须与一个比较操作符一起使用。
- any可以理解为“对于子查询返回的列中的任一数值,如果比较结果为true,则返回true”。它可以与=、>、>=、<、<=、<>结合起来使用,分别表示等于、大于、大于等于、小于、小于等于、不等于其中的任何一个数据。
- all的意思是“对于子查询返回的列中的所有值,如果比较结果为true,则返回true”。它可以与=、>、>=、<、<=、<>结合是来使用,分别表示等于、大于、大于等于、小于、小于等于、不等于其中的其中的所有数据。