SQL简单介绍

做软件开发,不会点数据库操作是不行的,这篇文章主要是介绍MySql的基本使用。

基本概念

什么是SQL

  • SQL 指结构化查询语言
  • SQL 使我们有能力访问数据库
  • SQL 是一种 ANSI 的标准计算机语言

SQL能做什么

  • SQL 面向数据库执行查询
  • SQL 可从数据库取回数据
  • SQL 可在数据库中插入新的记录
  • SQL 可更新数据库中的数据
  • SQL 可从数据库删除记录
  • SQL 可创建新数据库
  • SQL 可在数据库中创建新表
  • SQL 可在数据库中创建存储过程
  • SQL 可在数据库中创建视图
  • SQL 可以设置表、存储过程和视图的权限

数据库表

一个数据库通常包含一个或多个表。每个表由一个名字标识(例如“客户”或者“订单”)。表包含带有数据的记录(行)。

SQL语句

您需要在数据库上执行的大部分工作都由 SQL 语句完成,本教程主要介绍SQL语句SQL 对大小写不敏感

SQL 之DML 和 DDL

可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。

  • DML(对数据库进行更删改查)
    • SELECT – 从数据库表中获取数据
    • UPDATE – 更新数据库表中的数据
    • DELETE – 从数据库表中删除数据
    • INSERT INTO – 向数据库表中插入数据
  • DDL(创建、删除表格、定义索引、添加约束等)
    • CREATE DATABASE – 创建新数据库
    • ALTER DATABASE – 修改数据库
    • CREATE TABLE – 创建新表
    • ALTER TABLE – 变更(改变)数据库表
    • DROP TABLE – 删除表
    • CREATE INDEX – 创建索引(搜索键)
    • DROP INDEX – 删除索引

数据类型

在 MySQL 中,有三种主要的类型:文本、数字和日期/时间类型。

Text 类型:

数据类型描述
CHAR(size)保存固定长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的长度。最多 255 个字符。
VARCHAR(size)保存可变长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的最大长度。最多 255 个字符。
TINYTEXT存放最大长度为 255 个字符的字符串。
TEXT存放最大长度为 65,535 个字符的字符串。
BLOB用于 BLOBs (Binary Large OBjects)。存放最多 65,535 字节的数据。
MEDIUMTEXT存放最大长度为 16,777,215 个字符的字符串。
MEDIUMBLOB用于 BLOBs (Binary Large OBjects)。存放最多 16,777,215 字节的数据。
LONGTEXT存放最大长度为 4,294,967,295 个字符的字符串。
LONGBLOB用于 BLOBs (Binary Large OBjects)。存放最多 4,294,967,295 字节的数据。
ENUM(x,y,z,etc.)允许你输入可能值的列表。可以在 ENUM 列表中列出最大 65535 个值。如果列表中不存在插入的值,则插入空值。
SET与 ENUM 类似,SET 最多只能包含 64 个列表项,不过 SET 可存储一个以上的值。

Number 类型:

数据类型描述
TINYINT(size)-128 到 127 常规。0 到 255 无符号*。在括号中规定最大位数。
SMALLINT(size)-32768 到 32767 常规。0 到 65535 无符号*。在括号中规定最大位数。
MEDIUMINT(size)-8388608 到 8388607 普通。0 to 16777215 无符号*。在括号中规定最大位数。
INT(size)-2147483648 到 2147483647 常规。0 到 4294967295 无符号*。在括号中规定最大位数。
BIGINT(size)-9223372036854775808 到 9223372036854775807 常规。0 到 18446744073709551615 无符号*。在括号中规定最大位数。
FLOAT(size,d)带有浮动小数点的小数字。在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数。
DOUBLE(size,d)带有浮动小数点的大数字。在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数。
DECIMAL(size,d)为字符串存储的 DOUBLE 类型,允许固定的小数点。

Date 类型:

数据类型描述
DATE()日期。格式:YYYY-MM-DD
DATETIME()*日期和时间的组合。格式:YYYY-MM-DD HH:MM:SS
TIMESTAMP()*时间戳。TIMESTAMP 值使用 Unix 纪元(‘1970-01-01 00:00:00’ UTC) 至今的描述来存储。格式:YYYY-MM-DD HH:MM:SS
TIME()时间。格式:HH:MM:SS 注释:支持的范围是从 ‘-838:59:59’ 到 ‘838:59:59’
YEAR()2 位或 4 位格式的年。注释:4 位格式所允许的值:1901 到 2155。2 位格式所允许的值:70 到 69,表示从 1970 到 2069。

即便 DATETIME 和 TIMESTAMP 返回相同的格式,它们的工作方式很不同。在 INSERT 或 UPDATE 查询中,TIMESTAMP 自动把自身设置为当前的日期和时间。TIMESTAMP 也接受不同的格式,比如 YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD 或 YYMMDD。

数据库操作

//创建数据库
CREATE DATABASE [数据库名称]; //CREATE DATABASE db_test;
//使用数据库
USE [数据库名称]; //USE db_test;
//删除数据库
DROP DATABASE [数据库名称];//DROP DATABASE db_test;
//显示所有的数据库
SHOW DATABASES;

表操作

创建表

//语法
CREATE TABLE 表名称
(
列名称1 数据类型 [完整性约束条件],
列名称2 数据类型 [完整性约束条件],
列名称3 数据类型 [完整性约束条件],
....
)
//举个例子:
CREATE TABLE t_book(
    id INT PRIMARY KEY AUTO_INCREMENT,  //primary key表示主键、auto_increment表示自动+1
    NAME VARCHAR(20),
    describe VARCHAR(40),
    price decimal(5,2),
    bookTypeId int
);
约束条件说明
primary key该属性为主键
foreign key该属性为外键,与某表的主键关联
not null该属性不能为空
unique该属性的值是唯一的
auto_increment该属性的值自动增加
default该属性设置默认值

查看表结构

desc 表名; //desc Person;

添加外键

假设有个表t_bookType,用来存储书籍类型,然后t_book的bookTypeId与t_bookType的id进行关联,那么就需要给t_book添加外键。具体如下:

//举个例子:
CREATE TABLE t_bookType(
    id INT PRIMARY KEY AUTO_INCREMENT,
    typeName VARCHAR(20)
);

CREATE TABLE t_book(
    id INT PRIMARY KEY AUTO_INCREMENT,
    bookName VARCHAR(20),
    author VARCHAR(20),
    bookTypeId INT,
    CONSTRAINT `fk` FOREIGN KEY (`bookTypeId`) REFERENCES `t_bookType` (`id`)
);

修改表

  • 修改表名
ALTER TABLE 原表名 RENAME 新表名; //ALTER TABLE t_book RENAME t_book2;
  • 修改属性
ALTER TABLE t_book CHANGE 旧属性名 新属性名 数据类型;//ALTER TABLE t_book CHANGE bookName bookName1 VARCHAR(30);
  • 添加属性
ALTER TABLE t_book ADD 属性名 数据类型 [完整性约束][first|after 属性名];//ALTER TABLE t_book ADD bookDate DATE;
  • 删除属性
ALTER TABLE t_book DROP 属性名;//ALTER TABLE t_book DROP bookDate;
  • 删除表
DROP TABLE 表名;//DROP TABLE t_book;
//注意删除的表之间有关联的时候,只能够删除子表,不能够删除父表;也就是说能够删除t_book,不能删除t_bookType;

因为内容过多,今天的内容就介绍到这里,这篇文章主要对SQL的基本定义、数据类型和数据库及表的创建、删除做了简单的介绍。

接下来我们主要介绍如何对数据表进行更删改查等操作。

    原文作者:安静的学点东西
    原文地址: https://www.jianshu.com/p/47a16413fac3
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞