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的缩写,中文名是结构化查询语言,它是一种数据库查询和程序设计语言。

mysql约束不能大于某个字段的值 sql约束长度大于等于11_MySQL

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 外键约束