SQL简介、MySQL基本操作、约束
- 1. SQL
- 1.1 作用
- 1.2 组成
- 1.2.1 DQL
- 1.2.2 DML
- 1.2.3 DDL
- 1.2.4 DCL
- 1.2.5 TCL
- 2. MySQL实现_CMD
- 2.1 数据库操作
- 2.1.1 查看数据库
- 2.1.2 创建数据库
- 2.1.3 删除数据库
- 2.1.4 进入数据库
- 2.2 表操作
- 2.2.1 查看表名
- 2.2.2 查看表结构
- 2.2.3 创建表
- 2.2.4 删除表
- 2.2.4 重命名
- 2.3 字段操作
- 2.3.1 增加字段
- 2.3.2 删除字段
- 2.3.3 修改字段
- 2.4 属性操作
- 2.4.1 增加属性
- 2.4.2 删除属性
- 2.4.3 修改属性
- 2.4.4 查看属性
- 3. 完整性约束
- 3.1 作用
- 3.2 类型
- 3.2.1 按作用范围
- 3.2.2 按作用特点
- 3.2.2.1 主键约束
- 3.2.2.2 唯一约束
- 3.2.2.3 非空约束
- 3.2.2.4 默认值约束
- 3.2.2.5 主键自动增长约束
- 3.2.2.6 检查约束
- 3.2.2.7 外键约束
1. SQL
SQL是Structured Query Language的缩写,中文名是结构化查询语言,它是一种数据库查询和程序设计语言。
1.1 作用
SQL的作用是实现数据库管理人员(DatabaseAdministrator/DBA)通过数据库管理系统(DatabaseManagementSystem/DBMS)对数据库(Database/DB)中的数据进行存取、查询、更新等功能
1.2 组成
在Oracle中包括:DML、DDL、DCL、TCL
在MySQL中包括:DQL、DML、DDL、DCL
1.2.1 DQL
Data Query Language是对数据进行查询
1.2.2 DML
Data Manipulation Language是对数据进行增、删、改
有的也将DQL合并到了DML中
1.2.3 DDL
Data Definition Language是对数据库对象(表、函数、索引、视图、表空间、触发器、存储过程等)进行操作
1.2.4 DCL
Data Control Language是对数据库账户进行控制
1.2.5 TCL
Transaction Control Language是对事件进行控制
2. MySQL实现_CMD
登录MySQL
C:\Users\Khue>mysql -uroot -p //输入用户名
Enter password: **** //输入密码
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 5.7.12-log MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
退出MySQL
mysql>exit //或者输入quit
2.1 数据库操作
2.1.1 查看数据库
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema | //提供了访问数据库元数据的方式。其中保存着关于MySQL服务器所维护的所有其他数据库的信息,如数据库名、表名、列的数据类型、访问权限等
| mysql | //这个是MySQL的核心数据库。主要负责存储数据库的用户、权限设置、关键字以及MySQL自己需要使用的控制和管理信息等
| performance_schema | //主要用于收集数据库服务器性能参数,如提供进程等待的详细信息,包括锁、互斥变量、文件信息;保存历史的事件汇总信息,为提供MySQL服务器性能做出详细的判断;对于新增和删除监控事件点都非常容易,并可以改变MySQL服务器的监控周期等
| sakila | //样本数据库是MySQL官方提供的一个模拟DVD租赁信息管理的数据库,提供了一个标准模式,可作为书中例子,教程、文章、样品,等等,对学习测试来说是个不错的选择
| sys | //是MySQL5.7新增的系统数据库,其在MySQL5.7中是默认存在的,在MySQL5.6及以上版本可以手动导入。这个库通过视图的形式把information_schema和performance_schema结合起来,查询出更加令人容易理解的数据
| world | //存放地区、国家及语言信息
+--------------------+
以上是MySQL自带的数据库
2.1.2 创建数据库
create database dbname;//创建一个名叫dbname的数据库
2.1.3 删除数据库
drop database dbname;//删除一个名叫dbname的数据库
2.1.4 进入数据库
use dbname;//进入一个名叫dbname的数据库
2.2 表操作
2.2.1 查看表名
show tables;//查看该数据库中的所有表名
2.2.2 查看表结构
desc tbname;//查看表名为tbname的结构信息(包含哪些字段及字段的属性、约束等)
2.2.3 创建表
create table tbname(
field1 type,
field2 type,
...
fieldn type);//创建一个名为tbname的表,该表包含n个字段
2.2.4 删除表
drop table tbname;//删除一个名为tbname的表
2.2.4 重命名
alter table oldname rename (to) newname;//to可以加也可以不加
2.3 字段操作
2.3.1 增加字段
alter table tbname add field type;//增加到列尾
alter table tbname add field type first;//增加到列头
alter table tbname add field type after fieldn;//增加到fieldn之后
2.3.2 删除字段
alter table tbname drop field;
2.3.3 修改字段
alter table tbname change oldfield newfield typenew;//修改字段名及属性
alter table tbname modify field typenew;//修改字段属性
2.4 属性操作
2.4.1 增加属性
insert into tbname(filed1,filed2,...filedn)
value(value1,value2,...valuen);//为名为tbname的表的field字段添加值
可以部分添加,一个可以全部添加,value必须对应field类型
省略的field的值将被默认为null
2.4.2 删除属性
delete from tbname where from condition;//按条件删除值
delete from person where from sex='男';//删除表中所有sex字段为男的所有字段值
delete from person where from id is null;//删除表中所有id字段为null的所有字段值
2.4.3 修改属性
update tbname set field=value;
2.4.4 查看属性
select * from tbname;//查看名为tbname表中的所有属性值
3. 完整性约束
3.1 作用
实现数据的规范
3.2 类型
3.2.1 按作用范围
类型 | 作用对象 | 创建时间 | 实现方式 |
表级约束 | 可约束一个或多个字段 | 字段创建时或字段创建后 | add constraint |
列级约束 | 只能约束一个字段 | 必须在字段创建时 | modify |
3.2.2 按作用特点
3.2.2.1 主键约束
实现该字段属性值唯一标识,包括了唯一约束与非空约束
alter table tbname add constraint PK_tbname_field primary key(field);//实现
alter table tbname drop key;//移除
3.2.2.2 唯一约束
实现该字段属性值唯一不重复
alter table tbname add constraint UK_tbname_field unique(field);//实现
drop index UK_tbname_field on tbname;//移除
3.2.2.3 非空约束
实现该字段属性值不能为空
alter table tbname modify field type not null;//实现
alter table tbname modify field type null;//移除
3.2.2.4 默认值约束
实现该字段属性值的默认值
alter table tbname modify field type default value;//实现
alter table tbname modify field type;//移除
严格来说该约束是一种功能,而非约束
3.2.2.5 主键自动增长约束
实现主键属性值的自动增长
alter table tbname modify field type auto_increment;//实现
alter table tbname modify field type;//移除
3.2.2.6 检查约束
实现该字段属性值的赋值检查
alter table tbname add constraint CK_tbname_field check(field between value1 and value2);//实现
在MySQL中失效
3.2.2.7 外键约束