MySQL数据库(基本)
1数据库的基本概念
- DB:数据库,保存一组有组织的数据的容器
- DBMS:数据库管理系统,又称为数据库软件(产品),用于管理DB中的数据
- SQL:结构化查询语言,用于和DBMS通信的语言
2MySQL命令
启动或停止MySQL服务
方式一:计算机——右击管理——服务
方式二:通过管理员身份运行
net start 服务名(启动服务)
net stop 服务名(停止服务)
MySQL服务的登录和退出
mysql [-h主机名 -P端口号] -u用户名 -p密码
MySQL操作数据库命令
1.创建数据库
CREATE DATABASE 数据库名;
2.删除数据库
DROP DATABASE 数据库名;
3.选择所要用的数据库
USE 数据库名;
4.显示MySQL所管理的所有数据库
SHOW DATABASE;
5.查看当前打开的数据库
SELECT DATABASE();
字段约束
-
主键约束(PRIMARY KEY)
- 每张表只能存在一个主键
- 主键的作用主要用于保证记录的唯一性
- 主键约束默认添加非空约束(NOT NULL)
- 主键值必须唯一
-
自增约束(AUTO_INCREMENT)
- 自增约束必须配合主键使用
- 默认情况下,起始值为1,每次的增加量为1
-
外键约束(FOREIGN KEY)
-
值必须为指向的表的主键值。
-
外键约束主要用于实现一对一,一对多,多对多关系
-
外键约束的要求
- 父表和子表必须使用相同的存储引擎。
- 外键和参考列的数据类型必须相同。
- 外键列和参考列必须创建索引。如果外键列不存在索引的话,MySQL将自动创建索引。
-
CREATE TABLE user ( id SMALLINT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(20) NOT NULL, pid TINYINT, FOREIGN KEY (pid) REFERENCES province(id) );
-
-
唯一约束(UNIQUE)
- 唯一约束可以保证记录的唯一性
- 唯一约束的字段可以为空值(NULL)
- 每张表可以有多个唯一约束
-
非空约束(NOT NULL)
- 字段默认为可以为NULL,非空约束的字段不能为NULL
-
默认约束(DEFAULT)
- 当插入记录时,如果没有明确为字段赋值,则自动赋予默认值。
-
无符号约束(UNSIGNED)
- 通过UNSIGNED修饰的整型数只能保存正数
数据库操作的演示
1.创建数据库
CREATE TABLE table_name (column_name column_type);
例子:
CREATE TABLE department (
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
`name` VARCHAR(20) NOT NULL,
manager VARCHAR(25)
);
CREATE TABLE employee(
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
`name` VARCHAR(25) NOT NULL,
sex ENUM('男','女') DEFAULT '男',
salary DOUBLE(8,1),
d_id INT UNSIGNED,
FOREIGN KEY(d_id) REFERENCES department(id)
)
2.删除表
DROP TABLE table_name ;
3.查看表结构
DESC table_name;
操作数据库命令
插入语句
INSERT INTO 表名 (field1, field2,...fieldN) VALUES (value1, value2,...valueN);
查询数据
SELECT 属性1,属性2
FROM 表
[WHERE Clause]
[LIMIT N][ OFFSET M]
- 查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
- SELECT 命令可以读取一条或者多条记录。
- 你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
- 你可以使用 WHERE 语句来包含任何条件。
- 你可以使用 LIMIT 属性来设定返回的记录数。
- 你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。
WHERE语句
- 你可以在 WHERE 子句中指定任何条件。
- 你可以使用 AND 或者 OR 指定一个或多个条件。
- WHERE 子句也可以运用于 SQL 的 DELETE 或者 UPDATE 命令。
- WHERE 子句类似于程序语言中的 if 条件,根据 MySQL 表中的字段值来读取指定的数据。
- WHERE支持条件运算符:> < >= <= = != <>
修改数据
UPDATE 表名 SET field1=new-value1, field2=new-value2
[WHERE Clause]
- 你可以同时更新一个或多个字段。
- 你可以在 WHERE 子句中指定任何条件。
- 你可以在一个单独表中同时更新数据。
删除数据
DELETE FROM 表 [WHERE Clause]
- 如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。
- 你可以在 WHERE 子句中指定任何条件
- 您可以在单个表中一次性删除记录。