MySQL(学习笔记二)数据库/表基本操作

本文介绍了SQL语言的基础概念,包括其在关系型数据库中的应用,数据定义语言、数据控制语言、数据操作语言和数据查询语言的分类。详细讲解了SQL语句的书写规范、MySQL数据库中的数据类型、库操作、表操作、表约束等,并提供了相关实例和删除约束的方法。
摘要由CSDN通过智能技术生成

SQL语言

SQL:结构化查询语言(Structured Query Language)
在关系型数据库上执行数据操作、数据检索以及数据维护的标准语言;

SQL语句分类

DDL:数据定义语言
DCL :数据控制语言
DML:数据操作语言
DQL: 数据查询语言

SQL语句书写规范

在数据库系统中,SQL语句不区分大小写(建议用大写) 。
但字符串常量区分大小写。
SQL语句可单行或多行书写,以“;”结尾。
关键词不能跨多行或简写。
用空格和缩进来提高语句的可读性。
子句通常位于独立行,便于编辑,提高可读性。

注释

//。多行注释
“–” 单行注释
cp support-files/mysql.server /etc/init.d/mysql.server
MySQL注释:
#

MySQL数据类型

MySQL中的数据类型主要分为四类:数值型、时间型、文本型、二进制型;

数值型

数据类型字节数
TINYINT1
SMALLINT2
MEDIUMINT3
INT4
BIGINT8
FLOAT4
DOUBLE8
DECIMALM+2

时间型

数据类型字节数取值范围
YEAR11901~2155
DATE41000-01-01~9999-12-31
TIME3-838:59:59~838:59:59
DATETIME81000-01-01 00:00:00~9999-12-31 23:59:59
TIMESTAMP419700101080001~20380119111407

文本型

数据类型字节数取值范围
CHAR(n)n
VARCHAR(n)m(m<n)
TINYEXTn+20<n<255
TEXTn+20<n<65535
MEDIUMTEXTn+30<n<167772150
LONGTEXTN+40<N<4294967295
ENUM
SET

二进制型

数据类型字节数取值范围
BINARY(n)n0~n
VARBINARY(n)n+10~n
BIT(n)n0~64
TINYBLOB可变长二进制数据0~255
BLOB可变长二进制数据0~(2^16 -1)

数据库基本操作

库操作

查看

SHOW DATABASES;  #查看当前有什么数据库

MySQL自带数据库

Information_schema: 主要存储了系统中的一些数据库对象信息:如用户表信息、列信息、权限信息、字符集信息、分区信息等。(数据字典表)

performance_schema: 主要存储数据库服务器的性能参数

mysql: 存储了系统的用户权限信息及帮助信息。

sys: 5.7新增,之前版本需要手工导入。这个库是通过视图的形式把information_schema和 performance_schema结合起来,查询出更加令人容易理解的数据。

test: 系统自动创建的测试数据库,任何用户都可以使用。

创建

create database 数据库名;

删除

drop database 数据库名;

使用

use 数据库名;

#查看当前库有什么表
SHOW TABLES;

#查看当前连接的数据库
SELECT DATABASE();

#查看数据库版本
SELECT VERSION();

#查看当前用户
SELECT USER();

#查看所有用户
SELECT User,Host,Password FROM mysql.user;

数据库对象命名

必须以字母开头
可以使用数字和三个特殊字符(#$_)
不能使用MySQL的关键字
同一schema下的对象不能同名

表的操作

创建

CREATE TABLE 表名(
	列名 类型 约束,
	列名 类型 约束,
...
);

查看

#查看表结构
DESC TABLE 表名;

删除

DROP TABLE 表名;

修改

#修改列类型
ALTER TABLE 表名 MODIFY 列名 列类型;

#增加列
ALTER TABLE 表名 ADD 列名 列类型;

#删除列
ALTER TABLE 表名 DROP 列名;

#修改列名
ALTER TABLE 表名 CHANGE 旧列名 新列名 列类型;

#修改表名
ALTER TABLE 表名 CHANGE 新表名;
ALTER TABLE 表名 TO 新表名;

复制表结构

#方法一
CREATE TABLE 新表名 LIKE 源表;

#方法二
CREATE TABLE 新表名 SELECT * FROM 源表;

#方法三
INSRET INTO 表 SELECT  * FROM 源表;

表的约束

约束时在数据表上强制执行的数据校验规则。
约束主要用于保证数据的完整性。
当数据表中有相互依赖时,可以保护数据不被删除。

常见约束:

非空约束NOT NULL确保字段值不为空
唯一约束UNIQUE KEY确保所在的字段或者字段组合不出现重复值
主键PRIMARY KEY非空且唯一
外键FOREIGN确保了相关的两个字段的两个关系
检查CHECK-
默认值DEFAULT使用default关键字设置每一个字段的默认值

定义约束的语法
列级约束:在定义列的同时定义约束
语法:列定义 约束类型,
表级约束:在定义了所有列之后定义的约束
语法:
列定义
[CONSTRAINT 约束名] 约束类型(列名)

约束名的取名规则
推荐采用:表名_列名_约束类型简介
约束可以在创建表时就定义,也可以在创建完后再添加

删除约束

#删除NOT NULL约束
alter table 表名 modify 列名 类型;

#删除UNIQUE约束
alter table 表名 drop index 惟一约束名;

#删除PRIMARY KEY约束
alter table 表名 drop primary key;

#删除FOREIGN KEY约束
alter table 表名 drop foreign key 外键名;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值