目录

【MySQL】MySQL学习基础(1)

数据库和 SQL

SQL(Structured Query Language):结构化查询语言。包括 DDL(Data Definition Language 数据定义语言)、DML(Data Management Language 数据管理语言)、DCL(Data Control Language 数据库控制语言)。其中 DML 包括:DQL(Data Query Language 数据查询语言)和 DML(Data Management Language 数据管理语言),一般来说,数据查询和管理都称为数据管理语言。

安装

基础

DML

数据库操作

# 数据库创建
CREATE database db_name;   # 创建数据库
CREATE database db_name if not exits;

# 数据库查询
SHOW databases;   # 查看当前存在的数据库
SHOW CREATE DATABASE db_name;  # 查看数据库创建的语言,显示结果为

# 选择数据库
USE database;  # 操作表时会使用默认的数据库,所以需要先使用USE表示使用的是哪一个数据库

# 查看数据库中表
SHOW TABLES [like 'pattern_%']; # 可以使用通配符匹配

# 数据库删除
DROP database db_name;   #还有其他的两种,记得区分结果

# 数据库修改
ALTER database db_name;

# 数据库权限修改
GRANT ALL ON db_name.* TO 'your_mysql_name'@'your_client_host'; #

表操作

# 表创建
CREATE TABLE tbl_name (列结构)[表选项]
CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),
                   species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);





# 从外部导入数据到表
LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet
       LINES TERMINATED BY '\r\n';  # 从本地导入,分隔符为"\r\n"

# 插入数据到表
INSERT INTO pet
       VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL); # 如果设置了NOT NULL,则需要
       在插入数据的时候该项有值

 # 修改列定义
 ALTER TABLE tbl_name[ADD|DROP|CHANGE|MODIFY] #添加|删除|重命名|修改

 # 修改表选项
 ALTER TABLE tbl_name 新的表选型
 ALTER TABLE pet CHARACTER SET UTF8;

数据操作

# 创建数据
INSERT INTO tbl_name (field_list) VALUES (values); #
# 获取数据
SELECT field_list FROM tbl_name conditions;
SELECT field_list FROM tbl_name WHERE conditions LIKE 'a%'; # %为通配符
SELECT field_list FROM tbl_name WHERE REGEXP_LIKE(field_name,regex); # 使用正则表达式匹配
# 删除数据
DELETE FROM tbl_name conditions;
# 修改数据
UPDATE tbl_name SET field=new_value, conditions;

Mysql 数据类型

整型:默认有符号,无符号要指定 unsigned

TINYINT:1 字节 无符号:-128—127  有符号: 0—255 SMALLINT:2 字节 无符号:-32768—32767 有符号:0-65536 MEDIUMINT:3 字节 INT:4 字节 BIGINT:8 字节 可以听过类似 INT(2)表示显示的宽度,显示宽度不影响数值的范围,只是为了表示

小数

浮点数: **  可以通过TYPE(M,D)**控制数值位数,M 为所有的数值位数,D 为小数位数 float:单精度浮点数,默认精度位数为 6 左右 double:双精度浮点数,默认精度 16 左右 ** 定点数: DECIMAL(M,D) **同样的 M 为所有的数值位数,D 为小数位数,M 默认为 10,D 默认为 0

日期和时间

DATATIME8YYYY-MM-DD HH:MM:SS
TIMESTAMP4YYYY-MM-DD HH:MM:SS 从 1970 年开始
DATE3YYYY-MM-DD
TIME3HH:MM:SS
YEAR1YYYY范围为 1901-2155

字符串

**CHAR(M) :**表示固定长度。M 表示允许的字符串长度,限制了字符串的长度 **VARCHAR(M): **可变长度 。M 表示允许的最大长度,在内存中表示,需要多一个字节保存字符串的总长度,因此如果有时候不是很需要改变长度的话,尽量用固定长度的 CHAR

列属性

主键

可以唯一标识某条记录的字段或字段的集合。通常的做法是,设计每个表存在一个可以唯一标识的主键字段,最好利用与实体信息不相关的属性,作为唯一标识,与业务逻辑不发生关系,只用来记录标识,例如 ID。 设置方式:在字段上设置或者定义完字段后再定义

# 在字段上设置
CREATE TABLE pet (
  id INT PRIMARY KEY,NAME VARCHAR (5));
# 定义完字段后再设置
CREATE TABLE pet1 (
	id INT,NAME VARCHAR (5),PRIMARY KEY (id));

自动增长

为每条记录提供唯一的标识,每次插入记录时,某个字段的值都自动加 1,使用 auto_increment 标识。要求需要整型和索引。在插入数据的时候,可以选择插入 null 也可以不插入。   自动增长的初始值默认是 1,也可以通过 auto_increment n 重新设置从 n 开始增长。 也可以手动插入自动增长的值,但是如果是主键的话,不能重复。

注意事项

  • 数据库语言关键字一般用大写,虽然大小写都可以,但是为了区分。
  • 数据库名的大小写取决于系统,所以操作的时候尽量有自己的规范,进行大小写区分。
  • NULL 是区别于 0 或者’ ‘的